Bijgewerkt 22 april 2026
/api/v1/candidates
curl -X GET \
"https://app.recruitsome.com/api/v1/candidates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://app.recruitsome.com/api/v1/candidates', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json',
},
});
const data = await response.json();
console.log(data);
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->get('https://app.recruitsome.com/api/v1/candidates');
$data = $response->json();
Kandidaten ophalen
Haal een gepagineerde lijst op van kandidaten die gekoppeld zijn aan een specifieke gebruiker. Kandidaten zijn afgebakend tot de repository van de gebruiker — alleen kandidaten die aan de betreffende gebruiker zijn gekoppeld, worden geretourneerd.
Endpoint
GET /api/v1/candidates
Query Parameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
user_id | integer | - | Verplicht. Het tenant-gebruikers-ID waarvan de kandidatenrepository bevraagd moet worden |
email | string | - | Filter op exact overeenkomend e-mailadres |
search | string | - | Zoek in voornaam, achternaam en e-mailadres (gedeeltelijke overeenkomst) |
status | string | - | Filter op kandidaatstatus (zie Statuswaarden hieronder) |
sort | string | created_at | Sorteerveld: created_at, first_name, last_name, email |
sort_direction | string | desc | Sorteerrichting: asc of desc |
page | integer | 1 | Paginanummer voor paginering |
per_page | integer | 20 | Items per pagina (max: 100) |
Statuswaarden
| Waarde | Beschrijving |
|---|---|
potential | Nieuwe kandidaat, nog niet benaderd |
waiting_for_intake | Benaderd en geïnteresseerd, wacht op intake |
intake_scheduled | Intakegesprek is ingepland |
active_mediation | Wordt actief voorgesteld in procedures |
latent_mediation | Beschikbaar maar wordt niet actief voorgesteld |
upcoming_employee | Aanbod geaccepteerd, start binnenkort |
employee | Momenteel in dienst |
ex_employee | Voormalig medewerker |
do_not_contact | Mag niet benaderd worden |
Responsevelden
| Veld | Type | Beschrijving | |
|---|---|---|---|
id | integer | Uniek kandidaat-ID | |
slug | string | URL-vriendelijke identificator | |
first_name | string | Voornaam | |
middle_name | string\ | null | Tussenvoegsel of tweede naam |
last_name | string | Achternaam | |
full_name | string | Berekende volledige naam | |
email | string | E-mailadres | |
mobile_phone | string\ | null | Opgemaakt mobiel telefoonnummer |
fixed_phone | string\ | null | Opgemaakt vast telefoonnummer |
status | object | Huidige kandidaatstatus | |
locality | string\ | null | Plaats/woonplaats |
country_code | string\ | null | ISO 3166-1 alpha-2 landcode |
linkedin_url | string\ | null | LinkedIn-profiel-URL |
profile_completeness | integer\ | null | Percentage profielvolledigheid (0-100) |
avatar | object | URL's van profielafbeeldingen | |
created_at | string | ISO 8601 aanmaakdatum | |
updated_at | string | ISO 8601 datum laatste wijziging |
Objectstructuren
Status-object
{
"value": "potential",
"label": "Potential Candidate"
}
Avatar-object
{
"small": "https://...",
"medium": "https://...",
"large": "https://..."
}
Avatar-URL's kunnen null zijn als de kandidaat geen profielfoto heeft.
Paginering
De respons bevat standaard pagineringsmetadata:
{
"data": [...],
"links": {
"first": "https://app.recruitsome.com/api/v1/candidates?page=1",
"last": "https://app.recruitsome.com/api/v1/candidates?page=3",
"prev": null,
"next": "https://app.recruitsome.com/api/v1/candidates?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"path": "https://app.recruitsome.com/api/v1/candidates",
"per_page": 20,
"to": 20,
"total": 52
}
}
Voorbeeldverzoek
Basisverzoek
``bash cURL
curl -X GET "https://app.recruitsome.com/api/v1/candidates?user_id=1" \
-H "Authorization: Bearer YOUR_API_TOKEN"
javascript JavaScript
const response = await fetch(
'https://app.recruitsome.com/api/v1/candidates?user_id=1',
{
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);
const data = await response.json();
console.log(data);
python Python
import requests
response = requests.get(
'https://app.recruitsome.com/api/v1/candidates',
params={'user_id': 1},
headers={'Authorization': 'Bearer YOUR_API_TOKEN'}
)
data = response.json()
print(data)
Kandidaat zoeken op e-mailadres
bash cURL
curl -X GET "https://app.recruitsome.com/api/v1/[email protected]" \
-H "Authorization: Bearer YOUR_API_TOKEN"
javascript JavaScript
const response = await fetch(
'https://app.recruitsome.com/api/v1/[email protected]',
{
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);
python Python
response = requests.get(
'https://app.recruitsome.com/api/v1/candidates',
params={
'user_id': 1,
'email': '[email protected]'
},
headers={'Authorization': 'Bearer YOUR_API_TOKEN'}
)
Met filters
bash
curl -X GET "https://app.recruitsome.com/api/v1/candidates?user_id=1&search=developer&status=active_mediation&sort=last_name&sort_direction=asc" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Voorbeeldrespons
json
{
"data": [
{
"id": 42,
"slug": "john-doe-amsterdam",
"first_name": "John",
"middle_name": null,
"last_name": "Doe",
"full_name": "John Doe",
"email": "[email protected]",
"mobile_phone": "+31 6 12345678",
"fixed_phone": null,
"status": {
"value": "potential",
"label": "Potential Candidate"
},
"locality": "Amsterdam",
"country_code": "NL",
"linkedin_url": "https://linkedin.com/in/johndoe",
"profile_completeness": 75,
"avatar": {
"small": "https://...",
"medium": "https://...",
"large": "https://..."
},
"created_at": "2024-01-15T09:00:00+00:00",
"updated_at": "2024-01-20T14:30:00+00:00"
}
],
"links": {
"first": "https://app.recruitsome.com/api/v1/candidates?page=1",
"last": "https://app.recruitsome.com/api/v1/candidates?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "https://app.recruitsome.com/api/v1/candidates",
"per_page": 20,
"to": 1,
"total": 1
}
}
`
Opmerkingen
- De user_id
parameter is verplicht — kandidaten zijn gekoppeld aan de repository van een specifieke gebruiker - Alleen kandidaten die aan de opgegeven gebruiker zijn gekoppeld, worden geretourneerd
- Soft-deleted kandidaten worden automatisch uitgesloten
- Het email
filter zoekt op exacte overeenkomst; gebruiksearchvoor gedeeltelijke overeenkomsten - De search
parameter voert een hoofdletterongevoelige gedeeltelijke zoekopdracht uit op voornaam, achternaam en e-mailadres - Telefoonnummers worden geretourneerd in hun opgemaakte weergaveformaat (niet als onbewerkt E.164)
- Avatar-URL's kunnen null` zijn als de kandidaat geen profielfoto heeft geüpload