Skip to main content
The Hexagraph API provides RESTful endpoints for querying enriched scholarly metadata. All endpoints are available at the base URL https://hexagraph-core.onrender.com and return JSON. The API follows OAS 3.0 conventions and is designed for high-performance, unified access to academic data across works, authors, institutions, publishers, funders, and more.

Base URL

https://hexagraph-core.onrender.com
All requests should be made over HTTPS. The API is versioned at 1.0 and the base URL already reflects the current stable version.

Authentication

Open access — no API key required. You can start making requests immediately without any credentials or registration. Requests are rate limited per IP address to ensure fair usage across all clients. See the rate limits section for details.
LimitValue
Per minute30 requests
Per day1,000 requests

Content Type

All responses are returned as application/json. You do not need to set a request Content-Type for standard REST GET requests. For GraphQL queries, send a POST request with the following header and body format:
Content-Type: application/json
{
  "query": "{ outputs(search: \"transformer\") { id title year } }"
}

Available Endpoints

EndpointDescription
GET /outputsList/search scholarly works
GET /outputs/{id}Fetch a specific work by OA:ID
GET /authorsList/search authors
GET /authors/{id}Fetch a specific author
GET /sourcesList/search sources (journals, repositories)
GET /sources/{id}Fetch a specific source
GET /institutionsList/search institutions
GET /institutions/{id}Fetch a specific institution
GET /publishersList/search publishers
GET /publishers/{id}Fetch a specific publisher
GET /fundersList/search funders
GET /funders/{id}Fetch a specific funder
GET /autocompleteCross-entity autocomplete search
GET /autocomplete/{entity}Entity-specific autocomplete
GET /{id}Resolve any entity by OA:ID
GET /rate-limitView current rate limit usage
GET /healthService health check
POST /graphqlExecute a GraphQL query (output(id), outputs(query), author(id))

Common Query Parameters

The following parameters are available across all list endpoints (e.g. /outputs, /authors, /institutions).
Full-text search query string. Searches across relevant text fields for the entity type (e.g. title and abstract for outputs, display name for authors).
filter
string
Filter expression to narrow results. Accepts key-value pairs such as has_doi:true, is_oa:true, or year:2023. Multiple filters can be combined with commas.
page
integer
Page number for pagination. Defaults to 1. Use in combination with per_page to walk through result sets.
per_page
integer
Number of results to return per page. Defaults to 25. Maximum allowed value is 200.

Response Format

List Endpoints

List endpoints (e.g. GET /outputs, GET /authors) return a paginated response envelope containing metadata about the result set alongside an array of entity objects:
{
  "meta": {
    "count": 1523,
    "page": 1,
    "per_page": 25
  },
  "results": [
    {
      "id": "OA:W2741809807",
      "title": "Attention Is All You Need",
      "year": 2017,
      ...
    },
    ...
  ]
}
FieldTypeDescription
meta.countintegerTotal number of matching records
meta.pageintegerCurrent page number
meta.per_pageintegerNumber of results on this page
resultsarrayArray of entity objects matching the query

Single-Entity Endpoints

Endpoints that fetch a specific entity by ID (e.g. GET /outputs/{id}, GET /authors/{id}) return the entity object directly — no envelope wrapper:
{
  "id": "OA:W2741809807",
  "title": "Attention Is All You Need",
  "year": 2017,
  "doi": "https://doi.org/10.48550/arxiv.1706.03762",
  "is_oa": true,
  ...
}

ID Handling

All entity identifiers in Hexagraph use the OA:ID format — a namespaced string prefixed with OA: followed by a letter and numeric identifier. Examples:
Entity TypeExample ID
Output (Work)OA:W2741809807
AuthorOA:A5023888391
InstitutionOA:I136199984
SourceOA:S1983995261
PublisherOA:P4310319965
FunderOA:F4320332161
When passing an OA:ID as a path parameter, URL-encode the colon character (:). For example:
GET /outputs/OA%3AW2741809807
The GET /{id} endpoint resolves any OA:ID to its entity type and data automatically — useful when you have an ID but don’t know the entity type in advance.