/api/v1/customerReturn safe customer profile for the token owner.
Responskodar: 200, 401Dette er den sentrale dokumentasjonen for eksterne kundesystem som skal snakke med Kveo Panel. API-et er versjonert, token-basert og isolerer alltid data per kunde.
Base URL for eksterne kundesystem er https://kveo.no/api/v1. Interne admin-ruter i Kveo Panel skal ikkje brukast av kundesystem.
/ai/messages, scope ai:use) med full kostnadskontroll og kredittrekk. Bowlit er ikkje kopla på enno.Alle kundespesifikke kall brukar server-to-server token i Authorization-headeren. Kunden blir bestemt frå tokenet, ikkje frå request body eller query-parametrar.
curl https://kveo.no/api/v1/customer \
-H "Authorization: Bearer yrm_st_..."last_used_at blir oppdatert ved gyldige kall.ai:readai:useai:topupbilling:readinvoices:readsupport:readsupport:writestatus:readsms:sendsms:readScope blir kontrollert per endepunkt. Manglande scope gir 403.
/api/v1/customerReturn safe customer profile for the token owner.
Responskodar: 200, 401/api/v1/servicesList services for the token owner.
Responskodar: 200, 401/api/v1/aiReturn AI credit and usage status.
Required scope: ai:read. Also returns any credit requests that are still waiting to be handled by Kveo.Responskodar: 200, 401, 403/api/v1/ai/credit-requestsList requests for extra AI credit.
Required scope: ai:read. Filter with ?status=pending|approved|rejected.Responskodar: 200, 400, 401, 403/api/v1/ai/credit-requestsAsk Kveo to invoice you for extra AI credit.
Required scope: ai:topup. Use this when the AI credit included in your monthly plan is spent. The request does not add credit by itself: Kveo invoices the amount and approves the request, and the credit appears on your balance at that point. Send the same "reference" when retrying so a retry never turns into two invoices.Responskodar: 200, 201, 400, 401, 403, 409/api/v1/ai/credit-requests/{id}Return one credit request.
Required scope: ai:readResponskodar: 200, 401, 403, 404/api/v1/ai/messagesSend a message to Claude (Anthropic) through Kveo's AI gateway.
Required scope: ai:use. The model is fixed per customer by Kveo and cannot be chosen in the request. Mirrors the shape of Anthropic's own Messages API.Responskodar: 201, 400, 401, 402, 403, 502/api/v1/invoicesList invoices visible to this customer.
Required scope: invoices:readResponskodar: 200, 401, 403/api/v1/support/ticketsList support tickets for this customer.
Required scope: support:readResponskodar: 200, 401, 403/api/v1/support/ticketsCreate a support ticket for this customer.
Required scope: support:writeResponskodar: 201, 400, 401, 403, 404/api/v1/sms/sendSend an SMS through Kveo's SMS gateway using your configured sender ID.
Required scope: sms:send. The sender ID is fixed per customer by Kveo and cannot be overridden in the request.Responskodar: 201, 400, 401, 403, 502/api/v1/sms/logList recent SMS sent through the gateway for this customer.
Required scope: sms:readResponskodar: 200, 401, 403/api/v1/statusReturn service status for this customer.
Required scope: status:readResponskodar: 200, 401, 403curl https://kveo.no/api/v1/support/tickets \
-H "Authorization: Bearer yrm_st_..." \
-H "Content-Type: application/json" \
-d '{"title":"Problem med AI-svar","body":"Beskriv saka her","priority":"normal"}'{
"ai": {
"enabled": true,
"included_credit_remaining": 72.4,
"purchased_credit": 250,
"total_available_credit": 322.4,
"current_month_usage": 27.6,
"current_month_limit": 500,
"month": "2026-08"
}
}Er den inkluderte månadskreditten brukt opp, svarar /ai/messages med 402 credit_exhausted. Då kan systemet be om ein faktura på meir kreditt (scope ai:topup). Kallet gir ikkje kreditt med ein gong. Kveo fakturerer beløpet og godkjenner førespurnaden, og krediten dukkar opp på saldoen då. Send same reference ved retry, så blir det aldri to fakturaer av same ynske.
curl https://kveo.no/api/v1/ai/credit-requests \
-H "Authorization: Bearer yrm_st_..." \
-H "Content-Type: application/json" \
-d '{"amount_nok":500,"note":"Auto-svar i september","reference":"2026-09-01"}'UUID, namn, organisasjonsnummer, kundenummer, e-post og aktiv-status.
Tenestetype, namn, status og JSON-config, til dømes inkludert månadleg AI-kreditt.
Hashed token, scopes, aktiv-status, last_used_at, expires_at og rotasjonsspor.
Transaksjonar for monthly_included, usage, manual_adjustment, invoice_topup, refund og expiry.
Kunden sitt ynske om ein faktura på meir kreditt: beløp, notat, eigen referanse, status (pending/approved/rejected) og fakturareferanse.
Provider, modell, tokenbruk, kostnad, valuta, request_id og tidspunkt.
Fiken/Stripe/Kveo-fakturaer med status, beløp, datoar og PDF/hosted URL der det finst.
Tittel, status, prioritet, service/resource-kopling og svartråd.
Status per kundeteneste med melding, start og eventuell slutt.
Actor, customer_id, action, metadata og timestamp for sensitive handlingar.
| Status | Når |
|---|---|
400 | Ugyldig request body eller valideringsfeil. |
401 | Manglande, ugyldig, deaktivert eller utløpt token. |
403 | Tokenet manglar nødvendig scope. |
402 | AI-krediten er brukt opp. Be om meir med POST /ai/credit-requests. |
404 | Ressursen finst ikkje for denne kunden. |
409 | For mange ubehandla kredittførespurnader ligg alt og ventar. |
429 | Rate limit er nådd. Sjå X-RateLimit-headerar. |
500 | Uventa serverfeil. Secrets blir ikkje returnert i responsen. |
customer_id; kundeidentitet kjem frå service-token.