Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: OpenAIRE Oidc API
version: '2026-10-14'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-14: 8 operation(s) read from 10 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; OpenAIRE has published no machine-readable contract that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 2
documentation: 6
pages-with-code: 6
pages-read: 10
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-14'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://graph.openaire.eu/docs/apis/graph-api
- https://graph.openaire.eu/docs/apis/skg-if
- https://graph.openaire.eu/docs/apis/broker-api
- https://graph.openaire.eu/docs/apis/authentication
- https://graph.openaire.eu/docs/next/apis/graph-api
- https://graph.openaire.eu/docs/next/apis/skg-if
- https://graph.openaire.eu/docs/next/apis/broker-api
- https://graph.openaire.eu/docs/next/apis/authentication
- https://graph.openaire.eu/docs/7.0.0/apis/broker-api
- https://graph.openaire.eu/docs/7.0.0/apis/authentication
servers:
- url: https://aai.openaire.eu
tags:
- name: OIDC
paths:
/oidc/token:
get:
operationId: get_oidc_token
tags:
- OIDC
summary: GET /oidc/token
x-source: https://graph.openaire.eu/docs/apis/authentication
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: 'curl - u { CLIENT_ID } : { CLIENT_SECRET } \ - X POST ''https://aai.openaire.eu/oidc/token'' \ - d ''grant_type=client_credentials'' where {CLIENT_ID} and {CLIENT_SECRET} are the Client ID and Client Secret assigned to your service upon registration. The response is: { "access_token" : ... , "token_type" : "Bearer" , "expires_in" : ... } Store the access token confidentially on the service side. Step '