Skip to content

Publish content

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

Starts a job that publishes specific versions of components and page nodes. items is a list of { "kind", "id", "versionNumber", "include" }, normally built from a finished plan: use the plan item’s activeRunPinnedVersionNumber when it has one and its headVersionNumber otherwise. Send the same deliveryEnvironmentId the plan used.

Set include: true on every item you want published. An item without it is skipped, and a job that skips everything still succeeds having published nothing. Do not pass plan items through unchanged: their extra properties are refused.

The job runs in the background; poll GET /operations/{id}. It publishes items in order and stops at the first one it cannot publish. Items before that one stay published, result lists them, and the operation fails with error naming the blocking item and the reason: access_denied, workflow_not_publishable, workflow_pinned_version_mismatch (a workflow has pinned a different version), version_not_found, publish_blocked (the content does not validate) or quota_exceeded.

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

{ "id": "…", "status": "queued" }: the job’s id, to poll. The finished job’s result is { "items": [ { "kind", "id", "published", "warnings" } ] }.

validation_failed: no body. delivery_target_not_mapped: deliveryEnvironmentId is not a delivery environment this environment publishes to. no_delivery_target_mapped: this environment publishes to no delivery environment. ambiguous_delivery_target: it publishes to several, listed in mappedDeliveryEnvironmentIds; name one as deliveryEnvironmentId. unknown_property: the body has a property this API does not recognize; the response names it in property. invalid_json: the body is not valid JSON.

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.

bulk_operations_paused: background jobs are temporarily paused. Retry later.