Bijgewerkt 15 juni 2026
De Recruitsome API geeft je programmatische toegang tot je gepubliceerde vacaturedata. Zo kun je je carrièrewebsite, jobboards en HR-integraties rechtstreeks vanuit Recruitsome aansturen.
Base URL
Alle API-verzoeken gaan naar:
https://app.recruitsome.com/api/v1Authenticatie
De Recruitsome API maakt gebruik van Bearer-tokenauthenticatie. Voeg je API sleutel toe aan de Authorization-header van elk verzoek:
Authorization: Bearer YOUR_API_KEYAan de slag
1. Een API sleutel aanmaken
- Log in op je Recruitsome-account
- Ga naar Instellingen → API Sleutels
- Klik op API Sleutel Aanmaken (of Maak je eerste API Sleutel aan als je nog geen sleutels hebt)
- Kies een preset onder Quick Setup, of selecteer individuele Permissions
- Geef je sleutel een beschrijvende Sleutelnaam (bijv. "Carrièrewebsite" of "Indeed Plugin")
- Klik op API Sleutel Aanmaken
Je nieuwe sleutel verschijnt eenmalig in het Nieuwe API Sleutel Gegenereerd-venster. Kopieer de sleutel direct. Om veiligheidsredenen wordt deze niet opnieuw getoond.
Let op
Bewaar API sleutels veilig en stel ze nooit bloot in client-side code of openbare repositories.
API sleutel-permissies
Elke API sleutel is beperkt tot specifieke permissies, volgens het principe van minimale rechten. Selecteer bij het aanmaken van een sleutel alleen de permissies die je integratie nodig heeft:
| Scope | Toegang |
|---|---|
vacancies:read | Gepubliceerde vacatures en facetten bekijken |
vacancies:write | Canonieke vacature-URL's terugmelden aan Recruitsome |
applications:write | Sollicitaties indienen |
candidates:read | Kandidatenlijst en profielen bekijken |
candidates:write | Kandidaten aanmaken via cv-upload |
team:read | Teamleden bekijken |
locations:read | Kantoorlocaties bekijken |
articles:read | Gepubliceerde artikelen lezen |
Presets zijn beschikbaar voor veelvoorkomende toepassingen:
- Carrièrewebsite: vacatures (lezen + schrijven), sollicitaties, locaties, team, artikelen
- Chrome Plugin: kandidaten (lezen + schrijven), team
- Volledige Toegang: alle beschikbare permissies
Als je een endpoint aanroept waarvoor je API sleutel geen toegang heeft, ontvang je een 403 Forbidden-respons met de foutcode INSUFFICIENT_SCOPE.
2. Je eerste verzoek doen
Test je API sleutel met een eenvoudige health check:
curl -X GET https://app.recruitsome.com/api/v1/health \
-H "Authorization: Bearer YOUR_API_KEY"Een succesvolle respons ziet er als volgt uit:
{
"status": "authenticated",
"tenant": "your-tenant-id"
}Paginering
Alle lijst-endpoints retourneren gepagineerde resultaten. De API maakt gebruik van paginering op basis van paginanummers. Vraag een specifieke pagina op met de page-parameter en lees je positie uit het meta-object:
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
page | integer | 1 | Het paginanummer dat je wilt ophalen |
per_page | integer | 20 | Aantal items per pagina (max: 100) |
Structuur van het pagineringsantwoord
{
"data": [...],
"links": {
"first": "https://app.recruitsome.com/api/v1/vacancies?page=1",
"last": "https://app.recruitsome.com/api/v1/vacancies?page=5",
"prev": null,
"next": "https://app.recruitsome.com/api/v1/vacancies?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"path": "https://app.recruitsome.com/api/v1/vacancies",
"per_page": 20,
"to": 20,
"total": 95
}
}Voorbeeld: door pagina's itereren
let page = 1;
let hasMore = true;
while (hasMore) {
const response = await fetch(
`https://app.recruitsome.com/api/v1/vacancies?page=${page}&per_page=50`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
// Process the vacancies
processVacancies(data.data);
// Check if there are more pages
hasMore = data.meta.current_page < data.meta.last_page;
page++;
}Rate limiting
Drie write-endpoints hebben een rate limit omdat ze zwaardere verwerking triggeren:
| Endpoint | Limiet |
|---|---|
POST /vacancies/{slug}/canonical-url | 60 verzoeken per minuut |
POST /applications | 10 verzoeken per minuut |
POST /candidates | 10 verzoeken per minuut |
De read-endpoints hebben op dit moment geen vaste limiet per sleutel. Houd je aantal verzoeken wel beperkt en cache responses waar mogelijk. Er kunnen in de toekomst limieten worden ingesteld.
Endpoints met rate limiting bevatten de volgende headers in hun responses:
X-RateLimit-Limit: maximaal aantal verzoeken per minuutX-RateLimit-Remaining: resterende verzoeken in het huidige tijdvenster
Wanneer je de limiet overschrijdt, bevat de 429-response ook:
Retry-After: aantal seconden om te wachten voordat je het opnieuw probeertX-RateLimit-Reset: Unix-timestamp waarop de limiet wordt gereset
Responseformaten
Alle API-responses worden geretourneerd in JSON-formaat met UTF-8-codering.
Succesvolle response
{
"data": {
// Response data
}
}Foutresponse
{
"message": "Error description",
"errors": {
"field": ["Validation error message"]
}
}HTTP-statuscodes
| Code | Beschrijving |
|---|---|
| 200 | Succes |
| 201 | Created: sollicitatie aangemaakt |
| 202 | Accepted: cv van kandidaat geaccepteerd voor achtergrondverwerking |
| 400 | Bad Request: bedrijfsregel niet voldaan (bijvoorbeeld als een vacature geen sollicitaties meer accepteert) |
| 401 | Unauthorized: ongeldige of ontbrekende API sleutel |
| 403 | Forbidden: de API sleutel mist de vereiste scope |
| 404 | Not Found: de resource bestaat niet |
| 422 | Unprocessable Entity: validatiefouten |
| 429 | Too Many Requests: rate limit overschreden |
| 500 | Internal Server Error |
Volgende stappen
- Gepubliceerde vacatures ophalen - Leer hoe je vacatureoverzichten ophaalt en filtert
- Vacaturedetails ophalen - Bekijk volledige vacature-informatie
- API Reference - Volledige documentatie van alle API endpoints