REST API · v1

API-documentatie

Dien portretten in via een asynchrone API, gebruik je bestaande credittegoed en volg elke taak en afschrijving.

Ontwikkelaarscentrum

Koppel je app met hulp van een AI

Kopieer deze prompt naar ChatGPT, Claude, Cursor of je programmeerassistent. Die vraagt naar je techstack en begeleidt je vervolgens bij inloggegevens, het controleren van je saldo, het indienen van een taak en het verifiëren van het resultaat.

Open als platte tekst

Je hoeft je API-sleutel niet naar de AI te sturen. De prompt begeleidt je bij het instellen ervan in je eigen serveromgeving.

Lees de volledige prompt / kopieer handmatig

Kosten

API: 1 credit per geslaagde test. Website: 10 credits per test. Beide gebruiken hetzelfde tegoed. Bij het aanmaken van een API-taak wordt 1 credit gereserveerd; bij een definitieve fout wordt deze één keer teruggegeven.

Stuur Authorization: Bearer mee met de vereiste scope. Gebruik voor nieuwe pogingen met dezelfde afbeeldingsbytes dezelfde Idempotency-Key. Hergebruik met andere invoer geeft HTTP 409. Opvragen kost geen credits.

Eindpunten

HTTPMachtigingen
POST /api/v1/face-age/jobsface-age:write
GET /api/v1/face-age/jobs/{id}face-age:read
GET /api/v1/creditscredits:read
GET /api/v1/usage?page=1&pageSize=20usage:read

Een taak aanmaken

Gebruik multipart/form-data met één afbeeldingsbestand (JPEG, PNG of WebP, maximaal 5 MB) en het toestemmingsveld hieronder. Alleen volwassenen mogen dit eindpunt gebruiken om met toestemming hun eigen foto in te dienen. Externe URL's en extra parameters worden geweigerd. Genereer alleen een nieuwe idempotency-sleutel voor een nieuwe test.

# Genereer en bewaar één sleutel per nieuwe test; voer bij nieuwe pogingen alleen de curl hieronder uit met de oorspronkelijke sleutel en afbeelding.
IDEMPOTENCY_KEY="$(uuidgen)"

curl -X POST 'https://fahrface.org/api/v1/face-age/jobs' \
  -H "Authorization: Bearer $FAHRFACE_API_KEY" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -F 'image=@portrait.jpg' \
  -F 'consent=appearance-age-2026-10-21'
{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "JOB_ID",
    "status": "queued",
    "age": null,
    "creditsCost": 1,
    "billingStatus": "reserved"
  }
}

Resultaten opvragen

Het aanmaken van een taak geeft HTTP 202 en een taak-ID terug. Vraag elke 10–15 seconden de status op. queued, processing en retrying zijn niet-definitief; succeeded en failed zijn definitief. Het opstarten van HF kan enkele minuten duren. Taken hebben een deadline van 20 minuten; een actieve worker-lease kan het definitieve herstel met maximaal vier minuten vertragen.

curl 'https://fahrface.org/api/v1/face-age/jobs/JOB_ID' \
  -H "Authorization: Bearer $FAHRFACE_API_KEY"

Fouten en limieten

Antwoorden gebruiken code/message/data. HTTP 400: ongeldig verzoek of ontbrekende toestemming; 401: ongeldige/verlopen sleutel; 403: ontbrekende scope; 402: onvoldoende credits; 404: ontbrekende taak of taak die niet van jou is; 409: gewijzigde invoer; 413/415: ongeldige afbeeldingsgrootte of -indeling; 429: verzoek-, gelijktijdigheids- of budgetlimiet; 503: niet beschikbaar. Volg Retry-After, gebruik dezelfde idempotency-sleutel opnieuw en controleer message voordat je het opnieuw probeert.

Sleutels verlopen binnen één jaar. Budgetten omvatten gereserveerde en gebruikte credits; terugbetalingen vullen het budget weer aan. Per account zijn maximaal 60 verzoeken per minuut en twee actieve API-taken tegelijk toegestaan.

Portretten worden tijdelijk opgeslagen in een besloten bucket en na de definitieve verwerking verwijderd, met een terugvaltermijn van 24 uur. HF verwerkt de foto; schattingen zijn geen medisch advies, identiteitscontrole of bewijs van leeftijd.