---
title: "Inspect paper metadata"
method: GET
path: "/research/papers/metadata"
tags: ["Research"]
---

# Inspect paper metadata

`GET /research/papers/metadata`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/research/papers/metadata`
- Auth: API key in header `x-api-key`

Return paper records including titles, abstracts when available, authors, publication dates and verified identifier aliases. Europe PMC resolution is limited to MED-backed PMID, PMCID and DOI records; no full-text body is fetched.

## Query parameters

- `paper_id` string, required

## Response `200`

OK

- object: The Response struct is used for wrapping the API response with a code, message, and data.
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` object: Data is the response data (can be any object or null) @example {"id": 1, "name": "John Doe"}
    - `coverage` ResearchretrievalPaperSourceCoverage[]
      - `corpus_revision` string
      - `failure` ResearchretrievalPaperFailure
        - `message` string
        - `reason` 'invalid_url' | 'unsupported_content_type' | 'blocked' | 'not_found' | 'rate_limited' | 'timeout' | 'upstream_error' | 'internal_error' | 'out_of_scope' | 'robots_disallowed' | 'duplicate' | 'limit_reached' | 'unsupported_filter' | 'unknown_source' | 'idempotency_conflict' | 'invalid_cursor' | 'result_expired' | 'full_text_unavailable' | 'budget_exhausted'
        - `retry_after_seconds` integer
        - `retryable` boolean
      - `indexed_at` string
      - `retrieved_at` string
      - `source_id` string
      - `status` 'ok' | 'failed' | 'not_indexed' | 'unsupported'
    - `paper` ResearchretrievalPaper
      - `abstract` string
      - `authors` ResearchretrievalPaperAuthor[]
        - `affiliation` string
        - `name` string
      - `content_level` 'metadata' | 'abstract' | 'full_text'
      - `identifiers` ResearchretrievalPaperIdentifier[]
        - `namespace` 'arxiv' | 'doi' | 'pmid' | 'pmcid'
        - `value` string
      - `paper_id` string
      - `primary_id` string
      - `publication_year` integer
      - `published_at` string
      - `retrieved_at` string
      - `source_urls` string[]
      - `title` string
      - `updated_at` string
    - `usage` RetrievaltypesUsage
      - `browser_renders` integer
      - `credits_charged` integer
      - `credits_released` integer
      - `credits_reserved` integer
      - `fetch_attempts` integer
      - `fetched_urls` integer
      - `input_tokens` integer
      - `output_tokens` integer
      - `search_requests` integer
      - `settlement_pending` boolean
    - `warnings` ResearchretrievalPaperWarning[]
      - `code` 'source_failed' | 'source_not_indexed' | 'discovery_truncated' | 'ranking_window_limit' | 'imprecise_date_excluded' | 'content_unavailable' | 'cached_source_stale'
      - `message` string
      - `source_id` string
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/028417aa35bb?raw)
