List components
const url = 'https://api.ebitex.io/content/management/v1/components';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
folderIdlists one folder’s direct contents;rootOnly=truelists only components filed at the root.contractIdmatches one contract exactly;adheresToContractIdalso matches every contract that inherits from it. RepeatadheresToContractIdto match several contracts and everything inheriting from any of them, as in?adheresToContractId=a&adheresToContractId=b.categoryIdmatches components tagged with, or holding a category field value of, that category or any of its sub-categories.searchis a case-insensitive substring match on name and external id;externalIdis an exact match.sortisname(the default) orupdated(most recently changed first).publishStatusisdraft,published,modifiedorunpublished; repeat it to match several, as in?publishStatus=draft&publishStatus=modified. It filters before paging, sototalCountis 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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Responses
Section titled “ Responses ”{ "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.