Skip to main content
This page documents every query available in the Hexagraph GraphQL API with their arguments, return types, and complete usage examples. All queries are sent as POST requests to https://hexagraph-core.onrender.com/graphql.
All IDs passed to GraphQL queries must use the full OA: prefix format — for example, OA:W2107277218 for a work or OA:A5086208034 for an author. Bare numeric IDs are not accepted.

output(id)

Fetches a single scholarly work by its unique OpenAlex identifier.

Arguments

id
String!
required
The OA:W-prefixed identifier of the scholarly work. Example: "OA:W2107277218".

Return Fields

FieldTypeDescription
idStringThe OA:W identifier for this work
doiStringDigital Object Identifier (DOI), if available
titleStringFull title of the work
yearIntPublication year
dateStringFull publication date
citationsIntTotal citation count
sourceStringName of the publication venue (journal, conference, etc.)
authors[Author]List of authors; each has a name field

Example Query

query GetScholarlyOutput {
  output(id: "OA:W2107277218") {
    id
    doi
    title
    year
    date
    citations
    source
    authors {
      name
    }
  }
}

Example Response

{
  "data": {
    "output": {
      "id": "OA:W2107277218",
      "doi": "https://doi.org/10.1038/nature12373",
      "title": "Quantifying the evolution of individual scientific impact",
      "year": 2013,
      "date": "2013-11-07",
      "citations": 892,
      "source": "Nature",
      "authors": [
        { "name": "Roberta Sinatra" },
        { "name": "Dashun Wang" },
        { "name": "Pierre Deville" },
        { "name": "Chaoming Song" },
        { "name": "Albert-László Barabási" }
      ]
    }
  }
}

outputs(query)

Searches and filters the Hexagraph works index. Supports full-text search, structured filter expressions, and pagination.

Arguments

query
Object
required
A query configuration object. All subfields are optional.

Return Fields

Returns an array of output objects. Each object supports the same fields as output(id), plus affiliations on nested author objects:
FieldTypeDescription
idStringThe OA:W identifier
doiStringDOI, if available
titleStringFull title
dateStringPublication date
sourceStringPublication venue
citationsIntCitation count
authors[].nameStringAuthor name
authors[].affiliations[String]List of institutional affiliations for the author

Example Query

query SearchPublications {
  outputs(query: {
    search: "artificial intelligence"
    filter: "has_doi:true"
    page: 1
    per_page: 3
  }) {
    id
    doi
    title
    date
    source
    citations
    authors {
      name
      affiliations
    }
  }
}

Example Response

{
  "data": {
    "outputs": [
      {
        "id": "OA:W3128349626",
        "doi": "https://doi.org/10.1126/science.abb8662",
        "title": "Artificial intelligence and the future of work",
        "date": "2021-03-12",
        "source": "Science",
        "citations": 411,
        "authors": [
          {
            "name": "Erik Brynjolfsson",
            "affiliations": ["Stanford University"]
          }
        ]
      }
    ]
  }
}

author(id)

Fetches a researcher’s profile by their unique OpenAlex author identifier.

Arguments

id
String!
required
The OA:A-prefixed identifier of the author. Example: "OA:A5086208034".

Return Fields

FieldTypeDescription
idStringThe OA:A identifier for this author
orcidStringORCID iD, if available
nameStringAuthor’s display name
citationsIntTotal citation count across all works
outputsIntTotal number of indexed works
affiliations[Affiliation]List of institutional affiliations; each contains an institution object with a name field

Example Query

query GetAuthorProfile {
  author(id: "OA:A5086208034") {
    id
    orcid
    name
    citations
    outputs
    affiliations {
      institution {
        name
      }
    }
  }
}

Example Response

{
  "data": {
    "author": {
      "id": "OA:A5086208034",
      "orcid": "https://orcid.org/0000-0002-0299-3274",
      "name": "Albert-László Barabási",
      "citations": 142389,
      "outputs": 412,
      "affiliations": [
        {
          "institution": {
            "name": "Northeastern University"
          }
        },
        {
          "institution": {
            "name": "Harvard Medical School"
          }
        }
      ]
    }
  }
}

Batching Multiple Queries

GraphQL allows you to combine multiple top-level queries into a single request. The example below fetches a work and an author profile simultaneously:
query BatchLookup {
  output(id: "OA:W2107277218") {
    id
    title
    year
  }
  author(id: "OA:A5086208034") {
    id
    name
    citations
  }
}

Example Response

{
  "data": {
    "output": {
      "id": "OA:W2107277218",
      "title": "Quantifying the evolution of individual scientific impact",
      "year": 2013
    },
    "author": {
      "id": "OA:A5086208034",
      "name": "Albert-László Barabási",
      "citations": 142389
    }
  }
}
This single request counts as one request against the rate limit (30 req/min, 1,000/day), regardless of how many entity lookups are included. Batching is the recommended pattern whenever your application needs data about multiple entities at the same time.