Start gratis →
API v1

API Documentatie

Integreer WervingAI in je eigen applicatie via onze REST API. Alle endpoints zijn beveiligd met API keys.

Authenticatie

Alle API requests vereisen een API key in de Authorization header. Je API key vind je in je dashboard onder Instellingen → API.

Houd je API key geheim. Nooit publiceren in client-side code of publieke repositories.

curl
curl https://wervingai.nl/api/v1/vacatures \
  -H "Authorization: Bearer wa_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json"

API key formaat

Live keys beginnen met wa_live_, test keys met wa_test_.

Endpoints

MethodeEndpointBeschrijving
GET/v1/vacaturesLijst van alle vacatures
POST/v1/vacaturesNieuwe vacature aanmaken
GET/v1/vacatures/:idVacature details ophalen
PATCH/v1/vacatures/:idVacature bijwerken
DELETE/v1/vacatures/:idVacature verwijderen
GET/v1/kandidatenLijst van kandidaten
GET/v1/kandidaten/:idKandidaat details
PATCH/v1/kandidaten/:idKandidaatstatus bijwerken
GET/v1/campagnesOverzicht Meta Ads campagnes
POST/v1/campagnesCampagne aanmaken & publiceren

Webhook events

Configureer een webhook URL in je dashboard om realtime notificaties te ontvangen bij events. WervingAI stuurt een POST request naar jouw URL met een JSON body.

kandidaat.aangemeldNieuwe kandidaat heeft gesolliciteerd
kandidaat.status_gewijzigdKandidaatstatus is bijgewerkt
campagne.goedgekeurdMeta Ads campagne is goedgekeurd
campagne.gestoptCampagne is gestopt of verlopen
vacature.gepubliceerdVacature is gepubliceerd
json (webhook payload)
{
  "event": "kandidaat.aangemeld",
  "timestamp": "2026-03-23T10:30:00Z",
  "data": {
    "kandidaat_id": "uuid-...",
    "naam": "Jan de Vries",
    "vacature_id": "uuid-...",
    "ai_score": 84
  }
}

Rate limiting

API requests zijn gelimiteerd per API key om misbruik te voorkomen.

PlanRequests/minuutRequests/dag
Starter601.000
Essential1205.000
Growth300Onbeperkt

Bij overschrijding ontvang je een 429 Too Many Requests response. De headers X-RateLimit-Remaining en X-RateLimit-Reset geven je het resterende limiet en de reset tijd.

Code voorbeelden

Vacature aanmaken — JavaScript

javascript
const response = await fetch('https://wervingai.nl/api/v1/vacatures', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer wa_live_xxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    titel: 'Frontend Developer',
    sector: 'IT & Software',
    locatie: 'Utrecht',
    dienstverband: 'fulltime',
    omschrijving: 'We zoeken een ervaren frontend developer...',
  }),
})

const vacature = await response.json()
console.log('Vacature aangemaakt:', vacature.id)

Kandidaten ophalen — Python

python
import requests

headers = {
    'Authorization': 'Bearer wa_live_xxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
}

# Haal alle kandidaten op voor een specifieke vacature
response = requests.get(
    'https://wervingai.nl/api/v1/kandidaten',
    headers=headers,
    params={'vacature_id': 'uuid-...', 'min_score': 70}
)

kandidaten = response.json()
for k in kandidaten['data']:
    print(f"{k['naam']} — AI score: {k['ai_score']}")

Foutafhandeling

WervingAI gebruikt standaard HTTP statuscodes. Fouten bevatten altijd een error en message veld.

json (fout response)
{
  "error": "validation_error",
  "message": "Het veld 'titel' is verplicht",
  "status": 400
}