Sites & Articles
List sites
GET /v1/api/sitesReturns every site on your account (up to 500), except deleted ones.
curl https://api.seobox.tech/v1/api/sites -H "x-api-key: $SEOBOX_API_KEY"{
"success": true,
"data": [
{
"_id": "66f1c2a9e4b0a1b2c3d4e5f7",
"uid": "3f2b8c1e-7d4a-4f6b-9c2e-1a5d8e9f0b3c",
"domain": "example.com",
"name": "Example Blog",
"cms_type": "wordpress",
"gsc_connected": true,
"status": "active"
}
]
}cms_type is one of wordpress, webflow, shopify, headless, or none.
List articles
GET /v1/api/blogs?limit=20&cursor=<_id>Requires x-workspace-id. Articles are returned newest first.
| Query | Default | Notes |
|---|---|---|
limit | 20 | 1–100 |
cursor | — | The nextCursor from the previous page |
{
"success": true,
"data": [
{
"_id": "66f1d0b2e4b0a1b2c3d4e600",
"uid": "9a7c2e4f-1b3d-4c5e-8f6a-2b4d6e8f0a1c",
"title": "How to Choose a Standing Desk in 2026",
"slug": "how-to-choose-a-standing-desk",
"status": "published",
"target_keyword": "how to choose a standing desk",
"seo_score": 91,
"published_url": "https://example.com/blog/how-to-choose-a-standing-desk",
"published_at": "2026-09-18T10:42:11.000Z"
}
],
"nextCursor": "66f1d0b2e4b0a1b2c3d4e600",
"hasMore": true
}Keep requesting with cursor=<nextCursor> until hasMore is false.
Statuses: draft, generating, review, approved, rejected, scheduled,
published, failed, archived.
Get an article
GET /v1/api/blogs/{uid}Requires x-workspace-id. Returns the full article: the fields above plus the content
(content_markdown, content_html), meta_title, meta_description, faq, and scores.
curl https://api.seobox.tech/v1/api/blogs/9a7c2e4f-1b3d-4c5e-8f6a-2b4d6e8f0a1c \
-H "x-api-key: $SEOBOX_API_KEY" \
-H "x-workspace-id: $SEOBOX_WORKSPACE_ID"This is also how a custom site can pull content instead of receiving
webhook pushes: list published articles and fetch each one by uid.
Last updated on