Kom i gang
Operra API-en er en REST-tjeneste som lar deg lese og skrive data fra dine egne systemer.
- Base URL:
https://<din-convex>.convex.site/api/v1 - Format: JSON
- Autentisering: Bearer token
- Rate-limit: 60 kall/min standard, justerbar per kunde
Autentisering
Alle kall krever en Bearer-token i Authorization-headeren. Nøkkelen begynner med opk_ og utstedes av Operra- admin per bedrift.
curl -H "Authorization: Bearer opk_xxxxxxxx" \
https://api.operra.no/api/v1/organizationEndepunkter
Tilgjengelig i v1:
GET
/organizationReturnerer informasjon om din bedriftGET
/employeesListe over alle ansatte (filter: active, department)POST
/employeesOpprett ny ansattGET
/employees/:idHent én ansattGET
/shiftsListe over vakter (filter: from, to)GET
/customersListe over kunderEksempel: opprett ansatt
curl -X POST -H "Authorization: Bearer opk_xxx" \
-H "Content-Type: application/json" \
-d '{"fullName":"Kari Nordmann","email":"kari@bedrift.no"}' \
https://api.operra.no/api/v1/employeesWebhooks
Operra POST-er events til en URL du oppgir når noe skjer i kontoen din. Bruk dette for å holde dine egne systemer synkronisert.
Event-typer
employee.created— ny ansatt opprettetemployee.updated— ansatt oppdatertshift.created— ny vakt opprettetshift.updated— vakt endretmodule.activated— modul aktivert*— bruk for å motta alle events
Payload-format
{
"event": "employee.created",
"organizationId": "kg2...",
"payload": {
"id": "j9k...",
"fullName": "Kari Nordmann",
"email": "kari@bedrift.no"
},
"timestamp": 1716393600000
}Signaturverifisering
Hver webhook POST inkluderer en X-Operra-Signature-header med HMAC-SHA256 av payloaden, signert med din webhook-secret.
import crypto from "crypto";
function verifyWebhook(body, signature, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}