Skip to main content
All queries return the latest published versions only. For draft content, use the preview query with a preview token.

Query Schema

type Query {
  # Components
  components(search: String, cursor: String, limit: Int = 20): ComponentList!
  component(id: ID!): Component

  # Packages
  packages(cursor: String, limit: Int = 20): PackageList!
  package(version: String!): Package

  # Content
  contents(
    typeId: ID
    tags: [String!]
    locale: String
    search: String
    filter: ContentFilter
    sort: [SortCriteria!]
    cursor: String
    limit: Int = 20
  ): ContentList!
  content(id: ID!): Content

  # Content Types
  contentTypes(search: String, cursor: String, limit: Int = 20): ContentTypeList!
  contentType(id: ID!): ContentType

  # Assets
  assets(
    type: String
    tags: [String!]
    search: String
    filter: AssetFilter
    sort: [SortCriteria!]
    cursor: String
    limit: Int = 20
  ): AssetList!
  asset(id: ID!): Asset

  # Tags
  tags(search: String, cursor: String, limit: Int = 20): TagList!
  tag(id: ID!): Tag

  # Saved Searches
  savedSearches(type: SavedSearchType, cursor: String, limit: Int = 20): SavedSearchList!
  savedSearch(id: ID!): SavedSearch
  executeSavedSearch(id: ID!, cursor: String, limit: Int = 20): SavedSearchResult!

  # Preview Links (token-based auth)
  preview(token: String!, version: Int): PreviewResult

  # Normalized caching
  resolvedPackageData(packageId: ID!): ResolvedPackageData
  previewResolvedPackageData(token: String!, packageId: ID!): ResolvedPackageData
}

Common Parameters

Pagination

The GraphQL API uses cursor-based pagination for efficient data retrieval:
ParameterTypeDefaultDescription
cursorStringnullOpaque cursor for the next page (from previous response)
limitInt20Items per page (max 100)
List responses include a pagination object with:
  • cursor: The cursor to use for the next page (null if no more pages)
  • hasMore: Boolean indicating if more results exist
  • limit: The limit used for this request

Filtering

List queries support filtering via the filter parameter:
filter: {
  fieldName: { operator: value }
}
Common operators: eq, ne, gt, gte, lt, lte, like, in, notIn

Sorting

List queries support sorting via the sort parameter:
sort: [{ field: "fieldName", order: ASC }]

Available Queries

Components

Query UI components by search term or ID

Packages

Query published component packages

Content

Query content items with filtering and sorting

Content Types

Query content type schemas

Assets

Query media assets with filtering

Tags

Query tags for organizing content

Saved Searches

Query and execute saved searches

Preview

Access draft content via preview tokens

Package Data

Fetch resolved package data for caching