Entries & Entry Patterns

In addition to the named parameters below, this endpoint accepts the

In addition to the named parameters below, this endpoint accepts the following query parameter conventions which are pattern-validated and therefore not declared as named parameters:

  • filters.<field>[<op>] — content filtering (documented below).
  • select.<bucket>[<op>] — data projection (documented below).

Content filtering (filters.*)

Filtering narrows list results to entries matching field values. The allowed field names are project-specific — they come from the project's content types — which is why filters.* parameters are pattern-validated rather than declared as named parameters.

Syntax: filters.<field>[<operator>]=<value>. <field> is one of:

  • A system field: name, slug, type, created, modified, entityId, editionId, releaseId, patternId, creator, creatorSubject, author, authorSubject, workflowId, workflowStageId, categoryId, labels, labelGroups, uiStatus, or locale.
  • An entry field, addressed as fields.<fieldId>. Filtering by fields requires also filtering to a single content type (e.g. filters.type[eq]=...).
  • A sub-property of a field for certain field types: content references (fields.<id>.slug|name|type), links (fields.<id>.type|projectMapNodeId), and assets (fields.<id>.url|title|description|mediaType).
OperatorEffect
[eq] / [neq]Exact equality / inequality.
[match]Contains (text search) match; text-like fields only.
[starts]Prefix match. Value limited to letters, numbers, _, ., -, and spaces.
[lt] / [lte] / [gt] / [gte]Comparisons for number, date, and datetime fields (including created / modified).
[in] / [nin]Comma-separated list; matches any (OR) / none of the values.
[all]Comma-separated list; list-valued fields (e.g. labels, multi-selects) must contain every value (AND).
[def]true or false; whether the field has a value at all.

Behavior:

  • Values are single strings, or comma-separated lists for [in], [nin], and [all]. Dates accept YYYY-MM-DD or a full datetime string. An empty value is rejected — use [def] to test presence.
  • Not every operator is valid for every field; the allowed set depends on the field's type. An unsupported combination returns HTTP 400 with the supported operators listed.
  • Malformed keys, unknown operators, and unknown field names return HTTP 400.

Examples:

  • filters.type[eq]=article — only entries of type article.
  • filters.modified[gte]=2026-01-01 — modified this year.
  • filters.type[eq]=article&filters.fields.brandName[match]=adidas — field filter scoped to one type.
  • filters.fields.author.slug[eq]=jane-doe — filter by a referenced entry's slug.

Data projection (select.*)

Projection returns a subset of the response by pruning fields and field types before values are resolved. The allowed names are project-specific — they come from the project's content types — which is why select.* parameters are pattern-validated rather than declared as named parameters.

Syntax: select.<bucket>[<operator>]=<value>. Values are comma-separated lists of names. * is the only wildcard and matches zero or more characters (e.g. seo_*).

ParameterEffect
select.fields[only]=a,bKeep only the named fields; drop everything else.
select.fields[except]=a,bDrop the named fields; keep everything else.
select.fields[locales]=a,bFor the named fields that survive filtering, return the full per-locale value map instead of only the requested locale's value.
select.fields[blockDepth]=NLimit how many levels of block field children are kept. 0 removes all block fields; preserveAll prevents projection from trimming fields inside block children.
select.fieldTypes[only]=a,bKeep only fields of the named types (type IDs such as text, richText, asset).
select.fieldTypes[except]=a,bDrop fields of the named types.

The composition-oriented select.slots.* operators are also accepted but have no effect on entry responses (entries have no slots).

Behavior:

  • Projection applies recursively at every block in the returned entry, and is forwarded into entries resolved through reference fields.
  • When operators combine, all [only] sets are intersected first, then [except] sets are subtracted — exclusion always wins.
  • Unknown field or type names are silent no-ops (the entry shape is preserved; non-matching content is simply absent). Unknown operators return HTTP 400.
  • An empty list (select.fields[only]=) strips every field; [except]=* is equivalent.

Examples:

  • select.fields[only]=title,coverImage — keep only titles and cover images on every entry in the list.
  • select.fieldTypes[except]=richText — everything except rich-text fields.
  • select.fields[only]=title,seo_*&select.fields[locales]=seo_* — lean payload keeping all locales on the SEO fields.
get/api/v1/entries

Request

  • Base URL: https://uniform.app
  • URL: https://uniform.app/api/v1/entries
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Query parameters

entryIDsstring[]

Specify one or more entry IDs to fetch. When editions=raw, this matches on edition IDs or entry IDs and edition resolution is disabled. When versionId is passed, this parameter is required and must contain only one entry ID.

versionIdstring

Specify a historical entry version ID to fetch (retrieved from the entries-history API). Must be used with the entryIDs parameter, and there must be only one entryID passed

slugstring

Specify a single entry to fetch by slug

createdBystring

Filters entry lists by the user who created them. The user is specified by their identity subject

limitinteger

Max number of records to return

offsetinteger

Number of records to skip

orderBystring[]

Sets the sorting of the results. If unspecified, results are sorted by modification date descending. Allowed values are: updated_at_DESC, updated_at_ASC, created_at_DESC, created_at_ASC, name_DESC, name_ASC, slug_DESC, slug_ASC

facetBystring

Returns counts for distinct values of the specified field or fields (provided as comma-separated IDs).

boolean
OR
'any'

Matches entries based on whether they are pattern entries or regular entries. If true, only pattern entries will be returned. If false (default), only regular entries will be returned. If 'any', both pattern and regular entries will be returned (useful for ID lookups).

projectIdstring uuid required

The project the entry/entries are on

statenumber

Publishing state to fetch. 0 = draft, 64 = published

typestring[]

The content type ID to filter by

uiStatusstring[]

Filters entries lists by the UI status of the entry. This internal status is subject to change without notice, and is thus marked deprecated to discourage use of internal data

updatedBystring

Filters entry lists by the user who last updated them. The user is specified by their identity subject

withTotalCountboolean

Controls whether the total count of results will be returned along with the current results page in a list. Has no effect when not fetching a list. This does impact performance when enabled

withUIStatusboolean

Returns the UI status string of the entry. This internal status is subject to change without notice, and is thus marked deprecated to discourage use of internal data

withWorkflowDefinitionboolean

Returns the definition of any attached workflow along with the entry data

withComponentIDsboolean

If true the _id unique identifier of blocks will be part of the response data. If false, the _id will not be present in the API response. Note: the default value depends on the format: true for editor or canonical, false for delivery or when no format is specified. Prefer selecting a format rather than using this option.

keywordstring

Performs keyword search on the entries

skipPatternResolutionboolean

If true, any pattern references in the composition will be left unresolved. This is appropriate if you intend to serialize the composition without patterns embedded into it, and serialize the pattern data separately. Default: true when format is canonical. False otherwise Prefer selecting a format rather than using this option.

skipParameterResolutionboolean

This parameter is unused and has no effect. Passing this parameter will become an error in the future

skipOverridesResolutionboolean

If true, any pattern override data is not resolved by the API. This is intended for internal use in the Canvas editor, and should not be used. Passing this parameter automatically implies withComponentIDs to be true. Default: true when format is canonical or editor. False otherwise. Prefer selecting a format rather than using this option.

skipContentTypeResolutionboolean

Improves performance by skipping dynamic data revalidations; appropriate for content delivery. Default: true when format is delivery. False otherwise. Prefer selecting a format rather than using this option.

localestring

One or more locales to filter and localize by. Only entries that enable one of the specified locales or enable no locales will be returned. The response will be localized to include only the first matching locale's data.

This parameter accepts a single value, a comma-delimited list of values, or the Accept-Language header syntax. Examples: en-US fr-CA,fr de-AT;q=0.9,de-DE;q=0.8,en;q=0.7

When this parameter is not passed, all locales' data will be returned

releaseIdstring uuid

The ID of a release to fetch the content for.

  • When unspecified, all release content is excluded from the result(s).
  • When specified, all content is returned as it would appear in the release if it was released now. This includes both content copied to the release and changed, as well as content that is not part of the release.

Content copied to a release can be differentiated from base content by the releaseId property on the content. If the content is not copied to the release, this property will be null

searchstring

Search on textual fields of an entry. Matches against fully rendered content including resolved pattern content. Use this for "where does this content appear" queries. Note: For long text fields, the tail of the text is not guaranteed to be searchable. Example: ?search=hello

searchSemanticstring

BETA: Semantic search using vector similarity to find content by meaning. Matches against source content only - pattern base content matches the pattern itself, not consumers. Use this for "where is this content defined" queries. Requires AI credits.

editions'auto' | 'all' | 'raw'

Controls the edition resolution behavior.

auto: (default) Editions are evaluated automatically and the best matching edition is returned. When a locale is provided, the edition with the highest priority that enables that locale matches Without a locale, the default edition is matched

all: Every edition is returned as a separate row.

raw: the entryIDs parameter targets exact edition/entry IDs and no edition resolution is performed. entryIDs MUST be provided with this option. If versionId is passed, this is always enabled.

format'canonical' | 'editor' | 'delivery'

Specify a format you want the results in. Any explicit shaping flag (skipPatternResolution, skipOverridesResolution, withComponentIDs, skipContentTypeResolution) overrides this alias.

  • canonical: PUT-safe structure — patterns and overrides left unresolved and component _ids included. This is the format the Uniform CLI uses when syncing. (skipPatternResolution=true, skipOverridesResolution=true, withComponentIDs=true, skipContentTypeResolution=false).
  • editor: For loading into a Uniform editor - same as canonical, but with patterns expanded (skipPatternResolution=false). Still PUT-safe — the PUT ignores the expanded pattern nodes.
  • delivery: default structure for serving to a frontend — patterns and overrides resolved, component _ids removed, and each entry returned as stored (skipContentTypeResolution=true).
deleted'exclude' | 'only' | 'include'

Controls filtering of trashed items.

exclude: (default) Only return items not in trash. only: Only return trashed items (for trash view). include: Return both trashed and non-trashed items.

Response

OK

totalCountinteger

Total number of entries that match the query. Only present when withTotalCount option is true

facetsobject

Per-field counts for distinct values

Changes

No recorded changes to this operation across all 1 revision of this API.