GET
/api/v1/me
Het account waartoe de sleutel behoort, en de eigen naam en prefix van de sleutel. Vooral nuttig voor één ding: u laten weten dat de sleutel in deze omgeving de sleutel is die u denkt dat het is.
Voorbeeld
curl https://seonis.ai/api/v1/me \
-H "Authorization: Bearer $SEONIS_API_KEY"
GET
/api/v1/sites
Elke site in het account. Op de id filtert de artikellijst, en het domein staat erbij zodat een buildscript kan matchen op iets wat het al kent in plaats van een id mee te dragen.
Voorbeeld
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
Een pagina met artikelen, nieuwste wijziging eerst, zonder de tekst. Gesorteerd op wanneer elk artikel voor het laatst is gewijzigd in plaats van wanneer het is geschreven, en dat maakt updated_since nuttig: een artikel dat al live staat kan later nog worden bewerkt, wanneer er een link in wordt gezet of weer uit wordt gehaald.
Queryparameters
| Naam |
Wat het doet |
| site_id |
Eén site, uit /sites. Een id die niet in uw account staat geeft 404. |
| status |
Een van draft, qa, needs_repair, review, ready, published, failed. Alles anders geeft een 422 in plaats van een lege pagina. "ready" is wat een build wil: geschreven, gecontroleerd en nog nergens live. |
| updated_since |
ISO 8601, zoals 2026-09-06T00:00:00Z. Bewaar de tijdstempel van uw laatste run en geef die bij de volgende weer mee. |
| per_page |
Tot 100. De standaard is 25. |
| page |
Vanaf 1. meta.has_more geeft aan of u nog een keer moet opvragen. |
Voorbeeld
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}
Eén artikel, met alles wat de lijst weglaat: content_markdown, content_html, de FAQ als schema.org JSON-LD, klaar om in de pagina te zetten, en eventuele exchange-links die het artikel bevat.
De veldnamen zijn bewust dezelfde als die onze webhook verstuurt. Als u al een webhook-ontvanger heeft, leest dezelfde parser dit.
Voorbeeld
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
U zet het artikel live; hier geeft u ons het adres door. Dit is het enige endpoint dat iets verandert.
Het doet precies wat een levering die wij zelf hebben gedaan ook doet: het artikel wordt als gepubliceerd gemarkeerd, het telt mee voor uw maandelijkse tegoed, het planitem wordt afgesloten, eventuele exchange-links erin krijgen het adres waarop de verifier heeft gewacht, en uw Facebook Page krijgt bericht als u er een hebt gekoppeld. Zonder deze aanroep blijft het artikel voor altijd klaarstaan en gebeurt niets daarvan.
Voorbeeld
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"}'
Antwoorden
| 200 |
Vastgelegd. Het artikel komt terug met de nieuwe status, published_at en published_url. |
| 422 |
De url ontbreekt of is geen volledig http://- of https://-adres. |
| 409 |
Het artikel is niet klaar om te worden gepubliceerd, of staat al als gepubliceerd geregistreerd. Het artikel komt met de weigering terug, zodat u kunt zien welke van de twee het is. |