Skip to main content

DELETE /v1/artifacts/{id}/publish

Soft-unpublishes the public page for an artifact. The page URL stops resolving immediately. The underlying artifact is not deleted and remains accessible through the API. This endpoint is idempotent: calling it on an already-unpublished artifact is a no-op and returns the same page_id.

Authentication

Requires a Bearer token. See Authentication.

Path parameters

ParameterTypeDescription
idstringArtifact ID (art_...) or page slug (pg_...). Both resolve within the caller’s tenant — the public slug never authorizes cross-tenant mutations.

Request body

None.

Response

{
  "page_id": "pg_aB3xK9mP1qR5sT2u",
  "unpublished": true
}
FieldTypeDescription
page_idstringThe slug of the page that was unpublished.
unpublishedbooleanAlways true.

Error codes

CodeStatusWhen
artifact_not_found404No published page found for the given artifact ID or slug within this tenant.

Notes

  • Artifact is preserved: Only the public page is taken down. The artifact bytes and metadata remain accessible to authenticated callers via GET /v1/artifacts/{id}.
  • Artifact deletion auto-unpublishes: Calling DELETE /v1/artifacts/{id} unpublishes any live page before tombstoning the artifact, so a separate unpublish call is not required before deleting.
  • Re-publish: Calling POST /v1/artifacts/{id}/publish after unpublish creates a new page with the same page_id and URL.

Example

# By artifact ID
curl -X DELETE https://api.artifacta.io/v1/artifacts/art_abc123/publish \
  -H "Authorization: Bearer ak_live_..."

# By page slug
curl -X DELETE https://api.artifacta.io/v1/artifacts/pg_aB3xK9mP1qR5sT2u/publish \
  -H "Authorization: Bearer ak_live_..."