Skip to content
KismetKismetDevelopers
Beta accessllms.txt

publish Article Staging Revision

View .md

POST /v1/developer/collections/{collection}/articles/imports/revisions/{id}/publish

Operation ID: publishArticleStagingRevision

Import canonical Articles as isolated drafts. Review the returned immutable revision and explicitly publish it to staging. Production Article reads and serving routes remain unchanged. Requires collection-scoped server credentials; content channel is independent of TEST/LIVE transaction mode.

Field Value
Maturity preview
Required capability content.publish
Freshness class authenticated-state
Quota cost 1

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential’s installation grants; identifiers in the URL never grant access.

Name In Type Required Description
collection path string yes
id path string yes

The request body is JSON. The canonical schema is:

{
"type": "object",
"properties": {
"channel": {
"type": "string",
"enum": [
"staging"
]
},
"expectedPublishedRevisionId": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
}
},
"required": [
"channel",
"expectedPublishedRevisionId"
],
"additionalProperties": false
}

Minimal example:

{
"channel": "staging",
"expectedPublishedRevisionId": "string"
}

Set KISMET_API_ORIGIN=https://api.ksmt.app and configure KISMET_DEVELOPER_API_KEY in your environment. Run server-credential requests from your backend, not browser code.

Terminal window
curl --request POST \
"$KISMET_API_ORIGIN/v1/developer/collections/example-collection/articles/imports/revisions/11111111-1111-4111-8111-111111111111/publish" \
--header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"channel":"staging","expectedPublishedRevisionId":"string"}'
Status Meaning
200 Success.
400 Invalid request parameters or body.
401 Missing, invalid, expired, or inappropriate credential/session.
403 Credential lacks the required grant/capability, or an origin/CSRF check failed.
404 The authorized resource was not found.
409 Request conflicts with the installation environment or current state.
429 Rate limit or quota exceeded; inspect response metadata before retrying.
503 A required Kismet dependency is temporarily unavailable.

Content type: application/json. Required fields, nullable values, and nested structures are defined below.

View complete response schema
{
"type": "object",
"properties": {
"channel": {
"type": "string",
"enum": [
"staging"
]
},
"articleId": {
"type": "string",
"format": "uuid"
},
"revisionId": {
"type": "string",
"format": "uuid"
},
"path": {
"type": "string"
},
"publishedAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"channel",
"articleId",
"revisionId",
"path",
"publishedAt"
],
"additionalProperties": false
}