Articles API — programmatic newsroom content management

Create, read, update, and publish articles programmatically — full coverage of the editorial domain.

6 min read

List articles

GET /v1/articles?status=published&limit=50&offset=0

Filterable by: status (draft, in-review, approved, published, archived), author_id, department_id, tag, published_after, published_before. Default sort is published_at descending.

Get one article

GET /v1/articles/{article_id}

Create an article

POST /v1/articles
Content-Type: application/json

{
  "headline": "Mayor announces 2026 budget",
  "lede": "$2.3B in new investments",
  "body": "<p>The mayor today...</p>",
  "department_id": "politics",
  "tags": ["politics", "budget", "mayor"],
  "status": "draft"
}

Update an article

PATCH /v1/articles/{article_id}
Content-Type: application/json

{ "headline": "Updated headline" }

Publish

Publishing is a state transition, not a separate field. Move the article to "approved" then "published":

POST /v1/articles/{article_id}/transitions
Content-Type: application/json

{ "to_state": "published", "publish_at": "2026-05-10T06:00:00Z" }

Pagination

List endpoints return a paged response with total count and next offset. Default page size is 50, maximum is 200.

For high-volume integrations (e.g., daily import of wire content), use the bulk endpoint POST /v1/articles/bulk which accepts up to 500 articles per request.

Was this article helpful?

Was this helpful?

Can't find what you need, or spot something wrong? Let us know — every article is improved based on customer feedback.

Contact support