Skip to content

List components

GET
/content/management/v1/components
curl --request GET \
--url https://api.ebitex.io/content/management/v1/components \
--header 'Authorization: Bearer <token>'

Lists the components in the key’s authoring environment, drafts included, as summaries without their documents. Components in branches the key’s role cannot view are left out, and totalCount counts only the ones it can see.

  • folderId lists one folder’s direct contents; rootOnly=true lists only components filed at the root.
  • contractId matches one contract exactly; adheresToContractId also matches every contract that inherits from it. Repeat adheresToContractId to match several contracts and everything inheriting from any of them, as in ?adheresToContractId=a&adheresToContractId=b.
  • categoryId matches components tagged with, or holding a category field value of, that category or any of its sub-categories.
  • search is a case-insensitive substring match on name and external id; externalId is an exact match.
  • sort is name (the default) or updated (most recently changed first).
  • publishStatus is draft, published, modified or unpublished; repeat it to match several, as in ?publishStatus=draft&publishStatus=modified. It filters before paging, so totalCount is the filtered count.

Each summary carries the pinned and latest contract version numbers, whether it satisfies its folder’s allowed contracts, and effectiveActions: what the key’s role may do to it.

Paging is by number: page starts at 1 and pageSize defaults to 20. A pageSize above 100 is reduced to 100, and the response’s own pageSize is the one used, so page on that rather than on what you asked for. Offset paging is not stable while the environment is being written to: a row created or deleted ahead of your position shifts every later page, so a walk can repeat some rows and skip others. To enumerate everything, for example to build an external id to id index before an apply, use GET /items with kind, which pages by cursor and neither repeats nor skips a row.

Key: a management key with content.management.read.

folderId
string format: uuid
rootOnly
boolean
contractId
string format: uuid
categoryId
string format: uuid
search
string
externalId
string
sort
string
page
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
pageSize
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
adheresToContractId
Array<string>
publishStatus
Array<string>

{ "items": [ … ], "totalCount": 42, "page": 1, "pageSize": 20 }

invalid_sort: sort is neither name nor updated. invalid_publish_status: a publishStatus is not one of the four statuses.

missing_api_key or invalid_api_key: no key was sent, or it is unknown, revoked or expired.

payment_required: the organization’s subscription needs attention.

scope_denied: the key lacks this route’s scope. tier_required: the Content Management API needs the Pro plan or above. ip_denied: the caller’s address is outside the key’s allowed ranges. app_not_available: Content is not enabled for the organization.

Rate limit or quota exceeded; Retry-After says how long to wait. too_many_failed_authentications: too many bad keys from this address.