Skip to main content
GET
/
api
/
v1
/
content
/
{content_id}
Get Content Detail
curl --request GET \
  --url https://api.athenahq.ai/api/v1/content/{content_id} \
  --header 'x-api-key: <api-key>'
{
  "content_id": "11111111-2222-3333-4444-555555555555",
  "title": "Best CRMs for early-stage startups",
  "url": "https://example.com/blog/best-crms",
  "normalized_url": "example.com/blog/best-crms",
  "type": "draft",
  "sheet_id": "22222222-3333-4444-5555-666666666666",
  "status": "generated",
  "brief": "## Brief\n\nTarget the comparison angle for early-stage buyers…",
  "body": "# Best CRMs for early-stage startups\n\nChoosing a CRM before product-market fit…",
  "meta_description": "A practical comparison of CRMs for early-stage startups.",
  "cited_urls": [
    "https://example.org/2026-crm-report"
  ],
  "internal_links": [
    "https://example.com/blog/crm-migration"
  ],
  "brief_cited_urls": [
    "https://example.org/2026-crm-report"
  ],
  "brief_internal_links": [
    "https://example.com/blog/crm-migration"
  ],
  "optimize_summary": null,
  "linkedin_post": null,
  "x_post": null,
  "facebook_post": null,
  "instagram_post": null,
  "reddit_post": null,
  "topic_name": "CRM",
  "mark_as_done_time": null,
  "created_at": "2026-06-01T12:00:00.000Z",
  "updated_at": "2026-06-02T08:30:00.000Z"
}

Authorizations

x-api-key
string
header
required

API key for authentication. You can create one here.

Path Parameters

content_id
string<uuid>
required

The UUID of the content item to fetch.

Query Parameters

website_id
string<uuid>
required

The website the content item belongs to.

Response

Successful response with the content item's full detail.

content_id
string<uuid>
required

The content item's id.

title
string | null
required

The content's title.

url
string | null
required

The content's display URL.

normalized_url
string | null
required

The normalized URL — the value joined against citation data.

type
string | null
required

How the content entered the hub: draft (Athena-written article), optimize (rewrite of an existing page), snipe, slice, manual (authored in the editor), external (added manually), imported (via GA4).

Example:

"draft"

sheet_id
string<uuid> | null
required

The Content Hub sheet the item belongs to. See GET /api/v1/content/sheets.

status
enum<string> | null
required

Generation lifecycle status. pending/pending_brief/pending_article mean work is in flight; generated_brief means the brief is ready while the article is still being written; generated means the text is ready; done means published/marked done; scheduled means a publish is scheduled. null when the item has no generation record yet (e.g. a tracked page that has not been scraped).

Available options:
done,
generated,
failed,
pending,
generated_brief,
pending_brief,
pending_article,
scheduled
brief
string | null
required

The content brief, as markdown. Available once status reaches generated_brief.

body
string | null
required

The article/page body, as markdown. Holds the generated draft, the optimize rewrite, the snipe article, authored text, or the scraped body of a tracked page — depending on type.

meta_description
string | null
required

The generated meta description.

cited_urls
string[] | null
required

External source URLs cited by the body. Not to be confused with citations on POST /api/v1/content, which is the count of AI responses citing this URL.

Internal URLs linked from the body.

brief_cited_urls
string[] | null
required

External source URLs referenced by the brief.

Internal URLs suggested by the brief.

optimize_summary
object | null
required

For optimize items: a summary of what the rewrite changed. null for other types or when no rewrite has completed.

linkedin_post
string | null
required

Latest completed LinkedIn post generated for this content; falls back to legacy stored values for older content.

x_post
string | null
required

Latest completed X post generated for this content; falls back to legacy stored values for older content.

facebook_post
string | null
required

Latest completed Facebook post generated for this content; falls back to legacy stored values for older content.

instagram_post
string | null
required

Latest completed Instagram post generated for this content; falls back to legacy stored values for older content.

reddit_post
string | null
required

Latest completed Reddit post generated for this content; falls back to legacy stored values for older content.

topic_name
string | null
required

Name of the topic the content targets, when assigned.

mark_as_done_time
string<date-time> | null
required

When the item was marked done/published.

created_at
string<date-time>
required

When the content item was created.

updated_at
string<date-time>
required

When the content item or its generated text last changed (the newer of the row and generation timestamps).