Skip to main content
v2026.1714 entries · CC-BY 4.0

Live GraphQL endpoint

GraphQL API

A WPGraphQL-powered endpoint exposing every dictionary type. Read access is public; mutations require authentication.

Endpoint

Production
text
https://casrai.org/graphql
Local development
text
http://localhost/casrai/graphql

Sample query — recent dictionary terms

POST /graphql
graphql
query RecentTerms {
  dictionaryTerms(first: 10, where: { orderby: { field: DATE, order: DESC } }) {
    nodes {
      id
      slug
      title
      status
      definitionOperational
      examples
      counterExamples
      aliases
      canonicalUri
      dictionaryDomains { nodes { name slug casraiTrack } }
      definedTermJsonLd {
        context type name identifier description
        inDefinedTermSet url sameAs
      }
    }
  }
}

Sample query — terms by domain

POST /graphql
graphql
query TermsByDomain {
  dictionaryTerms(
    first: 100,
    where: { taxQuery: { taxArray: [{
      taxonomy: DICTIONARYDOMAIN,
      terms: ["genai-disclosure"],
      field: SLUG
    }] } }
  ) {
    nodes { id slug title definitionOperational }
  }
}

Sample query — a single term by slug

POST /graphql
graphql
query GetTerm($slug: ID!) {
  dictionaryTerm(id: $slug, idType: SLUG) {
    id title slug content
    definitionOperational examples counterExamples aliases
    canonicalUri status version
    relationships { type targetSlug targetUri note }
    definedTermJsonLd { context type name identifier description sameAs }
  }
}

Sample query — picklist with values

POST /graphql
graphql
query GetPicklist($slug: ID!) {
  picklist(id: $slug, idType: SLUG) {
    id title slug content
    picklistValues
    canonicalUri legacySource
  }
}

Sample query — object template with fields

POST /graphql
graphql
query GetObject($slug: ID!) {
  objectTemplate(id: $slug, idType: SLUG) {
    id title slug content excerpt
    fields { name type required picklistSlug dictionaryTermSlug description }
    canonicalUri legacySource
  }
}

Sample query — all 20 domains

POST /graphql
graphql
query AllDomains {
  dictionaryDomains(first: 50, where: { hideEmpty: false }) {
    nodes { id name slug description casraiTrack canonicalUri }
  }
}

Authentication

Read queries are public — no auth required. Mutations (term proposals, edits) require an Application Password (WordPress 5.6+):

HTTP header
bash
Authorization: Basic <base64(username:application_password)>

Rate limits

Public read queries: 60 requests/minute per IP. Authenticated requests: 300 requests/minute per token. Higher limits available on request — /contact/working-groups.

Schema explorer

Interactive GraphiQL playground (Phase 4): /tools/api-explorer.

Adopted by research universities worldwide

University of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoMassachusetts Institute of Technology logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoUniversity of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoMassachusetts Institute of Technology logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logo
  • University of Cambridge logo
  • Columbia University logo
  • University of Edinburgh logo
  • Harvard University logo
  • Massachusetts Institute of Technology logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo

View CASRAI adoption →