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

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.

LAC

Partner Deal

LAC Health Supplies Mobile App

Referenced across the research world

University of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoCrossref logoUniversity of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoCrossref logo
  • University of Cambridge logo
  • Columbia University logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo
  • Crossref logo

View CASRAI adoption →