Need to manage API keys, view logs, or check usage?Open the Developer portal →

GraphQL

The entire public API is mirrored as GraphQL. Authentication and versioning headers are identical to REST.

https://api.circa.ai/graphql

Authenticate with x-api-key, scope to a team with x-team-id, and (optionally) pin behavior with Circa-Version — exactly as for REST.

Schema overview

type Query {
  apiVersion: PublicApiVersion!
  me: PublicUser!
  processes(input: PublicListInput): PublicProcessesPage!
  processesPulled(input: PublicListInput): PublicProcessesPage!
  materials(input: PublicListInput): PublicMaterialsPage!
  materialsPulled(input: PublicListInput): PublicMaterialsPage!
}

type Mutation {
  pullDatapoints(input: PullDatapointInput!): PullDatapointResult!
}

See Queries for the full input shape and return type of each query, and Mutations for pullDatapoints.

Example

curl -s 'https://api.circa.ai/graphql' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: circa_live_xxx' \
  -H 'x-team-id: TEAM_ID_FROM_OVERVIEW' \
  -H 'Circa-Version: 2026-05-11.obsidian' \
  -d '{"query":"query { me { id email } materials(input: {limit: 5}) { items { id name } total } }"}'

Playground

Try queries interactively at the GraphQL playground. Paste these headers into the HTTP Headers tab at the bottom:

{
  "x-api-key": "circa_live_REPLACE_ME",
  "x-team-id": "4b6f9c28-6f4e-4e7f-a36d-2ff989045d10",
  "Circa-Version": "2026-05-11.obsidian"
}

GraphQL operations appear in your request log with method GQL and path /public/graphql#OperationName for easy filtering.