Skip to main content
v2026.11,610 entries · CC-BY 4.0
LAC HealthLaboratory & ResearchLab & research supplies.Reagents, consumables, PPE & instruments — documented, fast, chain-of-custody shipping.Shop lac.us lac.us

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/wp/graphql
Local development
text
http://localhost/casrai/wp/graphql

Sample query — recent dictionary terms

POST /wp/graphql
graphql
query RecentTerms {
  dictionaryTerms(first: 10, where: { orderby: { field: DATE, order: DESC } }) {
    nodes {
      id
      slug
      title
      curationStatus
      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 /wp/graphql
graphql
query TermsByDomain {
  dictionaryDomain(id: "genai-disclosure", idType: SLUG) {
    dictionaryTerms(first: 100) {
      nodes { id slug title definitionOperational }
    }
  }
}

Sample query — a single term by slug

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

Sample query — picklist with values

POST /wp/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 /wp/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 24 domains

POST /wp/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.

Related

  • REST endpoints — the equivalent read-only JSON API for non-GraphQL clients.
  • API reference — the full OpenAPI/schema reference for both APIs.
  • Code examples — worked JavaScript, Python, and PHP samples that call this endpoint.
  • API changelog — versioning and deprecation policy for the GraphQL schema.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref 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

View CASRAI adoption →