---
title: "Mark Content as Published"
method: POST
path: "/api/v1/content/{content_id}/publish"
tags: ["Content"]
---

# Mark Content as Published

`POST /api/v1/content/{content_id}/publish`

## Request

- Base URL: `https://api.athenahq.ai`
- URL: `https://api.athenahq.ai/api/v1/content/{content_id}/publish`
- Auth: API key in header `x-api-key`

Record an already-published article's URL in AthenaHQ for citation and mention tracking. Does not upload or publish content to a website or CMS. Call only after the article is live. Sets the first publication time and moves the pipeline stage to done. A first publish requires a finished article (stage generated), with one exception: an optimize draft is created from a page that is already live and can be marked published while it waits at stage pending, as long as no Athena review is running on it. Briefs, still-generating or failed pieces, optimize drafts with a review in flight, and items with a scheduled CMS publish are rejected with 409 and the reason. Pass the exact public URL of the live page (a bare domain path like acme.com/blog/post is fine; the protocol is stripped on store). Calling it again on an already-published item (including external and imported pages, which are live by definition) updates the tracked URL only, keeping the original publish time. This is the only way to set a content URL over the API; the rename endpoint is deliberately title-only.

## Path parameters

- `content_id` string, required

## Request body

- object
  - `website_id` string, required
  - `url` string, required

## Response `200`

Success

- object
  - `content_id` string, required
  - `title` string, nullable, required
  - `url` string, required
  - `published_at` string, nullable, required
  - `already_published` boolean, required

## Other responses

- `400`: Bad Request: validation failed
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict: the piece has no finished article to publish (brief, generating, or failed stage), an Optimize review is still running on it, or it has a scheduled CMS publish
- `429`: Rate Limited
- `500`: Internal Error

## Changes

- **2026-11-03** `2d1d86d5e067`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/athenahq/apis/athenahq-api/changes/api/v1/content/:content_id/publish/post.md)

---

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