APIOverview

API overview

Generate articles and manage custom workflows over HTTP.

curl -X POST https://serpon.ai/v1/articles \
  -H "Authorization: Bearer $SERPON_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "project_id": 1,
    "title": "How to Choose a Mattress",
    "article_type": "ultimate_guide",
    "target_word_count": 2000,
    "tone": "friendly",
    "point_of_view": "second_person",
    "language": "en",
    "target_keyword": "how to choose a mattress",
    "webhook_url": "https://example.com/hooks/serpon"
  }'
{
  "success": true,
  "message": "Article created successfully! AI content generation has started.",
  "data": {
    "id": 42,
    "external_id": "550e8400-e29b-41d4-a716-446655440000",
    "title": "How to Choose a Mattress",
    "content": null,
    "status": "queued",
    "article_type": "ultimate_guide",
    "project": { "id": 1, "name": "Sleep Blog" },
    "created_at": "2026-08-02T10:30:00.000000Z",
    "updated_at": "2026-08-02T10:30:00.000000Z"
  }
}

The Serpon API creates articles and manages the workflows that produce them. Everything the platform does to an article — research, outline, draft, review, images — runs behind a single POST, and the finished content comes back over polling or a webhook.

https://serpon.ai/v1

All endpoints are JSON in and JSON out, authenticated with a bearer token, and versioned under /v1.

What you can do

AreaEndpoints
ArticlesCreate, list, and retrieve articles
WorkflowsBuild custom pipelines per project — create, update, reorder, duplicate, delete steps
AccountIdentify the token holder

Your first article

Create a token

Under Account → API keys, create a key and copy it. It is shown once. See Authentication.

Find your project ID

Every article belongs to a project. The ID is in the project URL in the dashboard, or in the project block of any article the API returns.

Post the article

Supply a title, an article type, and the style settings. Generation starts immediately.

Conventions

Envelopes. Successful responses carry success: true and put the payload in data. Collections add a meta block with pagination.

{
  "success": true,
  "data": [],
  "meta": { "current_page": 1, "last_page": 5, "per_page": 20, "total": 87 }
}

Errors do not use that envelope. They return a message, plus errors for validation failures or a machine-readable code for gate failures. See Errors.

Timestamps are ISO 8601 in UTC.

Article identity. Articles have a numeric id and a stable external_id UUID. Either works on GET /v1/articles/{id}; store the external_id.

Before you build

API access requires an active subscription. An account with no plan gets 402 with code NO_ACTIVE_SUBSCRIPTION on every endpoint, regardless of the token's validity.

Generation is asynchronous and metered. Two things shape the integration:

  • Article lifecycle — how a request becomes finished content, and how to be told when it is ready.
  • Rate limits & quotas — per-plan request caps and the monthly word quota that gates creation.