Skip to main content

Content documents

Use /api/v1/content for product content, including manually supplied pages, generated content, review drafts, and published documents. The legacy /api/v1/site/pages surface is deprecated. You need content:read for reads and content:write for mutations. Set TPC_API_KEY and your product ID as described in the quickstart.

Read a document

You need content:read.

Find a document by path

Use path lookup when your source system knows the product path instead of the document ID:
The query parameter is still named brandId for this legacy endpoint. Pass the product ID.

Update a document

You need content:write.

Update priority

Use PATCH when you only need to change document priority:

Review workflows

Create review drafts with POST /api/v1/content (up to 25 pages per request) or request generated content with POST /api/v1/content/generate. For POST /api/v1/content, send one product selector: productId or productSlug. Each supplied page needs slug, title, and Markdown content; use canonicalDomainId for an optional publishing destination. List the review queue with:
Use the draft ID from created[].id or the review queue for draft actions: Approval automatically queues publishable content for publishing. A successful approval response is not proof that publishing has finished. Unapproved drafts cannot be published; an explicit publish request returns 409. To update a live document, use its document ID with the PUT and PATCH examples above. To edit a review draft, use /revision.

Domains and archival

Domain attachment is public: use PATCH /api/v1/content/{documentId}/domains with attach, detach, and optional canonicalDomainId. Domain IDs must be UUIDs. Use DELETE /api/v1/content/{documentId} to archive a live document, and POST /api/v1/content/{documentId}/restore to restore it. Deleting an unpublished review draft by its draft ID removes the draft directly; the restore endpoint is for archived live documents. See the API reference for request schemas and the endpoints available to your integration. Metadata suggestion routes remain internal.