---
title: "Publish an article"
method: PATCH
path: "/admin/articles/{article_id}/publish"
tags: ["Admin"]
---

# Publish an article

`PATCH /admin/articles/{article_id}/publish`

## Request

- Base URL: `https://api.presscart.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.presscart.com/admin/articles/{article_id}/publish`
- Auth: HTTP bearer

Publish an article.

## Path parameters

- `article_id` string, uuid, required

## Request body

- object
  - `live_url` string, nullable
  - `override_live_article_check` boolean: Admin-access roles only (ADMIN, SUPPORT_AGENT, WRITER). Publish despite a failed live article check. When the article's current check already failed for the submitted URL, that check is accepted as-is — it keeps its failed status, gains override metadata (actor id, timestamp, reason), and is not re-run. Otherwise a check runs first, and the override applies only if it fails.
  - `override_reason_code` 'checker_could_not_read' | 'outlet_subdomain' | 'flagged_text_expected' | 'link_setting_agreed' | 'link_changes_agreed' | 'other': Required when override_live_article_check is true. The audited reason text is resolved server-side from this code, except for "other".
  - `override_reason` string: Free-text detail. Required when override_reason_code is "other", rejected otherwise.

## Response `200`

Article published successfully

- Article
  - `id` string, uuid, required
  - `name` string, required
  - `story_angle` string, nullable, required
  - `description` string, nullable, required
  - `key_points` string, nullable, required
  - `word_count` string, nullable, required
  - `target_audience` string, nullable, required
  - `live_url` string, nullable, required
  - `brief_google_doc_url` string, nullable, required
  - `draft_google_doc_url` string, nullable, required
  - `notes` string, nullable, required
  - `publish_status` 'UNPUBLISH' | 'PUBLISHING' | 'PUBLISHED' | 'PENDING', required
  - `campaign_id` string, uuid, required
  - `writer_id` string, uuid, nullable, required
  - `support_agent_id` string, uuid, nullable, required
  - `goal_id` string, uuid, nullable, required
  - `priority_id` string, uuid, nullable, required
  - `content_status_id` string, uuid, required
  - `order_item_id` string, uuid, required
  - `draft_count` number, nullable, required
  - `published_date` union, required
    - string, nullable
    - string
    - unknown
  - `approval_date` union, required
    - string, nullable
    - string
    - unknown
  - `estimated_publish_date` union, required
    - string, nullable
    - string
    - unknown
  - `approved_brief_date` union, required
    - string, nullable
    - string
    - unknown
  - `estimated_brief_date` union, required
    - string, nullable
    - string
    - unknown
  - `approved_draft_date` union, required
    - string, nullable
    - string
    - unknown
  - `estimated_draft_date` union, required
    - string, nullable
    - string
    - unknown
  - `publisher_notified_at` union, required
    - string, nullable
    - string
    - unknown
  - `last_compliance_check_id` string, uuid, nullable, required
  - `last_live_article_check_id` string, uuid, nullable, required
  - `created_at` union, required
    - string, nullable
    - string
    - unknown
  - `updated_at` union, required
    - string, nullable
    - string
    - unknown
  - `deleted_at` union, required
    - string, nullable
    - string
    - unknown

---

[API](https://skmtc.dev/presscart/apis/presscart-prod-api.md) · [All operations](https://skmtc.dev/presscart/apis/presscart-prod-api/llms.txt) · [OpenAPI document](https://skmtc.dev/presscart/apis/presscart-prod-api/revisions/6cc194695138?raw)
