GET
/api/v1/me
Účet, ke kterému klíč patří, a vlastní název a prefix klíče. Hodí se hlavně k jedné věci: řekne vám, že klíč v tomto prostředí je ten klíč, který si myslíte, že to je.
Příklad
curl https://seonis.ai/api/v1/me \
-H "Authorization: Bearer $SEONIS_API_KEY"
GET
/api/v1/sites
Každý web v účtu. id je to, podle čeho seznam článků filtruje, a doména je tu proto, aby build skript mohl párovat podle něčeho, co už zná, místo aby nesl id.
Příklad
curl https://seonis.ai/api/v1/sites \
-H "Authorization: Bearer $SEONIS_API_KEY"
{
"sites": [
{
"id": 5,
"name": "Peppervale",
"domain": "peppervale.co.uk",
"url": "https://peppervale.co.uk",
"language": "en",
"country": "GB",
"market": "en-GB",
"status": "active",
"articles_published": 34,
"created_at": "2026-06-02T11:04:19+00:00"
}
]
}
GET
/api/v1/articles
Stránka článků, nejnovější změna jako první, bez obsahu. Řazeno podle toho, kdy se který článek naposledy změnil, ne kdy byl napsán, a právě proto má updated_since smysl: článek, který už je zveřejněný, lze později upravit, když se do něj vloží odkaz nebo se z něj zase odebere.
Parametry dotazu
| Název |
Co dělá |
| site_id |
Jeden web, z /sites. id, které není ve Vašem účtu, vrací 404. |
| status |
Jedna z hodnot draft, qa, needs_repair, review, ready, published, failed. Cokoli jiného vrátí 422 místo prázdné stránky. "ready" je to, co build chce: napsáno, zkontrolováno a ještě nikde. |
| updated_since |
ISO 8601, například 2026-09-06T00:00:00Z. Zapamatujte si časové razítko posledního běhu a při dalším ho pošlete zpět. |
| per_page |
Až do 100. Výchozí hodnota je 25. |
| page |
Od 1. meta.has_more říká, zda si vyžádat další. |
Příklad
curl -G https://seonis.ai/api/v1/articles \
-H "Authorization: Bearer $SEONIS_API_KEY" \
-d site_id=5 \
-d status=ready \
-d updated_since=2026-09-01T00:00:00Z \
-d per_page=50
{
"articles": [
{
"id": 918,
"site_id": 5,
"language": "en",
"status": "ready",
"title": "How to choose a pepper grinder",
"slug": "how-to-choose-a-pepper-grinder",
"meta_title": "How to choose a pepper grinder | Peppervale",
"meta_description": "Burr or blade, ceramic or steel: what matters in a grinder.",
"meta_keywords": ["pepper grinder", "burr grinder"],
"tags": ["Kitchen"],
"excerpt": "A burr grinder gives an even grind; a blade one does not.",
"key_takeaways": ["A burr grinder gives an even grind; a blade one does not."],
"faq": [{ "question": "Ceramic or steel?", "answer": "Steel for pepper, ceramic for salt." }],
"hero_image": { "url": "https://seonis.ai/storage/images/5/918.jpg", "alt": "A pepper grinder" },
"infographic_url": null,
"word_count": 1812,
"published_url": null,
"published_at": null,
"updated_at": "2026-09-06T06:31:12+00:00",
"created_at": "2026-09-05T02:14:55+00:00",
"quality": { "seo_score": 88, "language_score": 96, "language_findings": [] }
}
],
"meta": { "page": 1, "per_page": 50, "total": 1, "last_page": 1, "has_more": false }
}
GET
/api/v1/articles/{id}
Jeden článek se vším, co seznam vynechává: content_markdown, content_html, FAQ jako schema.org JSON-LD připravené k vložení do stránky a všechny výměnné odkazy, které článek obsahuje.
Názvy polí jsou záměrně stejné jako ty, které posílá náš webhook. Pokud už máte přijímač webhooku, stejný parser přečte i toto.
Příklad
curl https://seonis.ai/api/v1/articles/918 \
-H "Authorization: Bearer $SEONIS_API_KEY"
{
"article": {
"id": 918,
"site_id": 5,
"language": "en",
"status": "ready",
"title": "How to choose a pepper grinder",
"slug": "how-to-choose-a-pepper-grinder",
"meta_description": "Burr or blade, ceramic or steel: what matters in a grinder.",
"content_markdown": "Grinders differ.\n\n## Burr or blade\n\nA **burr** grinder ...",
"content_html": "<p>Grinders differ.</p>\n<h2>Burr or blade</h2> ...",
"faq_schema": { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [] },
"hero_image": { "url": "https://seonis.ai/storage/images/5/918.jpg", "alt": "A pepper grinder" },
"word_count": 1812,
"published_url": null,
"updated_at": "2026-09-06T06:31:12+00:00",
"quality": { "seo_score": 88, "language_score": 96, "language_findings": [] },
"exchange_links": []
}
}
POST
/api/v1/articles/{id}/published
Zveřejníte článek; tady nám sdělíte adresu. Je to jediný endpoint, který něco mění.
Udělá přesně to, co doručení provedené námi: článek se označí jako published, započítá se do Vašeho měsíčního limitu, položka plánu se uzavře, všechny výměnné odkazy v něm dostanou adresu, na kterou ověřovač čekal, a Vaše Facebook Page dostane informaci, pokud jste ji připojili. Bez tohoto volání zůstane článek navždy ve stavu ready a nic z toho se nestane.
Příklad
curl -X POST https://seonis.ai/api/v1/articles/918/published \
-H "Authorization: Bearer $SEONIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://peppervale.co.uk/blog/how-to-choose-a-pepper-grinder"}'
Odpovědi
| 200 |
Zaznamenáno. Článek se vrátí se svým novým stavem, published_at a published_url. |
| 422 |
URL chybí nebo není úplná adresa http:// nebo https://. |
| 409 |
Článek není připravený k publikování nebo už je vedený jako publikovaný. Článek se vrátí spolu s odmítnutím, takže vidíte, který to je. |