GET /listings
Lister les signalements
Signalements publics, du plus récent au plus ancien. Filtrez par statut, espèce et lieu. Synchronisez avec updated_since et If-None-Match. Une requête identique dans les 60 secondes reçoit la réponse précédente depuis le cache.
Paramètres
| Nom | Où | Type | Description |
|---|---|---|---|
status | query | string | Séparés par des virgules : missing, found, seen, home. |
species | query | string | Séparés par des virgules : cat, dog, bird, small_mammal, reptile, horse, other. |
province | query | string | Slug de la province (voir /gemeenten). Pas avec gemeente ou near. |
gemeente | query | string | Slug de la commune ou code INS (voir /gemeenten). |
near | query | string | Code postal belge : signalements dans les communes dont le centre se trouve à moins de radius km (distance entre centres de communes, jamais de position exacte). |
radius | query | integer 1–25 | Rayon en km (1–25, 10 par défaut), uniquement avec near. |
updated_since | query | string | Uniquement les signalements modifiés depuis (ISO 8601). Base de la synchronisation. |
sort | query | string (-reported_at, reported_at, -updated_at, updated_at) = -reported_at | Tri ; un signe moins signifie du plus récent au plus ancien. |
page | query | integer 1–100 = 1 | Page (max. 100). Pour une synchronisation complète, utilisez updated_since. |
per_page | query | integer 1–100 = 25 | Résultats par page (max. 100). |
lang | query | string (nl, fr, en, de) = nl | Langue des libellés et des liens (le lien ouvre le signalement dans cette langue). |
If-None-Match | header | string | ETag de votre réponse précédente : inchangé → 304 sans contenu. |
If-Modified-Since | header | string | Last-Modified de votre réponse précédente. |
Exemple de requête
curl
curl -s "https://ikbenvermist.be/wp-json/ibv/api/v1/listings?status=missing&gemeente=hasselt&lang=nl" \
-H "Authorization: Bearer $IBV_API_KEY" \
-H 'If-None-Match: W/"…"'JavaScript
// on your server (Node 18+), never in the browser
const res = await fetch('https://ikbenvermist.be/wp-json/ibv/api/v1/listings?status=missing&gemeente=hasselt&lang=nl', {
headers: { Authorization: `Bearer ${process.env.IBV_API_KEY}` },
});
if (res.status === 429) { /* wait res.headers.get('Retry-After') seconds */ }
const body = await res.json();PHP
$ch = curl_init('https://ikbenvermist.be/wp-json/ibv/api/v1/listings?status=missing&gemeente=hasselt&lang=nl');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('IBV_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);Exemple de réponse 200
{
"data": [
{
"id": 900001,
"status": "missing",
"status_label": "Vermist",
"species": "cat",
"species_label": "Kat",
"place": {
"gemeente": "Hasselt",
"gemeente_slug": "hasselt",
"nis": "71022",
"province": "Limburg",
"province_slug": "limburg"
},
"reported_at": "2026-10-10T08:12:00Z",
"updated_at": "2026-10-11T17:40:00Z",
"url": "https://ikbenvermist.be/m/900001/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api",
"links": {
"self": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings/900001",
"html": "https://ikbenvermist.be/m/900001/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api",
"gemeente": "https://ikbenvermist.be/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api"
}
},
{
"id": 900002,
"status": "found",
"status_label": "Gevonden",
"species": "dog",
"species_label": "Hond",
"place": {
"gemeente": "Gent",
"gemeente_slug": "gent",
"nis": "44021",
"province": "Oost-Vlaanderen",
"province_slug": "oost-vlaanderen"
},
"reported_at": "2026-10-09T14:03:00Z",
"updated_at": "2026-10-09T14:03:00Z",
"url": "https://ikbenvermist.be/m/900002/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api",
"links": {
"self": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings/900002",
"html": "https://ikbenvermist.be/m/900002/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api",
"gemeente": "https://ikbenvermist.be/?utm_source=jouw-organisatie&utm_medium=api&utm_campaign=api"
}
}
],
"meta": {
"page": 1,
"per_page": 2,
"total": 6,
"total_pages": 3,
"lang": "nl",
"generated_at": "2026-10-15T01:00:03Z"
},
"links": {
"self": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings?lang=nl&per_page=2&page=1",
"first": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings?lang=nl&per_page=2&page=1",
"last": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings?lang=nl&per_page=2&page=3",
"next": "https://ikbenvermist.be/wp-json/ibv/api/v1/listings?lang=nl&per_page=2&page=2",
"docs": "https://ikbenvermist.be/en/api/documentation/"
}
}