API
Alt som kan gjøres i panelet kan gjøres via API-et. Oppslagssiden i panelet bruker de samme endepunktene. API-nøkler lages under API i panelet og krever Medium-pakken eller større.
Autentisering
Send nøkkelen som Bearer-token. Kall går mot virksomhetens egen adresse, eller mot hvilken som helst adresse under declarely.app; nøkkelen avgjør hvilken virksomhet det gjelder.
curl "https://<slug>.declarely.app/api/v1/lookup?phone=%2B4791234567" \ -H "Authorization: Bearer dk_live_…"
Nøkler har rettighetene read og/eller write. Alle svar er JSON. Feil returnerer { error, message, details? } med passende HTTP-status.
Endepunkter
/api/v1/lookup?phone=+4791234567scope: readSjekk om et telefonnummer har en gyldig erklæring. Nummeret kan skrives med eller uten landskode; norske numre er standard.
Svar
{
"phone": "+4791234567",
"found": true,
"declaration": {
"id": "…", "fullName": "Kari Nordmann", "firstName": "Kari",
"birthDate": "1988-03-14", "phone": "+4791234567", "email": "kari@example.com",
"signedAt": "2026-09-05T10:12:00Z", "expiresAt": "2027-09-05T10:12:00Z",
"locale": "nb", "source": "kiosk",
"children": [{ "id": "…", "fullName": "Ola Nordmann", "birthDate": "2016-05-01", "signedAt": "…" }]
}
}/api/v1/declarations?query=&page=1&page_size=25&include_expired=false&since=scope: readListe over erklæringer, nyeste først. query matcher telefon, navn eller e-post. since er et ISO-tidspunkt.
Svar
{ "items": [ … ], "total": 128, "page": 1, "pageSize": 25 }/api/v1/declarations/{id}scope: readÉn erklæring med barn, IP-adresse og nettleser.
/api/v1/declarationsscope: writeRegistrer en erklæring på vegne av en gjest. Samme felter som skjemaet. termsVersionId må være gjeldende publiserte versjon (se /terms). accepted må være true.
Body
{
"phone": "912 34 567",
"birthDate": "1988-03-14",
"fullName": "Kari Nordmann",
"email": "kari@example.com",
"locale": "nb",
"termsVersionId": "…",
"accepted": true,
"children": [{ "fullName": "Ola Nordmann", "birthDate": "2016-05-01" }],
"childrenConfirmed": true
}Svar
201 { "declaration": { … } }/api/v1/declarations/{id}scope: writeTrekk tilbake en erklæring. Raden beholdes til utløp for sporbarhet, men regnes som ugyldig.
/api/v1/terms?locale=nbscope: readGjeldende publiserte vilkår i ønsket språk, med versjons-ID til bruk ved registrering.
/api/v1/tenantscope: readInnstillinger, pakke, abonnementsstatus og bruk.
/api/v1/statsscope: readTall for dashbord: aktive, signert siste 7 og 30 dager, utløper neste 30 dager, barn, kilder.
Feilkoder
| invalid_phone | Telefonnummeret kunne ikke tolkes. |
| too_young | Gjesten er under minstealderen. details.minAge. |
| email_required | Virksomheten krever e-post. |
| child_too_old | Et barn er 18 år eller eldre og må signere selv. |
| too_many_children | Flere barn enn tillatt. details.max. |
| children_confirm_required | childrenConfirmed må være true når barn er med. |
| terms_outdated | termsVersionId er ikke gjeldende versjon. Hent /terms på nytt. |
| no_terms | Virksomheten har ikke publisert vilkår. |
| plan_limit | Pakkens grense for aktive erklæringer er nådd. |
| rate_limited | For mange kall. Vent og prøv igjen. |
| unauthorized | Manglende eller ugyldig API-nøkkel. |
| forbidden | Nøkkelen mangler rettigheten, eller pakken inkluderer ikke API. |
Innbygging
Skjemaet kan bygges inn på egen nettside. Rammen tilpasser høyden automatisk.
<iframe src="https://<slug>.declarely.app/embed" class="declarely-embed"
style="width:100%;border:0;min-height:640px" title="Egenerklæring"></iframe>
<script src="https://<slug>.declarely.app/embed.js" async></script>