API-referentie
Volledige referentie voor de AutoSEO REST API. Alle eindpunten vereisen een geldig Bearer-token tenzij anders vermeld. Basis-URL: https://panel.seoauto.ai
Overzicht
De AutoSEO PSEO Automation API stelt u in staat om programmatisch websites (PSEO's) te maken, AI-gebaseerde contentgeneratie te activeren, generatietaken bij te houden en uw contentpipeline te beheren. Alle eindpunten bevinden zich onder het padprefix /pseo-endpoints, gemonteerd op de Directus-backend.
Basis-URL
https://panel.seoauto.ai
Authenticatie
Bearer Token (JWT)
Formaat
JSON (REST)
Authenticatie
Alle API-aanroepen (behalve de gezondheidscontrole) vereisen een Directus-gebruikerstoken dat wordt doorgegeven als Bearer-header. Verkrijg een kortlevend toegangstoken door in te loggen, of gebruik een langlevend statisch token dat via uw dashboard is gegenereerd.
Optie 1 — Inloggen (kortlevend JWT)
https://panel.seoauto.ai/auth/login{
"email": "you@example.com",
"password": "••••••••"
}{
"data": {
"access_token": "eyJhbGciO...",
"expires": 3600000,
"refresh_token": "..."
}
}Optie 2 — Statisch token (dashboard)
Ga naar Dashboard → API-sleutel en genereer een permanent statisch token. Gebruik het direct als Bearer-waarde — geen vervaldatum om bij te houden.
Het token gebruiken
Authorization: Bearer <your_access_token>Gezondheidscontrole
https://panel.seoauto.ai/pseo-endpoints/Geeft de extensiestatus en een lijst met beschikbare eindpunten terug. Geen authenticatie vereist.
{
"status": "ok",
"extension": "pseo-automation",
"version": "1.0.0",
"timestamp": "2026-03-10T12:00:00.000Z",
"endpoints": [
"GET /",
"POST /pseo",
"POST /trigger/on-demand-generation",
"POST /trigger/bulk-generation",
"GET /generations/:id",
"GET /generations?pseo_id=X",
"POST /generate/main-json",
"GET /fetch-sitemap?pseo_id=X"
]
}Website maken
https://panel.seoauto.ai/pseo-endpoints/pseoMaakt een nieuwe PSEO-vermelding (website) aan voor de geverifieerde gebruiker. Het PSEO-record is de hoofdentiteit die alle contentgeneratie-instellingen voor een specifieke website bevat.
Verzoektekst
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| website_url | string | vereist | Volledige URL van de doelwebsite (bijv. https://example.com) |
| master_prompt | string | vereist | Instructies die de AI begeleiden bij het genereren van content voor deze website |
| website_software | string | optioneel | CMS/platform-identificator. Standaard "wordpress" |
{
"website_url": "https://example.com",
"website_software": "wordpress",
"master_prompt": "This website sells handmade leather bags targeting fashion-conscious adults in the US. Write SEO-friendly product content in English using a professional yet warm tone."
}{
"success": true,
"message": "PSEO created successfully",
"data": {
"id": 42,
"website_url": "https://example.com",
"website_software": "wordpress",
"directus_user_id": "uuid-...",
"post_counts_total": 0
},
"timestamp": "2026-03-10T12:00:00.000Z"
}Generatie starten (Test)
https://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generationStart een on-demand AI-contentgeneratietaak voor een PSEO. Beperkt tot 1 pagina (testmodus). De taak wordt asynchroon op de achtergrond uitgevoerd. Tokens worden onmiddellijk afgetrokken op de token_per_page-snelheid.
Testmodus — max. 1 pagina
On-demand generatie is beperkt tot 1 pagina en is bedoeld om je configuratie te testen. Gebruik voor meerdere pagina's het Bulk Generation-eindpunt met Claude Batch API.
Verzoektekst
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| pseo_id | number | vereist | ID van de PSEO (website) waarvoor content moet worden gegenereerd |
| post_count | number | vereist | Aantal te genereren pagina's. Moet 1 zijn (testlimiet) |
{
"pseo_id": 42,
"post_count": 1
}{
"success": true,
"message": "Generation started in background",
"generation_id": 7,
"status": "pending",
"timestamp": "2026-03-10T12:00:00.000Z"
}Limiet voor gelijktijdige generatie
Per PSEO is slechts één actieve generatie tegelijk toegestaan. Als er al een taak bestaat met de status in behandeling of actief, geeft het verzoek 409 Conflict terug.
Bulkgeneratie
https://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generationStart een bulk AI-contentgeneratietaak via Claude Batch API. Ondersteunt elk aantal pagina's. Tokens worden afgetrokken op de token_per_batch_page-snelheid.
Verzoektekst
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| pseo_id | number | vereist | ID van de PSEO (website) waarvoor content moet worden gegenereerd |
| post_count | number | vereist | Aantal te genereren pagina's (positief geheel getal, geen bovengrens) |
{
"pseo_id": 42,
"post_count": 100
}{
"success": true,
"message": "Bulk generation started in background",
"generation_id": 12,
"status": "pending",
"timestamp": "2026-03-10T12:00:00.000Z"
}Limiet voor gelijktijdige generatie
Per PSEO is slechts één actieve generatie tegelijk toegestaan. Als er al een taak bestaat met de status in behandeling of actief, geeft het verzoek 409 Conflict terug.
Generatie ophalen
https://panel.seoauto.ai/pseo-endpoints/generations/:idGeeft het volledige statusrecord terug voor één generatietaak. Poll dit eindpunt nadat u een generatie hebt gestart om de voortgang bij te houden.
Padparameters
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| id | number | vereist | De generation_id die is geretourneerd door het eindpunt voor het starten van de generatie |
{
"success": true,
"data": {
"id": 7,
"pseo_id": 42,
"status": "running", // pending | running | completed | failed
"requested_count": 10,
"created_count": 4,
"failed_count": 0,
"failed_routes": [],
"date_created": "2026-03-10T12:00:00.000Z",
"date_updated": "2026-03-10T12:01:30.000Z",
"date_completed": null
},
"timestamp": "2026-03-10T12:01:35.000Z"
}| Status | Betekenis |
|---|---|
| pending | Taak in wachtrij, nog niet gestart |
| running | AI genereert actief pagina's |
| completed | Alle pagina's succesvol gegenereerd |
| failed | Taak gestopt vanwege een kritieke fout; controleer failed_routes |
Generaties weergeven
https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_idGeeft een lijst terug van de 50 meest recente generatietaken voor een bepaalde PSEO, gesorteerd van nieuwste naar oudste. Geeft alleen taken van de geverifieerde gebruiker terug.
Queryparameters
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| pseo_id | number | vereist | Het PSEO (website) ID waarvoor generaties worden opgelijst |
GET https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=42
Authorization: Bearer <token>{
"success": true,
"data": [
{
"id": 8,
"pseo_id": 42,
"status": "completed",
"requested_count": 5,
"created_count": 5,
"failed_count": 0,
"failed_routes": [],
"date_created": "2026-03-10T13:00:00.000Z",
"date_completed": "2026-03-10T13:04:21.000Z"
},
{ "id": 7, "status": "completed", "..." : "..." }
],
"timestamp": "2026-03-10T14:00:00.000Z"
}Sitemap genereren
https://panel.seoauto.ai/pseo-endpoints/generate/main-jsonGebruikt AI om een gestructureerd contentplan (main_json) voor de PSEO te genereren — in wezen een lijst van paginapaden, titels en metadata die als blauwdruk voor contentgeneratie zal worden gebruikt. Tokens worden afgetrokken op de token_per_main_json-snelheid.
Verzoektekst
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| pseo_id | number | vereist | ID van de doel-PSEO |
| language_code | string | vereist | Taal voor het contentplan, bijv. en-US, tr-TR, de-DE |
| description | string | vereist | Bedrijfsbeschrijving (150–1000 tekens). Moet sector, diensten, doelgroep en doelen behandelen. |
{
"pseo_id": 42,
"language_code": "en-US",
"description": "We sell premium handmade leather goods including bags, wallets, and belts targeting fashion-conscious adults aged 25–45 in the United States. Our USP is ethically sourced full-grain leather with lifetime repair guarantee."
}{
"success": true,
"message": "main_json generated and saved successfully",
"data": {
"main_json": {
"pages": [
{ "route": "/leather-bags", "title": "Premium Leather Bags", "priority": 1 },
{ "route": "/leather-wallets", "title": "Handmade Leather Wallets", "priority": 2 }
]
},
"total_pages": 28
},
"timestamp": "2026-03-10T12:00:00.000Z"
}Limiet voor gelijktijdige generatie
Per gebruiker kan slechts één main_json-generatie tegelijk worden uitgevoerd. Gelijktijdige verzoeken geven 409 Conflict terug.
Sitemap ophalen
https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_idHaalt de sitemap op en analyseert deze van de website die aan een PSEO is gekoppeld. Probeert automatisch meerdere veelvoorkomende sitemappaden (inclusief sitemapindexen). Geeft een platte lijst terug van alle gevonden pagina-URL's. Handig voor het importeren van de URL-structuur van een bestaande website.
Queryparameters
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
| pseo_id | number | vereist | PSEO ID — de sitemap wordt opgehaald van de website_url die in dit record is opgeslagen |
Geprobeerde sitemappaden (op volgorde): /sitemap.xml → /sitemap_index.xml → /wp-sitemap.xml → /sitemap
GET https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=42
Authorization: Bearer <token>{
"success": true,
"urls": [
"https://example.com/",
"https://example.com/leather-bags",
"https://example.com/leather-wallets",
"https://example.com/about"
]
}Geeft een lege urls-array terug als er geen sitemap wordt gevonden of de site onbereikbaar is. Gooit geen fout.
Foutcodes
Alle foutreacties volgen dezelfde structuur:
{
"success": false,
"error": "Human-readable error message",
"timestamp": "2026-03-10T12:00:00.000Z"
}| Status | Betekenis |
|---|---|
| 400Bad Request | Ontbrekende of ongeldige verzoekparameters |
| 401Unauthorized | Ontbrekend of ongeldig Bearer-token |
| 402Payment Required | Onvoldoende tokensaldo voor de gevraagde bewerking |
| 403Forbidden | De geverifieerde gebruiker is niet de eigenaar van de gevraagde resource |
| 404Not Found | PSEO- of generatierecord bestaat niet |
| 409Conflict | Een gelijktijdige generatietaak is al actief |
| 500Internal Server Error | Onverwachte serverfout; controleer extensielogboeken |
