Skip to main content
Hexagraph standardizes all entity identifiers with the OA: prefix, derived from OpenAlex IDs. Every entity — works, authors, sources, institutions, publishers, and funders — has a unique OA:ID that you use consistently across REST and GraphQL requests. Whether you’re fetching a single record, building a relational query, or resolving an unknown entity type, the OA:ID is your single, reliable key.

ID Format

OA:IDs follow a simple structure: OA: followed by an entity-type code letter and a numeric identifier.
OA:[EntityTypeCode][Number]

Examples:
  OA:W2107277218     ← a Work (output)
  OA:A5086208034     ← an Author
The entity-type code embedded in the ID tells you — and the API — exactly what kind of entity you’re referencing:
PrefixEntity TypeExample
OA:WWorks (Outputs)OA:W2107277218
OA:AAuthorsOA:A5086208034
OA:SSourcesOA:S137773608
OA:IInstitutionsOA:I1290206310
OA:PPublishersOA:P4310320595
OA:FFundersOA:F4320306076

Using IDs in REST Requests

Pass the full OA:ID as the path parameter on the appropriate entity endpoint:
# Fetch a specific output (scholarly work)
curl https://hexagraph-core.onrender.com/outputs/OA:W2107277218

# Fetch a specific author
curl https://hexagraph-core.onrender.com/authors/OA:A5086208034

# Fetch a specific source (journal or repository)
curl https://hexagraph-core.onrender.com/sources/OA:S137773608

# Fetch a specific institution
curl https://hexagraph-core.onrender.com/institutions/OA:I1290206310

# Fetch a specific publisher
curl https://hexagraph-core.onrender.com/publishers/OA:P4310320595

# Fetch a specific funder
curl https://hexagraph-core.onrender.com/funders/OA:F4320306076

Root-Level Entity Resolution

If you have an OA:ID but don’t want to specify the entity type yourself, you can resolve it at the root level. Hexagraph will inspect the ID prefix and automatically redirect or resolve the request to the correct entity endpoint:
GET https://hexagraph-core.onrender.com/OA:W2107277218
This is useful when building tools that handle mixed entity types — for example, processing a list of IDs where some are works and others are authors.

Using IDs in GraphQL

Pass the OA:ID as the id argument in any entity query:
query {
  output(id: "OA:W2107277218") {
    id
    title
    doi
    year
    citations
    authors {
      id
      name
    }
  }

  author(id: "OA:A5086208034") {
    id
    name
    orcid
    outputs_count
  }
}
GraphQL lets you resolve multiple entities — even of different types — in a single request, which is especially efficient when you already have a set of known IDs to look up.
OA:IDs are case-sensitive and must include the full OA: prefix in all requests. Using a bare numeric ID or the wrong prefix will result in a 404 Not Found response.