> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tako.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Graph Node

> Look up a single node in Tako's data graph by its id

## Notes

* **Authenticated, no credits** — send the same `X-API-Key` header as every Tako endpoint. Graph calls consume no credits; rate limits are 180/minute and 10,000/day.
* Use graph node to **confirm what a node id actually refers to.** Given an id — from a [Search](/api-reference/search-v3) or [Answer](/api-reference/answer) card, from [Graph Search](/api-reference/graph-search), or from [Graph Related](/api-reference/graph-related) — resolve it here to get the node's full `name`, `aliases`, and `description` and verify it's the entity or metric you expected before you rely on it.
* The `id` is the opaque public id Tako returns everywhere it exposes a node. The same id works across all graph endpoints.

<Warning>
  **A resolved node describes what Tako knows about that id** — it does not promise that any specific entity + metric combination exists, or that data is available for it. Use [Graph Related](/api-reference/graph-related) to see what a node connects to, and confirm coverage at [Search](/api-reference/search-v3) or [Answer](/api-reference/answer).
</Warning>

## Disambiguation flow

The node id is the through-line that ties search results back to the graph. A typical loop:

1. Run a [Search](/api-reference/search-v3) or [Answer](/api-reference/answer) query and read the node ids off the card's `nodes` array.
2. Resolve each id here to confirm the card was built from the entities and metrics you meant — compare `name`, `aliases`, and `label`. The names themselves settle homonyms: `China` the country and `China, TX` are distinct nodes with distinct ids.
3. If a node isn't the one you wanted, resolve the intended one with [Graph Search](/api-reference/graph-search) instead, then re-run the query pinned to that id via `sources.data.node_ids`.

## Path format

The path takes the full opaque id, so **URL-encode it** — ids contain `::`. The trailing slash is required; without it Tako responds `301` to the canonical path, which clients only follow when told to (`curl -L`).

```bash theme={null}
# ent::china::f9a471b8, percent-encoded
curl "https://tako.com/api/v1/graph/node/ent%3A%3Achina%3A%3Af9a471b8/" \
  -H "X-API-Key: $TAKO_API_KEY"
```

## Example response

```json theme={null}
{
  "id": "ent::china::f9a471b8",
  "type": "entity",
  "name": "China",
  "aliases": ["CHN", "China PR", "Chinese"],
  "label": "GPE"
}
```

<Note>
  A `404` means the id does not resolve to a node — either it's malformed, it uses an unknown prefix, or no such node exists.
</Note>


## OpenAPI

````yaml GET /v1/graph/node/{id}
openapi: 3.1.0
info:
  title: Knowledge Search API
  version: 1.0.0
servers:
  - url: https://tako.com/api/
    description: Tako Production API Server
security: []
paths:
  /v1/graph/node/{id}:
    get:
      tags:
        - tako
      summary: Get a graph node by id
      description: >-
        Resolve a single node by its opaque public id. Search cards,
        /v1/graph/search, and /v1/graph/related return these ids. Returns the
        node's name, type, aliases, and description. Requires an API key. This
        endpoint was previously at /beta/graph/node/{id}. That path still works
        until 1 February 2027. Move to /v1/graph/node/{id}.
      operationId: graphNode
      parameters:
        - description: Opaque public id of the node.
          required: true
          schema:
            type: string
          name: id
          in: path
      responses:
        '200':
          description: A single graph node
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphNode'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '404':
          description: The requested resource does not exist or has no exportable data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '503':
          description: A backing data store is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '504':
          description: >-
            A graph query exceeded its time limit. This doesn't mean the node is
            missing or has no connections. Narrow the request or try again
            later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
      security:
        - apiKey: []
components:
  schemas:
    GraphNode:
      properties:
        id:
          type: string
          title: Id
          description: >-
            Opaque, human-friendly public id (<prefix>::<name>::<hash>, where
            prefix is ent for an entity or mt for a metric). Ids are not durable
            across knowledge-graph rebuilds — resolve them at request time
            rather than storing them.
        type:
          $ref: '#/components/schemas/GraphNodeType'
          description: Whether the node is a metric or an entity.
        name:
          type: string
          title: Name
          description: >-
            Display name. Several metrics can share a name when publishers
            report different series, such as two GDP metrics; read `description`
            to tell them apart.
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: >-
            Other names Tako matches to this node, such as abbreviations,
            tickers, and former names. /v1/graph/search matches `q` against
            these as well as `name`.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            What the node is. For a metric, what it measures, often with its
            unit and basis. For an entity, a short identification. Absent when
            Tako has none.
        subtype:
          anyOf:
            - $ref: '#/components/schemas/EntityClassName'
            - type: 'null'
          description: >-
            The entity's class, such as Companies, Countries, or People. Absent
            for metrics, and for an entity whose class Tako didn't resolve for
            this response. /v1/graph/search and /v1/graph/related resolve it;
            /v1/graph/node doesn't.
        label:
          anyOf:
            - $ref: '#/components/schemas/NerLabel'
            - type: 'null'
          description: >-
            Public NER label of the node (PERSON, ORG, GPE, ...). Derived from
            the node's stored annotation; null when the internal annotation has
            no public equivalent.
        match_kind:
          anyOf:
            - $ref: '#/components/schemas/GraphMatchKind'
            - type: 'null'
          description: >-
            How this result matched `q`: `name` when `q` is the node's name,
            `alias` when `q` is one of its aliases, `mention` when a phrase in
            `q` is the node's name or alias (Apple Inc. for `q=Apple revenue`),
            and `fuzzy` for any other partial or approximate match. A `fuzzy`
            result can be unrelated to what you asked for, so check it before
            you rely on it. Set on /v1/graph/search results only.
      type: object
      required:
        - id
        - type
        - name
      title: GraphNode
    BaseAPIError:
      properties:
        error_message:
          type: string
          title: Error Message
        error_type:
          $ref: '#/components/schemas/APIErrorType'
      type: object
      required:
        - error_message
        - error_type
      title: BaseAPIError
    GraphNodeType:
      type: string
      enum:
        - metric
        - entity
      title: GraphNodeType
      description: >-
        A `metric` is a measurable quantity, such as GDP; an `entity` is what
        one is measured for, such as France.
    EntityClassName:
      type: string
      enum:
        - Companies
        - Cryptocurrencies
        - Financial Instruments
        - Internet Browsers
        - Commodities
        - People
        - Currencies
        - Stock Exchanges
        - Securities
        - IPOs
        - Government Debt Instruments
        - Treasury Securities
        - Segments
        - Airports
        - Airlines
        - Vehicle Types
        - Transportation Modes
        - Drugs
        - Drug Categories
        - Diseases
        - Injury Mechanisms
        - Injury Intents
        - Chemical Elements
        - Chemical Compounds
        - Celestial Bodies
        - Occupations
        - Social Media Platforms
        - Operating Systems
        - Search Engines
        - Device Types
        - LLMs
        - LLM Families
        - LLM Benchmarks
        - AI Gateway Entity
        - Industries
        - NAICS Industries
        - BLS Industries
        - PSC Categories
        - Purchase Categories
        - Federal Contractors
        - Federal Agencies
        - Federal Subagencies
        - ICE Contracts
        - ICE Contractors
        - Elections
        - Political Offices
        - Pollsters
        - Agricultural Products
        - Tobacco Products
        - Prediction Markets
        - Prediction Events
        - Real Estate Property Types
        - Continents
        - World Regions
        - Countries
        - States
        - Counties
        - Metro Areas
        - Cities
        - F1 Drivers
        - F1 Teams
        - F1 Circuits
        - F1 Events
        - NASCAR Drivers
        - NASCAR Teams
        - NASCAR Tracks
        - NASCAR Events
        - NASCAR Races
        - NASCAR Owners
        - NASCAR Manufacturers
        - Golf Players
        - Golf Tournaments
        - Golf Venues
        - Golf Courses
        - Soccer Teams
        - Soccer Players
        - Soccer Competitions
        - Soccer Conferences
        - Basketball Teams
        - Basketball Players
        - Basketball Conferences
        - Basketball Divisions
        - Baseball Teams
        - Baseball Players
        - Baseball Conferences
        - Baseball Divisions
        - Baseball Competitions
        - Football Teams
        - Football Players
        - Football Conferences
        - Football Divisions
        - Ice Hockey Teams
        - Ice Hockey Conferences
        - Ice Hockey Divisions
        - Sports
        - Sports Leagues
      title: EntityClassName
    NerLabel:
      type: string
      enum:
        - PERSON
        - ORG
        - GPE
        - LOC
        - PRODUCT
        - EVENT
        - LANGUAGE
        - MONEY
        - METRIC
        - STOCK_TICKER
        - WEBSITE
      title: NerLabel
    GraphMatchKind:
      type: string
      enum:
        - name
        - alias
        - mention
        - fuzzy
      title: GraphMatchKind
      description: How a search result matched the query text.
    APIErrorType:
      type: string
      enum:
        - BAD_REQUEST
        - AUTHENTICATION_ERROR
        - INTERNAL_SERVER_ERROR
        - RELEVANT_RESULTS_NOT_FOUND
        - RATE_LIMIT_EXCEEDED
        - PAYMENT_REQUIRED
        - REQUEST_TIMEOUT
        - FORBIDDEN
        - NOT_FOUND
        - SERVICE_UNAVAILABLE
        - SERVICE_OVERLOADED
        - UNSUPPORTED_CONTENT_FORMAT
        - PLACEHOLDER_CARD
        - VARIABLE_COST_NOT_REQUESTED
      title: APIErrorType
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-API-Key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.