Skip to main content
Version: Next

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."
}