Reporting API Reference

Introduction

The Reporting REST API enables the ability to execute and run previously saved review reports and retrieve their results as JSON data.  These APIs can be useful for retrieving review data to populate a preferred reporting or BI tool or to drive automation using popular automation platforms (Zapier, etc.).  The API offers the following capabilities:

  • Retrieve the list of currently saved reports
  • Run and retrieve the data for a report

Requirements

Calling these API endpoints requires an API Key and API ID.  See Getting Started with PerformYard API for details on creating API keys and API Authentication for authentication flow.

Review Reports

The Reporting API currently only supports retrieving lists the data for reports about reviews. Employee reports are excluded from the response of the Reporting API endpoints at this time.

Retrieve All Reports

GET https://api.talent.performyard.com/v1/reports

Returns a list of all currently created reports. You can learn more about Reporting & Analytics here.

Query Parameters

limit integer

The number of reports to be returned in a single API Request.

Default: 200

Minimum: 5

Maximum: 200
offset integer

Used to paginate through the list of reports. Can be combined with limit.

Default: 0

Increment the value by one to fetch subsequent pages (1 for the second page, 2 for the third, etc.).
sort string

Order in which to return the reports.

Allowed Values: asc(FIELD_NAME) desc(FIELD_NAME)

Allowed Field Names: name type created_at last_updated description tags
name string

Filter the returned reports by a specific name.

Accepts only a single string value. Case sensitive.
tags string

Filter the returned reports by a specific tag.

Accepts only a single string value. Case sensitive.

CURL Example

curl --location 'https://api.talent.performyard.com/v1/reports?limit=10&offset=0&tags=employment' \
--header 'Accept: application/json' \
--header 'x-api-id: {{X-API-ID}}' \
--header 'x-api-key: {{X-API-KEY}}'

Response (200)

{
  "reports": [
    {
      "_id": "<string>",
      "name": "<string>",
      "type": "<string>",
      "description": "<string>",
      "created_at": "<string>"
      "created_by": "<string>",
      "last_updated": "<string>",
      "tags": [
	"<string>",
	"<string>"
       ]
    }
  ]
}

Run and Retrieve the Data for a Report

GET https://api.talent.performyard.com/v1/reports/:report_id

Returns the data for the specified report as an array of objects.

Limit

This endpoint has a maximum limit of 200 data rows per request. If your report exceeds 200 data rows, you'll need to use the offset query parameter to loop through all the data rows in your report. For example, if you have a report with 450 data rows, you'll need three API calls to this endpoint to get all your data:

  1. GET https://api.talent.performyard.com/v1/reports/:report_id?limit=200&offset=0 //returns data rows 1-200
  2. GET https://api.talent.performyard.com/v1/reports/:report_id?limit=200&offset=1 //returns data rows 201-400
  3. GET https://api.talent.performyard.com/v1/reports/:report_id?limit=200&offset=2 //returns data rows 401-450

Path Parameters

report_id string

The ID that uniquely identifies the report to retrieve.

Query Parameters

limit integer

The number of data points from this report to be returned in a single API Request.

Default: 200

Minimum: 5

Maximum: 200
offset integer

Used to paginate through the data for the specified report. Can be combined with limit.

Default: 0

Increment the value by one to fetch subsequent pages (1 for the second page, 2 for the third, etc.).

CURL Example

curl --location 'https://api.talent.performyard.com/v1/reports/6744925fe220edeac2af12fa?limit=200&offset=0' \
--header 'Accept: application/json' \
--header 'x-api-id: {{X-API-ID}}' \
--header 'x-api-key: {{X-API-KEY}}'

Response (200)

{
   "review_report": [
      {
         "<Report-Column1-name>": "value",
         "<Report-Column2-name>": "value",
         ....
      },
      {
         "<Report-Column1-name>": "value",
         "<Report-Column2-name>": "value",
         ....
      },
      ....
   ]
}