Aura Logo
AuraAPI Docs

GraphQL

Query your organization and follow cursor pagination

Send GraphQL operations as JSON to POST https://api.aura-app.ai/graphql. Download the GraphQL schema, generated from the same checked SDL artifact as the API. See Making requests for authentication. Send a partner API key or a Clerk organization JWT in the Authorization header.

Your first query

curl https://api.aura-app.ai/graphql \
  -H "Authorization: Bearer $AURA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{"query":"query { leads(first: 10) { edges { node { id name } cursor } pageInfo { hasNextPage endCursor } } }"}'

Production does not expose the interactive GraphiQL playground. Schema introspection is disabled on deployed builds, including staging. Use the published schema reference to discover fields. The staging playground can execute authenticated operations; its schema discovery panel is unavailable.

Pagination

Choose a page size with first. When pageInfo.hasNextPage is true, pass pageInfo.endCursor unchanged as the next request's after argument. Keep your filters the same while reading consecutive pages.

query NextLeads($after: String) {
  leads(first: 10, after: $after) {
    edges {
      node { id name }
      cursor
    }
    pageInfo { hasNextPage endCursor }
  }
}

Pass variables as the JSON request's variables object, for example {"after":"RETURNED_CURSOR"}.

Intent calls and form answers

The calls list defaults to booked meetings. To find pre-booking activity for a lead, filter by callKind: intent and leadId. Select the call's id and formAnswers. The reference describes each answer's fields and types.

query LeadIntents($leadId: String) {
  calls(first: 10, callKind: intent, leadId: $leadId) {
    edges {
      node {
        id
        callKind
        formAnswers { fieldId label value }
      }
    }
    pageInfo { hasNextPage endCursor }
  }
}

For the REST equivalent, see Calls: intent calls and form answers.

Errors

Check both the HTTP status and the GraphQL errors array. A GraphQL operation can return errors alongside partial data. Do not treat a 200 status alone as success. Invalid authentication, rate limits and document-size checks can reject the request before query execution. If an operation is too large or complex, request fewer fields or use smaller pages before retrying.

On this page