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

ParameterTypeDescription
article_idstringUUID 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

ParameterTypeDescription
article_idstringUUID of the article

Body

FieldTypeRequiredDescription
brief_google_doc_urlstring | nullNoGoogle Doc URL for the content brief
namestringNoArticle 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

ParameterTypeDescription
article_idstringUUID 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

ParameterTypeDescription
article_idstringUUID of the article

Body

FieldTypeRequiredDescription
draft_google_doc_urlstringNoGoogle 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

ActionScope
List commentsarticles.read, articles.lists
Create a commentarticles.create
Update a commentarticles.update
Archive a commentarticles.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

ParameterTypeDescription
article_idstringUUID 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

ParameterTypeDescription
article_idstringUUID of the article

Body

FieldTypeRequiredDescription
contentstringYesComment body. 1–10,000 characters.
parent_comment_idstring | nullNoReference of the comment being replied to. Omit for root comments.
author.namestringYesDisplay name of the author. 1–200 characters.
author.emailstring | nullNoAuthor email address.
author.external_idstring | nullNoYour 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

ParameterTypeDescription
article_idstringUUID of the article
comment_referencestringPublic reference returned as id on create/list

Body

FieldTypeRequiredDescription
contentstringYesNew 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

ParameterTypeDescription
article_idstringUUID of the article
comment_referencestringPublic 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

On this page