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)

POSThttps://panel.seoauto.ai/auth/login
json — request body
{
  "email": "you@example.com",
  "password": "••••••••"
}
json — response
{
  "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

http header
Authorization: Bearer <your_access_token>

Gezondheidscontrole

GEThttps://panel.seoauto.ai/pseo-endpoints/

Geeft de extensiestatus en een lijst met beschikbare eindpunten terug. Geen authenticatie vereist.

json — response 200
{
  "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

POSThttps://panel.seoauto.ai/pseo-endpoints/pseo

Maakt 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

VeldTypeVereistBeschrijving
website_urlstringvereistVolledige URL van de doelwebsite (bijv. https://example.com)
master_promptstringvereistInstructies die de AI begeleiden bij het genereren van content voor deze website
website_softwarestringoptioneelCMS/platform-identificator. Standaard "wordpress"
json — request body
{
  "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."
}
json — response 201
{
  "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)

POSThttps://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generation

Start 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

VeldTypeVereistBeschrijving
pseo_idnumbervereistID van de PSEO (website) waarvoor content moet worden gegenereerd
post_countnumbervereistAantal te genereren pagina's. Moet 1 zijn (testlimiet)
json — request body
{
  "pseo_id": 42,
  "post_count": 1
}
json — response 202
{
  "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

POSThttps://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generation

Start een bulk AI-contentgeneratietaak via Claude Batch API. Ondersteunt elk aantal pagina's. Tokens worden afgetrokken op de token_per_batch_page-snelheid.

Verzoektekst

VeldTypeVereistBeschrijving
pseo_idnumbervereistID van de PSEO (website) waarvoor content moet worden gegenereerd
post_countnumbervereistAantal te genereren pagina's (positief geheel getal, geen bovengrens)
json — request body
{
  "pseo_id": 42,
  "post_count": 100
}
json — response 202
{
  "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

GEThttps://panel.seoauto.ai/pseo-endpoints/generations/:id

Geeft het volledige statusrecord terug voor één generatietaak. Poll dit eindpunt nadat u een generatie hebt gestart om de voortgang bij te houden.

Padparameters

VeldTypeVereistBeschrijving
idnumbervereistDe generation_id die is geretourneerd door het eindpunt voor het starten van de generatie
json — response 200
{
  "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"
}
StatusBetekenis
pendingTaak in wachtrij, nog niet gestart
runningAI genereert actief pagina's
completedAlle pagina's succesvol gegenereerd
failedTaak gestopt vanwege een kritieke fout; controleer failed_routes

Generaties weergeven

GEThttps://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_id

Geeft 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

VeldTypeVereistBeschrijving
pseo_idnumbervereistHet PSEO (website) ID waarvoor generaties worden opgelijst
http — example request
GET https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=42
Authorization: Bearer <token>
json — response 200
{
  "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

POSThttps://panel.seoauto.ai/pseo-endpoints/generate/main-json

Gebruikt 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

VeldTypeVereistBeschrijving
pseo_idnumbervereistID van de doel-PSEO
language_codestringvereistTaal voor het contentplan, bijv. en-US, tr-TR, de-DE
descriptionstringvereistBedrijfsbeschrijving (150–1000 tekens). Moet sector, diensten, doelgroep en doelen behandelen.
json — request body
{
  "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."
}
json — response 200
{
  "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

GEThttps://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_id

Haalt 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

VeldTypeVereistBeschrijving
pseo_idnumbervereistPSEO 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

http — example request
GET https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=42
Authorization: Bearer <token>
json — response 200
{
  "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:

json — error shape
{
  "success": false,
  "error": "Human-readable error message",
  "timestamp": "2026-03-10T12:00:00.000Z"
}
StatusBetekenis
400Bad RequestOntbrekende of ongeldige verzoekparameters
401UnauthorizedOntbrekend of ongeldig Bearer-token
402Payment RequiredOnvoldoende tokensaldo voor de gevraagde bewerking
403ForbiddenDe geverifieerde gebruiker is niet de eigenaar van de gevraagde resource
404Not FoundPSEO- of generatierecord bestaat niet
409ConflictEen gelijktijdige generatietaak is al actief
500Internal Server ErrorOnverwachte serverfout; controleer extensielogboeken