Skip to main content
Version: 8.0.0

Response metadata format

In this page, we elaborate on the metadata response format, as well as response headers and errors.

Main response​

The OpenAIRE Search API supports the following types of response formats:

  • XML
  • JSON
  • CSV
  • TSV

In the next paragraphs, we elaborate on the respective metadata formats.

XML/JSON​

The default format of delivered records is oaf (OpenAIRE Format - current version 1.0):

For the list of changes click here.

Note that latest versions of the XML schema and documentation are also available at the following permanent links:

Older versions:

CSV/TSV​

The API returns in comma-separated files (CSV) or tab-separated files (TSV) the following fields:

  • Title
  • AUthors
  • Publicatioy year
  • DOI
  • Download from
  • Publication type
  • Journal
  • Funder
  • Project name (GA Number)
  • Access

Headers​

NameDescription
x-ratelimit-limitThe maximum number of requests allowed for the client in one time window.
x-ratelimit-usedThe number of requests already made by the client in the current time window.

The OpenAIRE APIs use a sliding time window of one hour.

Errors​

General​

404 - Not found

{
"error": "Not found",
"description": "Invald request path."
}

429 - Rate limit abuse

{
"error": "Too many requests",
"description": "Request rate exceeded. Slow down."
}

Only for authenticated requests​

400 - Missing grant type

{
"error": "invalid_request",
"error_description": "Missing grant type"
}

400 - Wrong grant type

{
"error": "unsupported_grant_type",
"error_description": "Unsupported grant type: ..."
}

400 - Missing Refresh Token


{
"status" : "error",
"code" : "400",
"message" : "Bad Request",
"description" : "Missing refreshToken parameter"
}

401 - Missing username or/and password

{
"error": "unauthorized",
"error_description": "Client id must not be empty!"
}

401 - Wrong username or/and password

{
"error": "unauthorized",
"error_description": "Bad credentials"
}

401 - Invalid Refresh Token (for authenticated requests)


{
"status" : "error",
"code" : "401",
"message" : "Unauthorised",
"description" : "Invalid refreshToken token"
}

401 - Invalid client assertion

{
"error":"invalid_client",
"error_description":"Bad client credentials"
}

401 - Client assertion for missing service

{
"error":"invalid_client",
"error_description":"Could not find client {SERVICE_ID}"
}

401 - Expired signed jwt

{
"error":"unauthorized",
"error_description":"Assertion Token in expired: {EXPIRATION_TIME}"
}

403 - Invalid Access Token

{
"error": "Token invalid",
"description": "Authorization header value invalid."
}