Research API endpoint
Return the stable authenticated paper source registry, including arXiv search and MED-backed Europe PMC metadata, licensed text and citation operations.
/research/sourcesReturns the authenticated paper source registry and its stable revision. The registry currently exposes arXiv search and metadata plus MED-backed Europe PMC metadata, licensed full text, and directed citation operations. Europe PMC is limited to biomedical and life-sciences coverage and is not a universal paper index. Requires the x-api-key header. If the optional persistent paper runtime is disabled, the route remains registered and returns 503.
Source capability enum values:
state: ready.operations: search, metadata, read, references, citers.filters: authors, published_from, published_to.Europe PMC (europepmc) adds supported MED/PMC metadata resolution, licensed full text, outgoing references and incoming citers. Keyword search remains arXiv-only; source capabilities are independent and the graph is not exhaustive. Registry revision: papers-v2-20261010.
| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| source_id | 2 | |
| name | 2 | “arXiv” and 1 other value |
| corpus | 2 | “papers” and 1 other value |
| url | 2 | arxiv.org and 1 other host |
| state | 2 | “ready” |
| operations | 2 | median 3 entries |
| filters | 1 | median 3 entries |
| corpus_revision | 2 | “papers-v2-20261010” |
No parameters
curl -X GET "https://api.crawlora.net/api/v1/research/sources" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"items": [
{
"source_id": "arxiv",
"name": "arXiv",
"corpus": "papers",
"url": "https://arxiv.org",
"state": "ready",
"operations": [
"search",
"metadata",
"read"
],
"filters": [
"authors",
"published_from",
"published_to"
],
"artifact_types": [],
"corpus_revision": "papers-v2-20261010"
},
{
"source_id": "europepmc",
"name": "Europe PMC",
"corpus": "MED-backed biomedical and life-sciences metadata with licensed PMC full text",
"url": "https://europepmc.org",
"state": "ready",
"operations": [
"metadata",
"read",
"references",
"citers"
],
"filters": [],
"artifact_types": [],
"corpus_revision": "papers-v2-20261010"
}
],
"next_cursor": "",
"has_more": false,
"registry_revision": "papers-v2-20261010"
}
}Request schema
No body schema
Response schema
Inline response schema
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | researchretrieval.PaperSourcesResponse | No | ||||
| data.has_more | boolean | No | ||||
| data.items | array | No | ||||
| data.items[].artifact_types | array | No | ||||
| data.items[].corpus | string | No | ||||
| data.items[].corpus_revision | string | No | ||||
| data.items[].filters | array | No | ||||
| data.items[].last_success_at | string | No | ||||
| data.items[].name | string | No | ||||
| data.items[].operations | array | No | ||||
| data.items[].source_id | string | No | ||||
| data.items[].state | string | No | ready | |||
| data.items[].url | string | No | ||||
| data.next_cursor | string | No | ||||
| data.registry_revision | string | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 401 | Unauthorized | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/research/sources" \
-H "x-api-key: $CRAWLORA_API_KEY"