REST API
Programmatically generate content using the Content Zen API.
Authentication
All API requests require an API key. Get your key from Settings → API Keys in your dashboard.
Include your API key in the request header:
Authorization: Bearer YOUR_API_KEY
Base URL
https://www.content-zen.com/api/public/
Generate Article
Generate a new article using a content flow:
POST /api/public/generate-article/
{
"friendly_id": "flow_abc123xyz",
"keywords": "best productivity tips for remote workers",
"model_type": "gpt-4o",
"language": "en",
"use_external_links": false,
"use_internal_links": false,
"use_real_serp": true,
"ranking_country": "United States",
"ranking_language": "English"
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
friendly_id |
string | Yes | The friendly ID of the content flow to use (found in flow settings) |
keywords |
string | Yes | Target keyword or topic for the article |
model_type |
string | No | AI model to use: gpt-4o, gpt-4o-mini, gpt-4.1-nano (default: gpt-4) |
language |
string | No | Language code (e.g., en, es, fr, de) |
urls |
array | No | List of reference URLs to use for content research |
use_external_links |
boolean | No | Include external links in the article (default: false) |
use_internal_links |
boolean | No | Include internal links to your existing content (default: false) |
use_real_serp |
boolean | No | Use real SERP data for content research (default: true) |
ranking_country |
string | No | Target country for SERP research (default: "United States") |
ranking_language |
string | No | Target language for SERP research (default: "English") |
run_at |
string | No | ISO datetime to schedule the article generation (e.g., 2024-12-25T10:00:00Z) |
Response
On success, the API returns a 201 Created status. The article will be generated asynchronously and delivered according to your flow's configured integrations (WordPress, webhook, email, etc.).
Example Request
curl -X POST https://www.content-zen.com/api/public/generate-article/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"friendly_id": "flow_abc123xyz",
"keywords": "how to improve SEO in 2024",
"model_type": "gpt-4o",
"language": "en",
"use_real_serp": true
}'
Finding Your Flow ID
To find your flow's friendly_id:
- Go to Flows in your dashboard
- Click on the flow you want to use
- The friendly ID is displayed in the flow header (e.g.,
flow_abc123xyz) - Click the copy button next to it to copy to clipboard
Rate Limits
API requests are limited based on your subscription plan. If you exceed your rate limit, you'll receive a 429 Too Many Requests response.
Error Handling
The API returns appropriate HTTP status codes and error messages:
| Status Code | Description |
|---|---|
201 |
Article generation started successfully |
400 |
Bad request - Invalid parameters or no quota remaining |
403 |
Forbidden - Invalid or missing API key |
Example error response:
"You already used all your quota"
"Article Flow flow_xyz does not exist in your company"