Open Research Europe provides two programmatic interfaces to its content, both are available via HTTP:
- REST API: for reading and managing articles, submissions and related data in JSON format. This endpoint requires an ORE account and an API token.
- OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting): standard protocol for bulk harvesting of article metadata. This endpoint does not require authentication or a token.
REST API
The base URL of the REST API is:
https://ore.eu/api/v1
The full list of endpoints, parameters, responses, errors and status codes is available in the REST API reference. The OpenAPI schema specification (JSON) is available for download at openapi.json.
Authentication
All REST API requests must be authenticated and sent over HTTPS. To create an API token:
- Create an ORE account and log in.
- Click the profile icon in the top-right corner and select Edit profile.
- Open the API Key tab. Your key is displayed there and can be used right away.
Send the token in the Authorization header of every request:
Authorization: Bearer <your-api-key>
Keep your API key safe
The token carries the permissions of your account. Do not share it or commit it to a code repository.
OAI-PMH
ORE supports the OAI-PMH 2.0 protocol for harvesting article metadata. The base URL is:
https://ore.eu/oai
All standard verbs are supported. Use Identify, ListMetadataFormats and ListSets to discover what the repository offers. For example, to list all records in Dublin Core:
A response contains at most 100 records. If more records match, the response ends with a resumptionToken. Pass it as the only other parameter to fetch the next page:
https://ore.eu/oai?verb=ListRecords&resumptionToken=<token>
Rate limits
Please keep your requests within these limits, for both the REST API and OAI-PMH:
| Period | Maximum requests |
|---|---|
| Per minute | 100 |
| Per hour | 2000 |
Clients that exceed these limits may be blocked.
Identify your client
Please set a descriptive User-Agent header on all requests, so that we can identify your client and contact you if there is a problem. Include a unique name for your tool, a link to a page describing it, and a contact address. For example:
User-Agent: MyHarvester/1.0 (+https://example.org/harvester; harvester@example.org)
Requests with a generic or missing User-Agent may be blocked.
Best practices
These recommendations follow the crawler best practices draft.
- Use the APIs, not page scraping. If you do access the website itself, respect
robots.txt. - Send requests sequentially. Avoid sending several requests for the same resource at the same time.
- Back off on errors. If you receive an error response (such as
429or5xx), wait and retry with increasing delays. Stop after a few attempts, and do not loop over the same URL. - Do not re-download unchanged data. Honor caching headers, and for OAI-PMH use the
fromparameter to harvest only records changed since your last run. - Use
GETfor reading. Use other methods only when you need to change data. - Respect access restrictions. Do not try to bypass authentication or access content you are not permitted to see.
- Keep a log of the URLs you requested and the status codes you received, so you can diagnose problems.
AI agents
If you operate an AI agent or LLM crawler, please use OAI-PMH or the metadata embedded in each article page instead of scraping HTML. The rate limits and User-Agent rules above apply. Detailed, machine-readable instructions are available at https://ore.eu/llms.txt.