Partner-API
Voor uitzendbureaus die als partner vacatures aanleveren. Wij publiceren ze in onze eigen woorden op aixtalent.nl, werven, en bieden kandidaten op hun verzoek of met hun akkoord aan u aan. Nog geen partner? Begin op Voor uitzendbureaus.
Toegang
U krijgt een sleutel van AIX Talent. Hij begint met aixpt_, wij tonen hem een keer bij het aanmaken en bewaren alleen een hash. Stuur hem mee in elke aanroep. Alle verzoeken gaan over HTTPS met JSON; de body is maximaal 64 kb.
Authorization: Bearer aixpt_<uw sleutel>
Content-Type: application/json Basis-URL: https://api.aixforge.nl/api/partners
Endpoints
| Methode | Pad | Doel |
|---|---|---|
POST | /vacancies | Vacature aanleveren of bijwerken (upsert op external_id). |
GET | /vacancies | Lijst van uw vacatures met status. |
GET | /vacancies/:id | Detail: uw brondata, onze versie en de publieke URL zodra de vacature online staat. |
DELETE | /vacancies/:id | Intrekken. Status wordt withdrawn en de vacature is direct gesloten: geen sollicitaties meer, niet meer in lijsten, feeds en sitemap. Idempotent. |
GET | /applications | Sollicitaties die wij aan u hebben voorgedragen, alleen de gedeelde velden. |
POST | /applications/:id/uitkomst | Uitkomst melden: aangenomen, afgewezen of ingetrokken. |
Vacature aanleveren
POST /vacancies. Wij zoeken op external_id: bestaat hij nog niet, dan maken wij de vacature aan (actie: nieuw, 201). Bestaat hij en is de inhoud gelijk, dan gebeurt er niets (actie: ongewijzigd, 200). Is de inhoud gewijzigd, dan ontstaat een nieuwe versie met status received (actie: nieuwe_versie, 201); de gepubliceerde versie blijft online tot de nieuwe is goedgekeurd.
| Veld | Type | Toelichting |
|---|---|---|
external_id verplicht | tekst, max 80 | Uw eigen kenmerk. Hierop zoeken wij bij een volgende aanlevering. |
titel verplicht | tekst, max 120 | Functietitel. |
omschrijving verplicht | tekst, max 8000 | Werkzaamheden en context. Wij herschrijven dit in onze eigen woorden. |
locatie verplicht | tekst, max 80 | Plaats. |
regio | tekst, max 60 | Provincie of regio. |
uren_min, uren_max | geheel getal, 1 tot 60 | Uren per week. uren_min mag niet boven uren_max liggen. |
dienstverband | fulltime, parttime of beide | |
salaris_min, salaris_max | getal, 0 tot 100000 | Bruto. salaris_min mag niet boven salaris_max liggen. |
salaris_periode | uur of maand | Periode waarop salaris_min en salaris_max slaan. |
ploegen | lijst van teksten, max 10 | Bijvoorbeeld dagdienst, 2-ploegen. |
eisen | lijst van teksten, max 20 | |
certificaten | lijst van teksten, max 20 | |
startdatum | JJJJ-MM-DD, direct of in overleg | |
url | tekst, https, max 300 | Uw eigen vacaturepagina. Wordt niet gepubliceerd. |
{
"external_id": "VAC-2026-0142",
"titel": "Heftruckchauffeur",
"omschrijving": "Laden en lossen van vrachtwagens, pallets wegzetten in het stellingmagazijn, controle van inkomende goederen.",
"locatie": "Waddinxveen",
"regio": "Zuid-Holland",
"uren_min": 32,
"uren_max": 40,
"dienstverband": "fulltime",
"salaris_min": 15.5,
"salaris_max": 17,
"salaris_periode": "uur",
"ploegen": [
"dagdienst",
"2-ploegen"
],
"eisen": [
"Minimaal 1 jaar ervaring op een reachtruck",
"Nederlands of Engels op werkniveau"
],
"certificaten": [
"Heftruckcertificaat"
],
"startdatum": "2026-10-01",
"url": "https://www.voorbeeld-bureau.nl/vacatures/vac-2026-0142"
} Antwoord:
{
"actie": "nieuw",
"id": 42,
"external_id": "VAC-2026-0142",
"versie": 1,
"status": "received"
} GET /vacancies/:id geeft dezelfde velden plus bron (uw payload), onze_versie (de herschreven publieke velden en het functieniveau) en publieke_url, die null blijft tot de vacature gepubliceerd is. DELETE /vacancies/:id antwoordt met { id, status: "withdrawn", al_ingetrokken, pagina_offline }; een tweede keer intrekken geeft 200 met al_ingetrokken: true. pagina_offline is true als uw vacature door dit verzoek van online naar gesloten ging. Gesloten betekent: geen formulier en geen sollicitaties meer, niet in lijsten, feeds en sitemap. De url zelf blijft een pagina met de melding dat de vacature gesloten is (noindex), geen foutpagina.
Statusflow
received → rewritten → in_review → published → expired
received- Ontvangen. Wij herschrijven de tekst in onze eigen woorden; de feiten blijven gelijk.
rewritten- Herschreven en programmatisch gecontroleerd op locatie, uren, ploegen, loon, certificaten en startdatum.
in_review- Wacht op beoordeling door AIX Talent. Niets gaat live zonder die beoordeling.
published- Online op aixtalent.nl. Het detail-endpoint geeft de publieke URL.
expired- Verlopen. Standaard 30 dagen na publicatie; verlengen kan door dezelfde vacature opnieuw aan te leveren.
withdrawn- Door u ingetrokken via DELETE. De vacature is gesloten: solliciteren kan niet meer en hij staat niet meer in lijsten, feeds en sitemap. De url blijft bestaan en toont titel, plaats en de melding dat de vacature gesloten is, met noindex, zodat een oude link niet op een foutpagina uitkomt.
Sollicitaties
GET /applications geeft alleen sollicitaties die wij op verzoek of met akkoord van de kandidaat aan u hebben aangeboden en waarvoor de kandidaat het delen met uw bureau heeft gevraagd. Velden: id, external_id, vacature_slug, naam, email, telefoon, woonplaats, beschikbaar_vanaf, voorgedragen_at, verzoek_op, uitkomst, uitkomst_datum en cv_beschikbaar (ja of nee; het cv zelf komt niet via de API). Kandidaten die nog niet zijn aangeboden of zijn afgewezen, ziet u niet. Na een gemelde uitkomst blijft de rij zichtbaar, met de uitkomst erbij.
Meld de uitkomst met POST /applications/:id/uitkomst. Toegestaan zijn aangenomen, afgewezen en ingetrokken; datum is optioneel. Het antwoord bevat id, uitkomst, status, uitkomst_datum en uitkomst_at.
{
"uitkomst": "aangenomen",
"datum": "2026-10-06"
} Foutcodes
Elk foutantwoord heeft error (leesbare tekst) en code; bij validatiefouten ook veld.
| HTTP | code | Betekenis |
|---|---|---|
400 | validatie, json_ongeldig | Payload ongeldig: verplicht veld ontbreekt, verkeerd type, waarde buiten bereik, of een veld dat wij niet kennen. Onbekende velden worden geweigerd, niet genegeerd. Bij validatie staat het veld in `veld`. |
401 | geen_sleutel, sleutel_ongeldig | Geen of ongeldige sleutel in de Authorization-header. |
403 | partner_gepauzeerd, niet_toegelaten | Sleutel geldig, maar de partner staat op pauze of is niet toegelaten. |
404 | niet_gevonden | Vacature, sollicitatie of pad bestaat niet. Ook het antwoord op een id dat niet van u is: het bestaan lekt niet. |
409 | status, overgang | Conflict met de huidige status, bijvoorbeeld een uitkomst melden op een sollicitatie die niet meer op voorgedragen staat. |
413 | body_te_groot | Body groter dan 64 kb. |
429 | rate_limit | Te veel verzoeken. Wacht het aantal seconden in de Retry-After-header af. |
Spelregels
- U ziet uitsluitend uw eigen vacatures en sollicitaties. Een id van een ander geeft 404.
- Elk verzoek wordt gelogd met methode, pad, status en duur. Geen inhoud, geen persoonsgegevens.
- Limiet: 120 verzoeken per sleutel per minuut, en 30 per IP-adres per minuut zonder geldige sleutel. De headers
RateLimit-LimitenRateLimit-Remainingtonen de stand; bij429wacht u deRetry-Afteraf. - AIX Talent is arbeidsbemiddelaar in de zin van de Waadi. De kandidaat sluit zijn arbeidsovereenkomst met u en u stelt hem ter beschikking; AIX Talent stelt geen arbeidskrachten ter beschikking.
- Uw bedrijfsnaam staat niet in de vacaturetekst en niet in de gestructureerde data. De kandidaat ziet pas dat een vacature van u is op het moment dat hij beslist of we zijn sollicitatie aan u doorgeven. Hebben we dat met u afgesproken, dan staat uw naam bij een vinkje op het Nederlandse sollicitatieformulier. In alle andere gevallen noemen we uw naam pas in de e-mail waarin we de kandidaat vragen of we hem aan u mogen voorstellen.
- Vragen of een sleutel nodig? Mail info@aixtalent.nl.