Send din første gravemelding via API
Fra null til sendt gravemelding på under 10 minutter. Denne guiden er for entreprenører som vil integrere gravemeldingssending i eget system.
Forutsetninger
- ✓Du har en Graveinfo-konto.
- ✓Kontoen er koblet til en godkjent entreprenørprofil.
- ✓Du har tilgang til koordinater for arbeidsområdet (WGS84 eller UTM).
Skaff en API-nøkkel med riktig scope
Gå til Dashboard → API-nøkler og opprett en ny nøkkel. Du trenger scopet gravemeldinger:write for å sende gravemeldinger.
Viktig: Nøkkelen er koblet til din entreprenørprofil - ikke til kontoen generelt. Nøkkelen vises kun én gang. Lagre den i en miljøvariabel:
export GRAVEINFO_API_KEY="gv_live_..."Forbered polygon-koordinater i EPSG:25833
Graveinfo bruker EPSG:25833 (UTM sone 33N) for kartkoordinater. Dette er et metrisk koordinatsystem som gir nøyaktige avstandsmålinger - i motsetning til WGS84 (bredde-/lengdegrad) som bruker grader.
Har du koordinater i WGS84 (f.eks. fra GPS eller Google Maps), konverter dem med proj4js:
// npm install proj4
import proj4 from 'proj4';
// Definer EPSG:25833 (UTM sone 33N)
proj4.defs('EPSG:25833', '+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs');
// Konverter WGS84 (lng, lat) til EPSG:25833 (x, y)
function wgs84ToUtm33(lng: number, lat: number): [number, number] {
return proj4('EPSG:4326', 'EPSG:25833', [lng, lat]) as [number, number];
}
// Eksempel: polygon rundt et område i Oslo sentrum (WGS84-koordinater)
const wgs84Corners = [
[10.7515, 59.9135],
[10.7535, 59.9135],
[10.7535, 59.9150],
[10.7515, 59.9150],
[10.7515, 59.9135], // lukket ring
];
const utm33Coords = wgs84Corners.map(([lng, lat]) => wgs84ToUtm33(lng, lat));
console.log(utm33Coords);
// → [[257897, 6647823], [258050, 6647823], ...]Alternativt: bruk QGIS (Vektor → Geometriverktøy → Projisér lag) eller epsg.io/transform for manuell konvertering.
Polygon-krav: Polygonet må være en lukket ring - siste koordinat må være lik den første. Koordinatene skal angi yttergrensen av arbeidsområdet. Et lite polygon på noen hundre meter er tilstrekkelig for de fleste gravearbeider.
POST til /api/v1/gravemeldinger
Send en POST-forespørsel med alle påkrevde felt. Graveinfo vil umiddelbart finne mottakere og varsle dem:
curl -X POST "https://graveinfo.no/api/v1/gravemeldinger" \
-H "Authorization: Bearer $GRAVEINFO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Graving Storgata 12",
"description": "Legging av fiberkabel langs Storgata 12-18",
"work_types": ["telekommunikasjon", "grunnarbeid"],
"polygon": {
"type": "Polygon",
"coordinates": [[
[258000, 6648000],
[258100, 6648000],
[258100, 6648100],
[258000, 6648100],
[258000, 6648000]
]]
},
"planned_start": "2026-06-01",
"planned_end": "2026-06-14",
"contact_person": "Ola Nordmann",
"contact_phone": "91234567",
"adresse": "Storgata 12, Oslo"
}'Forstå kvitteringen
Et vellykket kall returnerer HTTP 201 med følgende:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"reference_number": "GI-2026-00042",
"status": "sendt",
"kart_frist": "2026-06-07",
"pavisning_frist": "2026-06-11",
"municipality_names": ["Oslo"],
"recipient_count": 8,
"created_at": "2026-05-28T10:00:00.000Z",
"sent_at": "2026-05-28T10:00:01.000Z"
}reference_numberBruk dette nummeret i all videre kommunikasjon med mottakere og Graveinfo.kart_frist5 virkedager fra sending - frist for at mottakere skal levere kartinformasjon.pavisning_frist7 virkedager fra sending - frist for fysisk påvisning av infrastruktur.municipality_namesKommunene polygonet overlapper med. Viktig å verifisere at riktig kommune er truffet.recipient_countAntall infrastruktureiere som ble varslet. 0 er en feil - da mangler det registrerte eiere i området.Sjekk status og svar fra mottakere
Bruk ID-en fra kvitteringen til å hente oppdatert status:
# Sjekk status etter sending
curl "https://graveinfo.no/api/v1/gravemeldinger/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer $GRAVEINFO_API_KEY"{
"id": "550e8400-e29b-41d4-a716-446655440000",
"referenceNumber": "GI-2026-00042",
"status": "in_progress",
"recipients": [
{
"name": "Oslo VAV",
"status": "responded",
"response": "conflict",
"responseNote": "Vi har VA-ledninger i dette området. Kontakt oss.",
"respondedAt": "2026-05-29T08:30:00.000Z"
},
{
"name": "Hafslund Nett AS",
"status": "pending",
"response": null,
"responseNote": null,
"respondedAt": null
}
],
"summary": {
"total": 8,
"responded": 1,
"pending": 7,
"hasConflicts": true
}
}Feltet response viser svartype: conflict betyr at mottakeren har infrastruktur i området og du må ta kontakt. Gå til API-referansen for alle mulige verdier.
Feilsøking
NO_MUNICIPALITYPolygon ikke i EPSG:25833Løsning: Koordinatene er sannsynligvis i WGS84 (breddegrad/lengdegrad rundt 59°N/10°E). Konverter til EPSG:25833 (UTM sone 33N) - verdier skal typisk være rundt 200 000–900 000 (øst) og 6 400 000–7 700 000 (nord).
NO_RECIPIENTSIngen registrerte eiere i områdetLøsning: Området har ingen infrastruktureiere registrert i Graveinfo ennå. Bruk GET /coverage?municipality=XXXX for å sjekke om kommunen har registrerte eiere. Kontakt oss for å legge til manglende eiere.
INVALID_WORK_TYPEUgyldig verdi i work_typesLøsning: Gyldige verdier er: telekommunikasjon, vann_avlop, hoyspenning, lavspenning, veiarbeid, grunnarbeid, fjernvarme, annet.
MISSING_FIELDSPåkrevde felt manglerLøsning: Sjekk feilmeldingen - feltet error.fields inneholder en liste over felt som mangler.
FORBIDDENNøkkelen er ikke koblet til en entreprenørprofilLøsning: POST /gravemeldinger krever en nøkkel koblet til en godkjent entreprenørprofil. Organisasjonsnøkler fungerer ikke her. Verifiser at nøkkelen ble opprettet fra en entreprenørprofil i dashbordet.
Klar for full API-dokumentasjon?
Se API-referansen →