Articles
Endpoints for viewing articles, submitting briefs and drafts via Google Doc links, and managing article comments.
Get article
GET /articles/{article_id}
Retrieve an article's details including brief and draft Google Doc links.
Description: Returns article metadata, current status, writer info, and attached files. Use this to check the current state of a brief or draft before submitting updates.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Request
curl "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN"Response
{
"id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"name": "Premium Tech Feature",
"brief_google_doc_url": "https://docs.google.com/document/d/abc123/edit",
"draft_google_doc_url": null,
"live_url": null,
"campaign_id": "66666666-6666-6666-6666-666666666666",
"product_id": "33333333-3333-3333-3333-333333333333",
"profile_id": "22222222-2222-2222-2222-222222222222",
"updated_at": "2026-03-20T10:00:00.000Z",
"writer": {
"id": "wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww",
"first_name": "Jane",
"last_name": "Smith"
},
"support_agent": null,
"status": {
"name": "Pending Content Brief",
"prefix": "pending-content-brief",
"color": "#F59E0B"
},
"files": [],
"expected_completion_date": "2026-04-10T00:00:00.000Z",
"expected_completion_date_title": "Estimated Brief Date"
}Update article
PUT /articles/{article_id}
Update an article's content brief Google Doc link.
Description: Use this endpoint to save article fields such as the content brief Google Doc link. Updating brief_google_doc_url only saves the link; it does not submit, approve, or change the article status automatically. Workflow status changes are handled by the dedicated workflow endpoints.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Body
| Field | Type | Required | Description |
|---|---|---|---|
brief_google_doc_url | string | null | No | Google Doc URL for the content brief |
name | string | No | Article name / headline |
Request
curl -X PUT "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brief_google_doc_url": "https://docs.google.com/document/d/abc123/edit"
}'Response
Returns the full updated article object.
Approve brief
PATCH /articles/{article_id}/approve-brief
Approve the content brief for an article.
Description: Marks the article's content brief as approved, advancing the article to the next stage in the workflow.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Request
curl -X PATCH "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/approve-brief" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN"Response
Returns the updated article object.
Approve draft
PATCH /articles/{article_id}/approve-draft
Save and approve a draft for an article via Google Doc link.
Description: Use this endpoint when you need to attach a draft_google_doc_url and approve the draft in a single step. Make sure the Google Doc is shared with "Anyone with the link" set to "Editor" so writers can review and make changes.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Body
| Field | Type | Required | Description |
|---|---|---|---|
draft_google_doc_url | string | No | Google Doc URL for the draft you are submitting |
Request
curl -X PATCH "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/approve-draft" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"draft_google_doc_url": "https://docs.google.com/document/d/xyz789/edit"
}'Response
Returns the updated article object.
Comments
Comments are discussions attached to an article. API-token integrations can list, create, update, and archive comments on behalf of their own end-users (for example, a publisher dashboard or a client portal).
Each comment has a short reference (e.g. K7M2Q9XA) returned as id. Use this reference — not a UUID — when updating or archiving a comment. One-level replies are supported via parent_comment_id.
To be notified when a comment is created, updated, or archived, subscribe to the comment.* webhook topics. See the Webhooks guide.
Required scopes
| Action | Scope |
|---|---|
| List comments | articles.read, articles.lists |
| Create a comment | articles.create |
| Update a comment | articles.update |
| Archive a comment | articles.delete |
List article comments
GET /articles/{article_id}/comments
Get comments for an article, grouped by root comment with one level of replies.
Description: Only comments visible to your team are returned. Internal comments and comments from other teams are excluded.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Request
curl "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/comments" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN"Response
{
"records": [
{
"id": "K7M2Q9XA",
"content": "Can you clarify the requested change?",
"author": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"created_at": "2026-03-20T10:00:00.000Z",
"updated_at": "2026-03-20T10:00:00.000Z",
"parent_comment_id": null,
"replies": [
{
"id": "M4R8T1QZ",
"content": "Yes, we updated the introduction.",
"author": {
"name": "Pat Lee",
"email": null
},
"created_at": "2026-03-20T10:05:00.000Z",
"updated_at": "2026-03-20T10:05:00.000Z",
"parent_comment_id": "K7M2Q9XA"
}
]
}
]
}Create a comment
POST /articles/{article_id}/comments
Create a comment on an article. Pass parent_comment_id to post a reply.
Description: The author block identifies the end-user the comment is attributed to. Replies are one level deep — you cannot reply to a reply. The returned id is the reference to use for future updates or archives.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
Body
| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Comment body. 1–10,000 characters. |
parent_comment_id | string | null | No | Reference of the comment being replied to. Omit for root comments. |
author.name | string | Yes | Display name of the author. 1–200 characters. |
author.email | string | null | No | Author email address. |
author.external_id | string | null | No | Your system's identifier for the author. Stored for audit only. |
Request
curl -X POST "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/comments" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Can you clarify the requested change?",
"author": {
"name": "Jane Smith",
"email": "jane@example.com",
"external_id": "customer-user-123"
}
}'Response
201 Created
{
"id": "K7M2Q9XA",
"content": "Can you clarify the requested change?",
"author": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"created_at": "2026-03-20T10:00:00.000Z",
"updated_at": "2026-03-20T10:00:00.000Z",
"parent_comment_id": null,
"replies": []
}Update a comment
PUT /articles/{article_id}/comments/{comment_reference}
Replace the content of a comment you previously created via the API.
Description: You can only update comments that your API token created. Updating someone else's comment, or a comment created from the dashboard, returns 403.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
comment_reference | string | Public reference returned as id on create/list |
Body
| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | New comment body. 1–10,000 characters. |
Request
curl -X PUT "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/comments/K7M2Q9XA" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Updated comment text."
}'Response
Returns the updated comment object, same shape as the create response.
Archive a comment
DELETE /articles/{article_id}/comments/{comment_reference}
Soft-delete a comment you previously created via the API.
Description: Archived comments are removed from list responses and no longer surface in the dashboard. You can only archive comments your API token created.
Path parameters
| Parameter | Type | Description |
|---|---|---|
article_id | string | UUID of the article |
comment_reference | string | Public reference returned as id on create/list |
Request
curl -X DELETE "https://api.presscart.com/articles/eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee/comments/K7M2Q9XA" \
-H "Authorization: Bearer $PRESSCART_API_TOKEN"Response
204 No Content