Skip to main content
GET
Get a graph node's related nodes

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.
  • Start from a node_id returned by Graph Search, then use graph related to find which entity + metric combinations Tako actually covers. Once you’ve found a covered combination, query Search (/v3/search) or Answer (/v1/answer) for it — pinning the ids via sources.data.node_ids.
  • Results in each group are ranked by popularity, blended with how strongly each node matches q when a filter is provided. On big entities, always pass q — unfiltered, a big entity returns hundreds of items.

Response shape: overview vs. one group

The response always includes the resolved node. The rest depends on whether you paginate:
  • No relationrelations holds an ordered overview: one group per relation, each {key, kind, label, items (preview), total, total_capped}. Named semantic edges come first, then membership, data, and siblings; empty groups are dropped.
  • relation=<key> setrelation holds a single paginated page for that one group, with items, total, total_capped, and a next_cursor. Pass next_cursor back as cursor to page through. Items live in relation.items.
Groups by kind:
An unknown relation key returns 200 with empty items, not an error — so a typo’d key reads as “no relation.” Keys are per-node: read the overview to discover them, then drill.

Narrowing with q

The optional q is a case-insensitive substring filter on related nodes’ names/aliases. It filters every group of the overview, or the single paginated group when relation is set:
label/infer_label boosts work as on Graph Search and apply within each group; inference runs only when q is set.

Capped totals

total stops counting at 250: total_capped: true means the true count is at least total — render it as “250+”. Pagination also ends at the cap, so narrow with q to reach the tail.
A 404 means the node_id does not resolve. A node with no relations returns 200 with empty groups — that’s the normal “nothing connected” outcome, not an error.

Example response (overview)

Authorizations

X-API-Key
string
header
required

Query Parameters

node_id
string
required

Opaque public id of the node.

relation
string

Relation key to paginate, for example rel:competes_with, metrics, entities, siblings, or members.

relation_type
string

Deprecated: use relation. A legacy facet name (metric, entity, sibling, or member) that maps to a key.

q
string

Optional case-insensitive substring filter on the related nodes' names and aliases. It filters every group of the overview, or the single paginated group when you set relation.

cursor
string

Opaque pagination cursor.

limit
integer

Page size (default 50, max 100).

label
enum<string>

Prefer related nodes with this NER label. This is a boost, not a filter: matching nodes rank higher within each relation, and totals do not change. Supplying label disables inference.

Available options:
PERSON,
ORG,
GPE,
LOC,
PRODUCT,
EVENT,
LANGUAGE,
MONEY,
METRIC,
STOCK_TICKER,
WEBSITE
infer_label
boolean

When true, Tako NER infers the label and grounded-node boosts from q. Set false to disable. Tako ignores this parameter when you supply label. It applies only when q is present. Default true.

Response

A node's details plus related nodes by facet

node
GraphNode · object
required
relations
GraphRelation · object[] | null
relation
GraphRelationPage · object | null
inferred_labels
enum<string>[] | null

Labels that Tako NER inferred from q when infer_label ran (boost applied). An empty list means inference ran and found nothing. The field is absent when you supplied an explicit label, when infer_label=false, or when there was no q.

Available options:
PERSON,
ORG,
GPE,
LOC,
PRODUCT,
EVENT,
LANGUAGE,
MONEY,
METRIC,
STOCK_TICKER,
WEBSITE