Developers
MCP available

Six GraphQL root operations

This is the complete operation-level reference; see Full SDL and Argument catalog for the full, repetitive argument signatures.

node(id: String!): Node

Retrieve a single record by its Evendo node ID. Returns a Node with selected fields or null.

graphql
query { node(id: "3127593") { id title category rating rating_votes location { lat lon } } }

bySlugId(slugId: String!): Node

Look up one place by its stored slug path.

graphql
query { bySlugId(slugId: "spain/madrid") { id title slug_id node_type } }

search(text: String!, ...): NodeConnection!

Keyword search over the indexed textual fields, with English stemming; not a semantic/vector or typo-tolerant search. Scope with ancestor_id for any descendant of a place, or parent_id for direct children.

graphql
query {
  search(text: "ramen", ancestor_id: "27799", nodeType: "Restaurants", first: 10) {
    edges { node { id title address category } }
    pageInfo { hasNextPage endCursor }
  }
}

text is required. To discover a geographic container, use search(text: "Madrid", nodeType: "Cities", ...) and inspect country_code if ambiguous.

childrenOf(parentId: String!, ...): NodeConnection!

One-level-down traversal of a container's immediate children; does not automatically enumerate descendants of grandchildren.

graphql
query {
  childrenOf(parentId: "27799", first: 20) {
    edges { node { id title node_type child_count } }
    pageInfo { hasNextPage endCursor }
  }
}

descendantsOf(ancestorId: String!, ...): NodeConnection!

Recursive traversal of every depth beneath a container. Best suited for discovery of venue types within a city, region, country or neighbourhood.

graphql
query {
  descendantsOf(ancestorId: "27799", nodeType: "Attractions", first: 20) {
    edges { node { id title rating address } }
    pageInfo { hasNextPage endCursor }
  }
}

nodeCount(nodeType: String): Int!

Counts matching nodes globally. This operation does not accept a country/city ancestor filter.

graphql
query { nodeCount(nodeType: "Restaurants") }

Common arguments and response rules

The three connection queries accept nodeType, first, after, exact-match filters, array filters, numeric ranges, booleans, coordinates, radius, orderBy and dedupe. first defaults to 20 with a maximum of 100. Connection results have edges and pageInfo, not totalCount. Read Arguments, Filters, Sorting and Responses.