API-dokumentasjon
Inntaks-API for 110-sentralenes fagsystemer. Send hendelser til Branninfo. Kontakt 110-sentralen for å få API-nøkkel.
Base-URL: https://branninfo-admin-web.vercel.app
AUTENTISERING
Alle skrivekall krever header X-API-Key: <nøkkel>. Nøkkelen er knyttet til én 110-sentral. Hvis nøkkelen krever signatur, må du også sende X-Signature: sha256=<HMAC-SHA256 av rå body>.
Rate-limit: 60 forespørsler per minutt per nøkkel (svar 429 med Retry-After).
POST/api/v1/incidents
Opprett en hendelse. Idempotent på external_id per sentral — samme ID sendt flere ganger gir ingen dublett.
FELTER (JSON body)
| felt | type | påkrevd | beskrivelse |
|---|---|---|---|
| external_id | string | ja | Fagsystemets egen ID (idempotensnøkkel) |
| incident_type_id | uuid | ja | Se hendelsestyper nederst |
| municipality_id | uuid | ja | Kommune (fås fra 110-sentralen) |
| severity | enum | nei | critical | major | minor | info (standard: minor) |
| public_area | string | nei | Offentlig område, aldri gateadresse |
| public_text | string | nei | Publikumstekst |
| press_text | string | nei | Pressetekst |
| raw_lat / raw_lng | number | nei | Rå posisjon — generaliseres, vises aldri eksakt |
| occurred_at | ISO 8601 | nei | Tidspunkt (standard: nå) |
| source | string | nei | Fagsystem-navn, f.eks. 'emerald' |
EKSEMPEL
curl -X POST https://branninfo-admin-web.vercel.app/api/v1/incidents \
-H "X-API-Key: <din-nøkkel>" \
-H "Content-Type: application/json" \
-d '{
"external_id": "SAK-2026-001",
"incident_type_id": "<uuid>",
"municipality_id": "<uuid>",
"severity": "major",
"public_area": "Sentrum",
"public_text": "Melding om brann i bygning.",
"raw_lat": 62.47, "raw_lng": 6.15
}'SVAR
- 201 — opprettet: { "id": "…", "status": "created" }
- 200 — fantes fra før (idempotent): { "id": "…", "status": "exists" }
- 400 — ugyldig data
- 401 — ugyldig nøkkel eller signatur
- 429 — for mange forespørsler
HMAC-SIGNERING (hvis påkrevd)
# signatur = HMAC-SHA256(rå JSON-body, signeringshemmelighet) SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //') curl -X POST https://branninfo-admin-web.vercel.app/api/v1/incidents \ -H "X-API-Key: $KEY" -H "X-Signature: sha256=$SIG" \ -H "Content-Type: application/json" -d "$BODY"
GET/api/v1/health
Helse-sjekk, krever ikke autentisering.
HENDELSESTYPER (incident_type_id)
| Akutt forurensning | 5673985c-3a8e-4a03-bd91-7d6f65f5167a |
| Annet oppdrag | bc8cd56e-25e2-408a-8c09-514d66608c8b |
| Automatisk brannalarm | 9800d110-8514-4c25-baeb-8c8e4386b52f |
| Bilbrann | 7bcbd35d-5825-4223-9ece-3a30a3a8c34b |
| Brann i bygning | bae9ce79-9f4b-46de-ae04-6d48193a934b |
| Dyreredning | d2554b47-2ef8-4842-b421-45d1564869d7 |
| Gress-/skogbrann | b0776208-3fdb-4449-941b-03c1fb555145 |
| Pipebrann | 019e3954-9082-481d-9d55-192a55fd7426 |
| Røykutvikling | 5195bd20-518b-4b5c-8a18-96be66880de8 |
| Søk og redning | 793edfa7-a542-4556-bf89-e0915125eef3 |
| Trafikkulykke | f695b732-4785-424d-924f-40f07a9ab2c5 |
| Vannskade / naturhendelse |
RabbitMQ-basert inntak er under vurdering og vil bruke samme datamodell (PROJECT.md §10.16b).