GET
/api/v1/me
Den konto, nøglen tilhører, og nøglens eget navn og præfiks. Frem for alt nyttigt til at fortælle Dem, at nøglen i dette miljø er den nøgle, De tror, det er.
Eksempel
curl https://seonis.ai/api/v1/me \
-H "Authorization: Bearer $SEONIS_API_KEY"
GET
/api/v1/sites
Alle websites på kontoen. id er det, artikellisten filtrerer på, og domænet er der, så et build-script kan matche på noget, det allerede kender, frem for at bære rundt på et id.
Eksempel
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
En side med artikler, nyeste ændring først, uden selve teksten. Sorteret efter hvornår hver artikel sidst blev ændret frem for hvornår den blev skrevet, hvilket er det, der gør updated_since nyttig: en artikel, der allerede er udgivet, kan redigeres senere, når et link indsættes i den eller fjernes igen.
Forespørgselsparametre
| Navn |
Hvad det gør |
| site_id |
Ét website fra /sites. Et id, der ikke er på Deres konto, svarer med 404. |
| status |
En af draft, qa, needs_repair, review, ready, published, failed. Alt andet giver 422 frem for en tom side. "ready" er det, et build vil have: skrevet, kontrolleret og endnu ikke nogen steder. |
| updated_since |
ISO 8601, såsom 2026-09-06T00:00:00Z. Husk tidsstemplet fra Deres sidste kørsel, og send det med tilbage ved den næste. |
| per_page |
Op til 100. Standardværdien er 25. |
| page |
Fra 1. meta.has_more angiver, om De skal bede om en til. |
Eksempel
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}
Én artikel med alt det, listen udelader: content_markdown, content_html, FAQ'en som schema.org JSON-LD klar til at indsætte på siden og eventuelle udvekslingslinks, artiklen indeholder.
Feltnavnene er med vilje dem, vores webhook sender. Hvis De allerede har en webhook-modtager, kan den samme parser læse dette.
Eksempel
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
De gør artiklen live, og her fortæller De os adressen. Det er det ene endpoint, der ændrer noget.
Det gør præcis det samme som en levering, vi selv har foretaget: artiklen markeres som udgivet, Deres månedlige kvote tæller den med, planpunktet lukkes, eventuelle udvekslingslinks i den får den adresse, verifikatoren har ventet på, og Deres Facebook Page får besked, hvis De har forbundet en. Uden dette kald forbliver artiklen klar for evigt, og intet af det sker.
Eksempel
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"}'
Svar
| 200 |
Registreret. Artiklen kommer tilbage med sin nye status, published_at og published_url. |
| 422 |
Url'en mangler eller er ikke en fuld http://- eller https://-adresse. |
| 409 |
Artiklen er ikke klar til at blive udgivet eller er allerede registreret som udgivet. Artiklen returneres med afvisningen, så De kan se hvilken. |