Contents

Create and manage articles

Fetch list of articles

get
Authorizations
X-API-KEYstringRequired
Query parameters
pageinteger · nullableOptional

Page number for pagination

langstring · nullableOptional

Filter by language code

projectstring · nullableOptional

Filter by project ID. If not provided, it will return the articles not part of any project. Use all to get all articles.

sitestring · uuid · nullableOptional

Filter by site/brand ID. Use GET /v1/sites to get available site IDs.

Responses
chevron-right
200

A list of articles

application/json
idstringOptional
is_draftbooleanOptional

Whether the article is a draft

statusstring · enumOptionalPossible values:
titlestring · nullableOptional

It is null if the article is not generated yet.

contentstring · nullableOptional

It is null if the article is not generated yet.

snippetstring · nullableOptional
project_idstring · nullableOptional

It is null if the article is not part of a project.

site_idstring · uuid · nullableOptional

The site/brand ID associated with this article. Null if no brand context.

meta_descriptionstring · nullableOptional
content_typestring · enumOptionalPossible values:
created_atstring · date-timeOptional
updated_atstring · date-time · nullableOptional
get
/v1/contents
200

A list of articles

Create a new article

post

Create content using different templates:

  • article (default): Full-featured articles with support for listicles, reviews, how-tos. Use settings.article_type to specify.

  • local_news: Location-focused news articles. Simpler settings, uses local_news_settings.

  • recipe: Structured recipe content with ingredients, instructions. Uses recipe_settings.

Authorizations
X-API-KEYstringRequired
Body
target_keywordstringRequired

The target keyword for the content.

templatestring · enumOptional

The content template to use:

  • article: General articles with full settings (listicle, review, howto, general)
  • local_news: Location-focused news content
  • recipe: Structured recipe with ingredients and instructions
Default: articlePossible values:
site_idstring · uuid · nullableOptional

Optional site/brand ID. When provided, enables Brand Voice, site context, target audience, and Link Engine. Pass null to explicitly create content without any brand context (Organization Mode). When omitted, auto-assigns your default site.

modelstringOptional

The AI model to use.

Default: gpt-4o-mini
settings_presetnumber · nullableOptional

Preset ID (only for template=article).

use_serpbooleanOptional

When true, fetches top SERP competitors before generation and uses their content as context to write a more competitive article. Requires a Power plan or higher.

Default: false
is_draftbooleanOptional

Whether to save as draft (won't generate immediately)

Default: false
Responses
chevron-right
200

Content created successfully

application/json
idstringOptional
is_draftbooleanOptional

Whether the article is a draft

statusstring · enumOptionalPossible values:
post
/v1/contents
200

Content created successfully

Import article from URL

post

Import an existing article by URL. Scrapes the page and creates a Cuppa article.

Authorizations
X-API-KEYstringRequired
Body
urlstringRequired

URL to import

languagestringOptional

Language code

Default: en
site_idstring · uuidOptional

Site to associate with

Responses
post
/v1/contents/import
201

Article imported

Get an article by ID

get
Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The ID of the article

Responses
chevron-right
200

The article object

application/json
idstringOptional
is_draftbooleanOptional

Whether the article is a draft

statusstring · enumOptionalPossible values:
titlestring · nullableOptional

It is null if the article is not generated yet.

contentstring · nullableOptional

It is null if the article is not generated yet.

snippetstring · nullableOptional
project_idstring · nullableOptional

It is null if the article is not part of a project.

site_idstring · uuid · nullableOptional

The site/brand ID associated with this article. Null if no brand context.

meta_descriptionstring · nullableOptional
content_typestring · enumOptionalPossible values:
created_atstring · date-timeOptional
updated_atstring · date-time · nullableOptional
get
/v1/contents/{id}
200

The article object

Update an article

patch

Update title, content, meta description, or target keyword of an existing article. At least one field is required.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Body
titlestringOptional

Article title

contentstringOptional

HTML content

meta_descriptionstringOptional

SEO meta description

target_keywordstringOptional

Target keyword

Responses
chevron-right
200

The updated article

application/json
idstringOptional
is_draftbooleanOptional

Whether the article is a draft

statusstring · enumOptionalPossible values:
titlestring · nullableOptional

It is null if the article is not generated yet.

contentstring · nullableOptional

It is null if the article is not generated yet.

snippetstring · nullableOptional
project_idstring · nullableOptional

It is null if the article is not part of a project.

site_idstring · uuid · nullableOptional

The site/brand ID associated with this article. Null if no brand context.

meta_descriptionstring · nullableOptional
content_typestring · enumOptionalPossible values:
created_atstring · date-timeOptional
updated_atstring · date-time · nullableOptional
patch
/v1/contents/{id}
200

The updated article

Get the current status of an article

get
Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The ID of the article

Responses
chevron-right
200

The status of the article

application/json
idstringOptional
is_draftbooleanOptional

Whether the article is a draft

statusstring · enumOptionalPossible values:
get
/v1/contents/{id}/status
200

The status of the article

Get content grade for an article

get

Returns the content grade and SERP optimization scores for an article. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Responses
chevron-right
200

Article grade

application/json
existsbooleanOptional
get
/v1/contents/{id}/grade
200

Article grade

Trigger grading for an article

post

Analyzes the article and generates a content grade. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Responses
chevron-right
200

Article graded successfully

application/json
existsbooleanOptional
post
/v1/contents/{id}/grade
200

Article graded successfully

Get SERP analysis data for an article

get

Returns competitor analysis data including top-ranking pages, word counts, and search intent. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Responses
chevron-right
200

SERP analysis data

application/json
statusstring · enumOptionalPossible values:
get
/v1/contents/{id}/serp
200

SERP analysis data

Fetch SERP data for an article

post

Triggers competitor analysis by scraping top 10 search results for the article's keyword. Data is cached for 3 days. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Body
locationstringOptional

Country/region code (e.g. "us", "uk"). Required if not set on article.

Responses
chevron-right
200

SERP fetch started

application/json
messagestringOptional
statusstringOptional
article_idstringOptional
post
/v1/contents/{id}/serp
200

SERP fetch started

Get AI optimization suggestions

post

Generates actionable suggestions to improve content based on SERP competitor analysis. Requires SERP data to be fetched first (POST /v1/contents/{id}/serp). Uses Anthropic API key if available for AI-powered suggestions, otherwise returns quick suggestions. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Body
use_aibooleanOptional

Use AI for suggestions (requires Anthropic API key)

Default: true
Responses
chevron-right
200

Optimization suggestions

application/json

AI-powered optimization suggestions based on SERP analysis

modestring · enumOptional

Whether AI or quick rule-based suggestions were used

Possible values:
summarystringOptional
estimated_score_improvementintegerOptional
post
/v1/contents/{id}/optimize
200

Optimization suggestions

Publish article to CMS platform

post

Push an article to an external CMS (Ghost, Webflow, Contentful, Sanity, Airtable). The integration must be configured in team settings first. Requires Power plan or higher.

Authorizations
X-API-KEYstringRequired
Path parameters
idstringRequired

The article ID

Body
platformstring · enumRequiredPossible values:
Responses
chevron-right
200

Article published

application/json
successbooleanOptional
platformstringOptional
external_idstring · nullableOptional
external_urlstring · nullableOptional
errorstring · nullableOptional
post
/v1/contents/{id}/publish
200

Article published

Last updated

Was this helpful?