HvorErDen
Developer API

Public API-manual og Swagger/OpenAPI for HvorErDen

Denne siden beskriver hva API-et faktisk kan gjøre, hvilke auth-modeller som finnes i dag, og hvordan integrasjoner henter tilgang uten at dokumentasjonen driver bort fra koden.

Base URL

Versjonert API

Hovedbasen for versjonerte ruter er:

https://lager.aiportalen.cloud/api/v1

Webhooker ligger utenfor `api/v1` og dokumenteres separat i spesifikasjonen.

Responsformat

Standard envelope

Alle dokumenterte API-ruter bruker `success/data/meta` eller `success/error/meta`.

{
    "success": false,
    "error": {
        "code": "authentication_required",
        "message": "Innlogging kreves.",
        "details": []
    },
    "meta": {
        "request_id": "5c73f994-41ef-4b54-b8ca-d0ea3be761f4",
        "timestamp": "2026-06-27T12:00:00+02:00"
    }
}
API-nøkler

Hva kan faktisk innhentes?

Det finnes forelopig ingen selvbetjent flyt for permanente API-nokler. Tilgang hentes i dag via mobile Bearer-tokens, nettlesersesjon eller provider-signaturer.

Vipps-credentials hentes gjennom Vipps MobilePay merchant/developer onboarding og konfigureres server-side. Swagger-spesifikasjonen beskriver derfor dagens reelle auth-modell, ikke en hypotetisk partnernøkkel.

Tilgang

Hvordan tilgang hentes

Offentlig lesetilgang

Ruter som status, offentlig dokumentasjon, mobil config og mobil release-notes kan leses uten innlogging.

Web/session-auth

De fleste husholdnings-, admin- og superadmin-endepunktene er laget for forsteparts-webklienten. Bruk innlogget sesjon via cookie `hvorerden-session`. Ved skrivende browser-kall bor klienten sende `X-CSRF-TOKEN`.

Mobile Bearer-token

Mobile og mobile-kompatible endepunkter bruker `Authorization: Bearer <access_token>`. Token hentes via `POST /api/v1/mobile/auth/login`, `POST /api/v1/mobile/auth/register` eller Vipps-flyten `POST /api/v1/mobile/auth/vipps/start` + `POST /api/v1/mobile/auth/vipps/complete`, og fornyes via `POST /api/v1/mobile/auth/refresh`.

Vipps Login og Vipps Checkout

Vipps brukes som ekstern identitets- og betalingsprovider. Mobilappen starter Vipps Login via `POST /api/v1/mobile/auth/vipps/start` og fullfører via `POST /api/v1/mobile/auth/vipps/complete`. Betaling i app starter via `POST /api/v1/mobile/billing/checkout-sessions` og bekreftes server-side via `POST /api/v1/mobile/billing/checkout-sessions/finalize` etter retur fra Vipps.

Webhook-signatur

Billing-webhooken er offentlig eksponert, men autoriseres med provider-signatur i `Stripe-Signature`. Hemmeligheten hentes i Stripe-dashboardet og konfigureres server-side; den utstedes ikke av denne API-en.

API-nokler

Det finnes forelopig ingen selvbetjent flyt for a opprette permanente API-nokler eller maskinbrukere. Vipps-credentials er heller ikke noe denne API-en utsteder: de ma innhentes gjennom Vipps MobilePay merchant/developer onboarding og legges inn server-side som miljøvariabler.

Eksempler

Praktiske startsnutter

Mobil login request

{
    "email": "ola@example.no",
    "password": "password12345",
    "device_installation_id": "android-installation-123",
    "platform": "android",
    "app_version_name": "0.14.0",
    "app_version_code": 140000,
    "device_name": "Pixel 9",
    "device_model": "Pixel 9",
    "os_version": "Android 16"
}

Mobil login response

{
    "success": true,
    "data": {
        "token_type": "Bearer",
        "access_token": "opaque-access-token",
        "access_token_expires_at": "2026-06-27T12:00:00+02:00",
        "refresh_token": "opaque-refresh-token",
        "refresh_token_expires_at": "2026-07-27T12:00:00+02:00",
        "user": {
            "public_id": "42",
            "name": "Ola Nordmann",
            "email": "ola@example.no",
            "role": "user",
            "status": "active",
            "email_verified": true,
            "current_household_id": "01H0000000000000000000000"
        },
        "device": {
            "public_id": "01H0000000000000000000001",
            "platform": "android",
            "app_version_name": "0.14.0",
            "app_version_code": 140000,
            "device_name": "Pixel 9",
            "device_model": "Pixel 9",
            "os_version": "Android 16",
            "last_seen_at": "2026-06-27T12:00:00+02:00",
            "revoked_at": null
        }
    },
    "meta": {
        "request_id": "2ac10db6-7e35-4c57-8d79-ff8f4a77a001",
        "timestamp": "2026-06-27T12:00:00+02:00"
    }
}

Vipps start request

{
    "mode": "login",
    "device_installation_id": "android-installation-123",
    "platform": "android",
    "app_version_name": "0.14.0",
    "app_version_code": 140000,
    "device_name": "Pixel 9",
    "device_model": "Pixel 9",
    "os_version": "Android 16"
}

Vipps start response

{
    "success": true,
    "data": {
        "mode": "login",
        "state": "6d3ef7f6-714b-4327-a1f7-6e6f4b1ed123",
        "authorization_url": "https://api.vipps.no/access-management-1.0/access/oauth2/auth?...",
        "redirect_uri": "https://lager.aiportalen.cloud/s/v1/vipps/callback",
        "expires_at": "2026-06-27T12:10:00+02:00"
    },
    "meta": {
        "request_id": "12345678-90ab-cdef-1234-567890abcdef",
        "timestamp": "2026-06-27T12:00:00+02:00"
    }
}

Session-baserte web-endepunkter er primart laget for den innebygde webklienten. For maskinell tilgang i dag er mobile Bearer-tokens den faktiske utleveringsmekanismen, mens Vipps brukes som ekstern identitets- og betalingsprovider.

Public Ruter

Endepunkter som kan kalles uten innlogging

List Documentation Articles

GET /api/v1/documentation/articles

Create Mobile Auth Forgot Password

POST /api/v1/mobile/auth/forgot-password

Create Mobile Auth Login

POST /api/v1/mobile/auth/login

Create Mobile Auth Refresh

POST /api/v1/mobile/auth/refresh

Create Mobile Auth Register

POST /api/v1/mobile/auth/register

Complete Mobile Auth Vipps

POST /api/v1/mobile/auth/vipps/complete

Create Mobile Auth Vipps Start

POST /api/v1/mobile/auth/vipps/start

Get Mobile Config

GET /api/v1/mobile/config

Get Mobile Release notes

GET /api/v1/mobile/release/notes

Get Mobile Release status

GET /api/v1/mobile/release/status

Create Security Csp Report

POST /api/v1/security/csp-report

Get status

GET /api/v1/status

Get Status Page Public

GET /api/v1/status-page/public

Create Webhooks Twilio

POST /api/webhooks/twilio/{type}

Rate Limits

Navngitte throttles som er dokumentert i spesifikasjonen

mobile-login

10 requests per minute

IP + email + device_installation_id

mobile-register

6 requests per minute

IP + email + device_installation_id

mobile-password

6 requests per minute

IP + email + device_installation_id

mobile-refresh

30 requests per minute

IP + email + device_installation_id

mobile-authenticated

120 requests per minute

User + mobile device + IP

ai-search

60 requests per minute

User + household + IP

ai-answer

20 requests per minute

User + household + IP

ai-feedback

60 requests per minute

User + household + IP

ai-vision

20 requests per minute

User + household + IP

ai-vision-feedback

60 requests per minute

User + household + IP

scan-resolve

Configurable per minute, default 180

User + household + IP

scan-action

Configurable per minute, default 30

User + household + IP

scan-session-create

30 requests per minute

User + household + IP

scan-history

60 requests per minute

User + household + IP

security-csp-report

30 requests per minute

IP + user-agent

Rutekatalog

Hele API-overflaten gruppert etter domene

Hver gruppe under samsvarer med Swagger/OpenAPI-spesifikasjonen. Rutenavn, auth og rate limits er avledet direkte fra Laravel-rutene.

Public & Core 3 ruter Offentlige status- og kontraktendepunkter som kan leses uten innlogging.
GET /api/v1/status
Get status

api.status

Auth: Public

GET /api/v1/status-page/public
Get Status Page Public

api.status-page.public

Auth: Public

POST /api/webhooks/twilio/{type}
Create Webhooks Twilio

api.webhooks.twilio

Auth: Public

Mobile Auth 8 ruter Innlogging, registrering, refresh og passordreset for mobile klienter.
POST /api/v1/mobile/auth/forgot-password
Create Mobile Auth Forgot Password

api.mobile.auth.forgot-password

Auth: Public · Rate limit: 6 requests per minute

POST /api/v1/mobile/auth/login
Create Mobile Auth Login

api.mobile.auth.login

Auth: Public · Rate limit: 10 requests per minute

POST /api/v1/mobile/auth/logout
Create Mobile Auth Logout

api.mobile.auth.logout

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/auth/refresh
Create Mobile Auth Refresh

api.mobile.auth.refresh

Auth: Public · Rate limit: 30 requests per minute

POST /api/v1/mobile/auth/register
Create Mobile Auth Register

api.mobile.auth.register

Auth: Public · Rate limit: 6 requests per minute

POST /api/v1/mobile/auth/resend-verification
Create Mobile Auth Resend Verification

api.mobile.auth.resend-verification

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/auth/vipps/complete
Complete Mobile Auth Vipps

api.mobile.auth.vipps.complete

Auth: Public · Rate limit: 10 requests per minute

POST /api/v1/mobile/auth/vipps/start
Create Mobile Auth Vipps Start

api.mobile.auth.vipps.start

Auth: Public · Rate limit: 10 requests per minute

Mobile Core 18 ruter Bootstrap, devices, households og systemlogg for mobilklienter.
GET /api/v1/mobile/bootstrap
Get Mobile Bootstrap

api.mobile.bootstrap

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/config
Get Mobile Config

api.mobile.config

Auth: Public

GET /api/v1/mobile/data-exports
List Mobile Data Exports

api.mobile.data-exports.index

Auth: Session or Mobile Bearer

POST /api/v1/mobile/data-exports
Create Mobile Data Exports

api.mobile.data-exports.store

Auth: Session or Mobile Bearer

GET /api/v1/mobile/data-exports/{public_id}
Get Mobile Data Exports

api.mobile.data-exports.show

Auth: Session or Mobile Bearer

GET /api/v1/mobile/devices
List Mobile Devices

api.mobile.devices.index

Auth: Mobile Bearer · Rate limit: 120 requests per minute

DELETE /api/v1/mobile/devices/{device_public_id}
Delete Mobile Devices

api.mobile.devices.destroy

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/households
List Mobile Households

api.mobile.households.index

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/households
Create Mobile Households

api.mobile.households.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/households/{household_public_id}/activate
Create Mobile Households Activate

api.mobile.households.activate

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/media-uploads
Create Mobile Media Uploads

api.mobile.media-uploads.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

DELETE /api/v1/mobile/media-uploads/{public_id}
Delete Mobile Media Uploads

api.mobile.media-uploads.destroy

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/media-uploads/{public_id}
Get Mobile Media Uploads

api.mobile.media-uploads.show

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/media-uploads/{public_id}/complete
Complete Mobile Media Uploads

api.mobile.media-uploads.complete

Auth: Mobile Bearer · Rate limit: 120 requests per minute

PUT /api/v1/mobile/media-uploads/{public_id}/content
Update Mobile Media Uploads Content

api.mobile.media-uploads.content

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/mutations
Create Mobile Mutations

api.mobile.mutations.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/mutations/{operation_public_id}
Get Mobile Mutations

api.mobile.mutations.show

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/system-logs
List Mobile System Logs

api.mobile.system-logs.index

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile AI 8 ruter Mobiltilgang til AI-sok, AI-vision, intake og plasseringsforslag.
GET /api/v1/mobile/ai/capabilities
Get Mobile Ai capabilities

api.mobile.ai.capabilities

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/intake/container-suggestions
Create Mobile AI Vision Intake Container

api.mobile.ai.vision.intake.container

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/intake/item-suggestions
Create Mobile AI Vision Intake Item

api.mobile.ai.vision.intake.item

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/placement/container-to-slot
Create Mobile AI Vision Placement Container To Slot

api.mobile.ai.vision.placement.container-to-slot

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/placement/item-to-container
Create Mobile AI Vision Placement Item To Container

api.mobile.ai.vision.placement.item-to-container

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/search
Search Mobile Ai

api.mobile.ai.search

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/ai/vision/analyze
Analyze Mobile AI Vision

api.mobile.ai.vision.analyze

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/ai/vision/capabilities
Get Mobile AI Vision capabilities

api.mobile.ai.vision.capabilities

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile Billing 6 ruter Mobiltilgang til abonnementsstatus, entitlements, bruk og kundeportal.
POST /api/v1/mobile/billing/checkout-sessions
Create Mobile Billing Checkout Sessions

api.mobile.billing.checkout-sessions.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/billing/checkout-sessions/finalize
Create Mobile Billing Checkout Sessions Finalize

api.mobile.billing.checkout-sessions.finalize

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/billing/open-portal
Create Mobile Billing Open Portal

api.mobile.billing.open-portal

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/billing/status
Get Mobile Billing status

api.mobile.billing.status

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/entitlements
Get Mobile Billing Entitlements

api.mobile.billing.entitlements

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/usage
Get Mobile Billing Usage

api.mobile.billing.usage

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile Inventory 3 ruter Inventarsok, detaljer og capability-endepunkter for mobil.
GET /api/v1/mobile/inventory/capabilities
Get Mobile Inventory capabilities

api.mobile.inventory.capabilities

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/inventory/search
Search Mobile Inventory

api.mobile.inventory.search

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/inventory/{resource_type}/{public_id}
Get Mobile Inventory Detail

api.mobile.inventory.detail

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile Sync 4 ruter Manifest, snapshots, mediaopplasting og mutations for mobil synk.
GET /api/v1/mobile/sync/manifest
Get Mobile Sync Manifest

api.mobile.sync.manifest

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/sync/snapshots
Create Mobile Sync Snapshots

api.mobile.sync.snapshots.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/sync/snapshots/{public_id}
Get Mobile Sync Snapshots

api.mobile.sync.snapshots.show

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/sync/snapshots/{public_id}/collections/{collection_key}/download
Download Mobile Sync Snapshots Collections

api.mobile.sync.snapshots.collections.download

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile Organizer 13 ruter Mobil planlegging, utførelse og feedback rundt organisering.
GET /api/v1/mobile/organizer/capabilities
Get Mobile Organizer capabilities

api.mobile.organizer.capabilities

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/execution/sessions
Create Mobile Organizer Execution Sessions

api.mobile.organizer.execution.sessions.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/organizer/execution/sessions/{session_public_id}
Get Mobile Organizer Execution Sessions

api.mobile.organizer.execution.sessions.show

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/execution/tasks/{task_public_id}/deviation
Report deviation for Mobile Organizer Execution Tasks

api.mobile.organizer.execution.tasks.deviation

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/execution/tasks/{task_public_id}/execute
Execute Mobile Organizer Execution Tasks

api.mobile.organizer.execution.tasks.execute

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/execution/tasks/{task_public_id}/skip
Create Mobile Organizer Execution Tasks Skip

api.mobile.organizer.execution.tasks.skip

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/execution/tasks/{task_public_id}/validate
Validate Mobile Organizer Execution Tasks

api.mobile.organizer.execution.tasks.validate

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/plans
Create Mobile Organizer Plans

api.mobile.organizer.plans.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

GET /api/v1/mobile/organizer/plans/{plan_public_id}
Get Mobile Organizer Plans

api.mobile.organizer.plans.show

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/plans/{plan_public_id}/replan
Replan Mobile Organizer Plans

api.mobile.organizer.plans.replan

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/plans/{plan_version_public_id}/approve
Approve Mobile Organizer Plans

api.mobile.organizer.plans.approve

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/plans/{plan_version_public_id}/feedback
Submit feedback for Mobile Organizer Plans

api.mobile.organizer.plans.feedback

Auth: Mobile Bearer · Rate limit: 120 requests per minute

POST /api/v1/mobile/organizer/plans/{plan_version_public_id}/reject
Reject Mobile Organizer Plans

api.mobile.organizer.plans.reject

Auth: Mobile Bearer · Rate limit: 120 requests per minute

Mobile Security 2 ruter Mobil sikkerhetsstatus, dataeksporter og cache purge-hendelser.
POST /api/v1/mobile/security/local-cache-purge-record
Create Mobile Security Local Cache Purge Record

api.mobile.security.local-cache-purge-record

Auth: Session or Mobile Bearer

GET /api/v1/mobile/security/status
Get Mobile Security status

api.mobile.security.status

Auth: Session or Mobile Bearer

Mobile Privacy 1 ruter Mobil personvernstatus.
GET /api/v1/mobile/privacy/status
Get Mobile Privacy status

api.mobile.privacy.status

Auth: Session or Mobile Bearer

Mobile Release 2 ruter Offentlige release-notes og versjonspolicy for Android-klienten.
GET /api/v1/mobile/release/notes
Get Mobile Release notes

api.mobile.release.notes

Auth: Public

GET /api/v1/mobile/release/status
Get Mobile Release status

api.mobile.release.status

Auth: Public

Mobile Support 1 ruter Supportflyt som mobilklient kan bruke i tvungne oppgraderingssituasjoner.
POST /api/v1/mobile/support/tickets
Create Mobile Support Tickets

api.mobile.support.tickets.store

Auth: Mobile Bearer · Rate limit: 120 requests per minute

AI 21 ruter Server-side AI-sok, svar, intake, vision og organizer.
POST /api/v1/ai/answer
Create AI Answer

api.ai.answer

Auth: Session · Rate limit: 20 requests per minute

GET /api/v1/ai/capabilities
Get Ai capabilities

api.ai.capabilities

Auth: Session

POST /api/v1/ai/intake/container-suggestions
Create AI Intake Container Suggestions

api.ai.intake.container-suggestions.store

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/intake/container-suggestions/{public_id}/accept
Create AI Intake Container Suggestions Accept

api.ai.intake.container-suggestions.accept

Auth: Session

POST /api/v1/ai/intake/item-suggestions
Create AI Intake Item Suggestions

api.ai.intake.item-suggestions.store

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/intake/item-suggestions/{public_id}/accept
Create AI Intake Item Suggestions Accept

api.ai.intake.item-suggestions.accept

Auth: Session

GET /api/v1/ai/organizer/capabilities
Get AI Organizer capabilities

api.ai.organizer.capabilities

Auth: Session

POST /api/v1/ai/organizer/plans
Create AI Organizer Plans

api.ai.organizer.plans.store

Auth: Session · Rate limit: 20 requests per minute

GET /api/v1/ai/organizer/plans/{plan_public_id}
Get AI Organizer Plans

api.ai.organizer.plans.show

Auth: Session

POST /api/v1/ai/organizer/plans/{plan_public_id}/replan
Replan AI Organizer Plans

api.ai.organizer.plans.replan

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/placement/container-to-slot
Create AI Placement Container To Slot

api.ai.placement.container-to-slot

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/placement/item-to-container
Create AI Placement Item To Container

api.ai.placement.item-to-container

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/search
Search Ai

api.ai.search

Auth: Session · Rate limit: 60 requests per minute

GET /api/v1/ai/search/{query_public_id}
Get AI Search

api.ai.search.show

Auth: Session

POST /api/v1/ai/search/{query_public_id}/feedback
Submit feedback for AI Search

api.ai.search.feedback

Auth: Session · Rate limit: 60 requests per minute

GET /api/v1/ai/vision/capabilities
Get AI Vision capabilities

api.ai.vision.capabilities

Auth: Session

POST /api/v1/ai/vision/feedback
Submit feedback for AI Vision

api.ai.vision.feedback

Auth: Session · Rate limit: 60 requests per minute

POST /api/v1/ai/vision/sessions
Create AI Vision Sessions

api.ai.vision.sessions.store

Auth: Session · Rate limit: 20 requests per minute

GET /api/v1/ai/vision/sessions/{public_id}
Get AI Vision Sessions

api.ai.vision.sessions.show

Auth: Session

POST /api/v1/ai/vision/sessions/{public_id}/analyze
Analyze AI Vision Sessions

api.ai.vision.sessions.analyze

Auth: Session · Rate limit: 20 requests per minute

POST /api/v1/ai/vision/sessions/{public_id}/images
Create AI Vision Sessions Images

api.ai.vision.sessions.images

Auth: Session · Rate limit: 20 requests per minute

Audit 2 ruter Audit trail og hendelsessporing.
GET /api/v1/audit
List Audit

api.audit.index

Auth: Session

GET /api/v1/audit/{public_id}
Get Audit

api.audit.show

Auth: Session

Billing 6 ruter Planer, checkout, fakturaer, customer portal og entitlements.
POST /api/v1/billing/checkout-sessions
Create Billing Checkout Sessions

api.billing.checkout-sessions.store

Auth: Session

POST /api/v1/billing/customer-portal-sessions
Create Billing Customer Portal Sessions

api.billing.customer-portal-sessions.store

Auth: Session

GET /api/v1/billing/invoices
Get Billing Invoices

api.billing.invoices

Auth: Session

GET /api/v1/billing/plans
Get Billing Plans

api.billing.plans

Auth: Session

GET /api/v1/billing/status
Get Billing status

api.billing.status

Auth: Session

GET /api/v1/entitlements
Get Entitlements

api.entitlements

Auth: Session

Billing Webhook 1 ruter Provider-webhooker for autoritativ abonnementsstatus.
POST /api/webhooks/billing/{provider_key}
Create Webhooks Billing

api.webhooks.billing

Auth: Stripe-Signature

Containers 11 ruter CRUD, plassering og historikk for beholdere.
GET /api/v1/containers
List Containers

api.containers.index

Auth: Session

POST /api/v1/containers
Create Containers

api.containers.store

Auth: Session

GET /api/v1/containers/{container}
Get Containers

api.containers.show

Auth: Session

PATCH /api/v1/containers/{container}
Update Containers

api.containers.update

Auth: Session

POST /api/v1/containers/{container}/archive
Archive Containers

api.containers.archive

Auth: Session

PATCH /api/v1/containers/{container}/fill-status
Update Containers Fill Status

api.containers.fill-status

Auth: Session

POST /api/v1/containers/{container}/move
Move Containers

api.containers.move

Auth: Session

GET /api/v1/containers/{container}/movements
Get Containers Movements

api.containers.movements

Auth: Session

POST /api/v1/containers/{container}/place
Create Containers Place

api.containers.place

Auth: Session

POST /api/v1/containers/{container}/restore
Restore Containers

api.containers.restore

Auth: Session

POST /api/v1/containers/{container}/unplace
Create Containers Unplace

api.containers.unplace

Auth: Session

Data Portability 10 ruter Eksporter, import-jobber og nedlastinger.
GET /api/v1/data-exports
List Data Exports

api.data-exports.index

Auth: Session

POST /api/v1/data-exports
Create Data Exports

api.data-exports.store

Auth: Session

DELETE /api/v1/data-exports/{public_id}
Delete Data Exports

api.data-exports.destroy

Auth: Session

GET /api/v1/data-exports/{public_id}
Get Data Exports

api.data-exports.show

Auth: Session

GET /api/v1/data-exports/{public_id}/download
Download Data Exports

api.data-exports.download

Auth: Session

POST /api/v1/data-imports
Create Data Imports

api.data-imports.store

Auth: Session

GET /api/v1/data-imports/{public_id}
Get Data Imports

api.data-imports.show

Auth: Session

POST /api/v1/data-imports/{public_id}/cancel
Cancel Data Imports

api.data-imports.cancel

Auth: Session

POST /api/v1/data-imports/{public_id}/confirm
Confirm Data Imports

api.data-imports.confirm

Auth: Session

POST /api/v1/data-imports/{public_id}/dry-run
Create Data Imports Dry Run

api.data-imports.dry-run

Auth: Session

Documentation 3 ruter Offentlig dokumentasjon og superadmin-artikler.
GET /api/v1/documentation/articles
List Documentation Articles

api.documentation.articles.index

Auth: Public

POST /api/v1/documentation/articles
Create Documentation Articles

api.documentation.articles.store

Auth: Session (role restricted)

POST /api/v1/documentation/articles/{public_id}/publish
Create Documentation Articles Publish

api.documentation.articles.publish

Auth: Session (role restricted)

Incidents 5 ruter Hendelser og maintenance windows for drift.
GET /api/v1/incidents
List Incidents

api.incidents.index

Auth: Session (role restricted)

POST /api/v1/incidents
Create Incidents

api.incidents.store

Auth: Session (role restricted)

POST /api/v1/incidents/maintenance-windows
Create Incidents Maintenance Windows

api.incidents.maintenance-windows.store

Auth: Session (role restricted)

POST /api/v1/incidents/{public_id}/resolve
Resolve Incidents

api.incidents.resolve

Auth: Session (role restricted)

POST /api/v1/incidents/{public_id}/updates
Create Incidents Updates

api.incidents.updates.store

Auth: Session (role restricted)

Items 23 ruter CRUD, media, produktkoder, mengde og bevegelser for gjenstander.
GET /api/v1/items
List Items

api.items.index

Auth: Session

POST /api/v1/items
Create Items

api.items.store

Auth: Session

GET /api/v1/items/{item}
Get Items

api.items.show

Auth: Session

PATCH /api/v1/items/{item}
Update Items

api.items.update

Auth: Session

POST /api/v1/items/{item}/archive
Archive Items

api.items.archive

Auth: Session

POST /api/v1/items/{item}/assign
Assign Items

api.items.assign

Auth: Session

PUT /api/v1/items/{item}/category
Update Items Category

api.items.category.update

Auth: Session

POST /api/v1/items/{item}/media
Create Items Media

api.items.media.store

Auth: Session

PATCH /api/v1/items/{item}/media/reorder
Reorder Items Media

api.items.media.reorder

Auth: Session

DELETE /api/v1/items/{item}/media/{media}
Delete Items Media

api.items.media.destroy

Auth: Session

POST /api/v1/items/{item}/media/{media}/primary
Set primary Items Media

api.items.media.primary

Auth: Session

POST /api/v1/items/{item}/media/{media}/rotate
Rotate Items Media

api.items.media.rotate

Auth: Session

POST /api/v1/items/{item}/move
Move Items

api.items.move

Auth: Session

GET /api/v1/items/{item}/movements
Get Items Movements

api.items.movements

Auth: Session

POST /api/v1/items/{item}/product-codes
Create Items Product Codes

api.items.product-codes.store

Auth: Session

DELETE /api/v1/items/{item}/product-codes/{productCode}
Delete Items Product Codes

api.items.product-codes.destroy

Auth: Session

PATCH /api/v1/items/{item}/product-codes/{productCode}
Update Items Product Codes

api.items.product-codes.update

Auth: Session

POST /api/v1/items/{item}/product-codes/{productCode}/primary
Set primary Items Product Codes

api.items.product-codes.primary

Auth: Session

PATCH /api/v1/items/{item}/quantity
Update Items Quantity

api.items.quantity

Auth: Session

GET /api/v1/items/{item}/quantity-history
Get Items Quantity History

api.items.quantity-history

Auth: Session

POST /api/v1/items/{item}/restore
Restore Items

api.items.restore

Auth: Session

PUT /api/v1/items/{item}/tags
Update Items Tags

api.items.tags.update

Auth: Session

POST /api/v1/items/{item}/unassign
Unassign Items

api.items.unassign

Auth: Session

Labels 5 ruter QR/etikettforhandsvisning, printjobber og maler.
POST /api/v1/labels/preview
Create Labels Preview

api.labels.preview

Auth: Session

POST /api/v1/labels/print-jobs
Create Labels Print Jobs

api.labels.print-jobs.store

Auth: Session

GET /api/v1/labels/print-jobs/{printJob}
Get Labels Print Jobs

api.labels.print-jobs.show

Auth: Session

GET /api/v1/labels/print-jobs/{printJob}/download
Download Labels Print Jobs

api.labels.print-jobs.download

Auth: Session

GET /api/v1/labels/templates
List Labels Templates

api.labels.templates.index

Auth: Session

Launch Readiness 3 ruter Go/no-go og sjekklister for release readiness.
POST /api/v1/launch-readiness/checklist/{public_id}/complete
Complete Launch Readiness Checklist

api.launch-readiness.checklist.complete

Auth: Session (role restricted)

POST /api/v1/launch-readiness/go-no-go
Create Launch Readiness Go No Go

api.launch-readiness.go-no-go

Auth: Session (role restricted)

GET /api/v1/launch-readiness/summary
Get Launch Readiness summary

api.launch-readiness.summary

Auth: Session (role restricted)

Media 1 ruter Privat medialevering og varianter.
GET /api/v1/media/{media}/{variant}
Get Media

api.media.show

Auth: Session

Observability 3 ruter Driftsmetrikker og manuelle observability-kjoringer.
GET /api/v1/observability/metrics
List Observability Metrics

api.observability.metrics.index

Auth: Session (role restricted)

POST /api/v1/observability/run-checks
Create Observability Run Checks

api.observability.run-checks

Auth: Session (role restricted)

GET /api/v1/observability/summary
Get Observability summary

api.observability.summary

Auth: Session (role restricted)

Operations 4 ruter Backup health, attestasjoner, restore drills og readiness.
POST /api/v1/operations/backup-attestations
Create Operations Backup Attestations

api.operations.backup-attestations.store

Auth: Session (role restricted)

GET /api/v1/operations/backup-health
Get Operations Backup Health

api.operations.backup-health

Auth: Session (role restricted)

GET /api/v1/operations/readiness
Get Operations Readiness

api.operations.readiness

Auth: Session (role restricted)

POST /api/v1/operations/restore-drills
Create Operations Restore Drills

api.operations.restore-drills.store

Auth: Session (role restricted)

Organization 9 ruter Plan-godkjenning, feedback og guidet execution.
POST /api/v1/organization/execution/sessions
Create Organization Execution Sessions

api.organization.execution.sessions.store

Auth: Session

GET /api/v1/organization/execution/sessions/{session_public_id}
Get Organization Execution Sessions

api.organization.execution.sessions.show

Auth: Session

POST /api/v1/organization/execution/tasks/{task_public_id}/deviation
Report deviation for Organization Execution Tasks

api.organization.execution.tasks.deviation

Auth: Session

POST /api/v1/organization/execution/tasks/{task_public_id}/execute
Execute Organization Execution Tasks

api.organization.execution.tasks.execute

Auth: Session

POST /api/v1/organization/execution/tasks/{task_public_id}/skip
Create Organization Execution Tasks Skip

api.organization.execution.tasks.skip

Auth: Session

POST /api/v1/organization/execution/tasks/{task_public_id}/validate
Validate Organization Execution Tasks

api.organization.execution.tasks.validate

Auth: Session

POST /api/v1/organization/plans/{plan_version_public_id}/approve
Approve Organization Plans

api.organization.plans.approve

Auth: Session

POST /api/v1/organization/plans/{plan_version_public_id}/feedback
Submit feedback for Organization Plans

api.organization.plans.feedback

Auth: Session

POST /api/v1/organization/plans/{plan_version_public_id}/reject
Reject Organization Plans

api.organization.plans.reject

Auth: Session

Privacy 4 ruter Privacy requests, AI-purge og personvernstatus.
POST /api/v1/privacy/ai-purge
Create Privacy AI Purge

api.privacy.ai-purge

Auth: Session

POST /api/v1/privacy/requests
Create Privacy Requests

api.privacy.requests.store

Auth: Session

POST /api/v1/privacy/requests/{public_id}/cancel
Cancel Privacy Requests

api.privacy.requests.cancel

Auth: Session

GET /api/v1/privacy/status
Get Privacy status

api.privacy.status

Auth: Session

Product Codes 1 ruter Produktoppslag og kodebehandling.
GET /api/v1/product-codes/resolve
Resolve Product Codes

api.product-codes.resolve

Auth: Session

Quality 3 ruter Kvalitetslop, manuelle checks og oppsummeringer.
POST /api/v1/quality/manual-checks
Create Quality Manual Checks

api.quality.manual-checks.store

Auth: Session (role restricted)

GET /api/v1/quality/runs
List Quality Runs

api.quality.runs.index

Auth: Session (role restricted)

GET /api/v1/quality/summary
Get Quality summary

api.quality.summary

Auth: Session (role restricted)

Release 5 ruter Release candidates og gates.
GET /api/v1/release/candidates
List Release Candidates

api.release.candidates.index

Auth: Session (role restricted)

POST /api/v1/release/candidates
Create Release Candidates

api.release.candidates.store

Auth: Session (role restricted)

POST /api/v1/release/candidates/{public_id}/approve
Approve Release Candidates

api.release.candidates.approve

Auth: Session (role restricted)

POST /api/v1/release/candidates/{public_id}/reject
Reject Release Candidates

api.release.candidates.reject

Auth: Session (role restricted)

POST /api/v1/release/candidates/{public_id}/run-gates
Create Release Candidates Run Gates

api.release.candidates.run-gates

Auth: Session (role restricted)

Scanning 11 ruter Scan resolve, scan sessions, actions og historikk.
GET /api/v1/scan-actions/{publicId}
Get Scan Actions

api.scan-actions.show

Auth: Session or Mobile Bearer

POST /api/v1/scan-sessions
Create Scan Sessions

api.scan-sessions.store

Auth: Session or Mobile Bearer · Rate limit: 30 requests per minute

GET /api/v1/scan-sessions/{publicId}
Get Scan Sessions

api.scan-sessions.show

Auth: Session or Mobile Bearer

POST /api/v1/scan-sessions/{publicId}/cancel
Cancel Scan Sessions

api.scan-sessions.cancel

Auth: Session or Mobile Bearer

POST /api/v1/scan-sessions/{publicId}/confirm
Confirm Scan Sessions

api.scan-sessions.confirm

Auth: Session or Mobile Bearer · Rate limit: Configurable per minute, default 30

POST /api/v1/scan-sessions/{publicId}/scan
Create Scan Sessions Scan

api.scan-sessions.scan

Auth: Session or Mobile Bearer · Rate limit: Configurable per minute, default 180

POST /api/v1/scan-sessions/{publicId}/select-candidate
Create Scan Sessions Select Candidate

api.scan-sessions.select-candidate

Auth: Session or Mobile Bearer

DELETE /api/v1/scan-sessions/{publicId}/targets/{roleKey}
Delete Scan Sessions Targets

api.scan-sessions.targets.destroy

Auth: Session or Mobile Bearer

GET /api/v1/scans/capabilities
Get Scans capabilities

api.scans.capabilities

Auth: Session or Mobile Bearer

GET /api/v1/scans/history
Get Scans History

api.scans.history

Auth: Session or Mobile Bearer · Rate limit: 60 requests per minute

POST /api/v1/scans/resolve
Resolve Scans

api.scans.resolve

Auth: Session or Mobile Bearer · Rate limit: Configurable per minute, default 180

Security 10 ruter MFA, session security, mobile devices og CSP-rapporter.
POST /api/v1/security/csp-report
Create Security Csp Report

api.security.csp-report

Auth: Public · Rate limit: 30 requests per minute

POST /api/v1/security/mfa/confirm
Confirm Security MFA

api.security.mfa.confirm

Auth: Session · Rate limit: 10 requests per 1 minute(s)

POST /api/v1/security/mfa/disable
Create Security MFA Disable

api.security.mfa.disable

Auth: Session · Rate limit: 10 requests per 1 minute(s)

POST /api/v1/security/mfa/recovery-code
Create Security MFA Recovery Code

api.security.mfa.recovery-code

Auth: Session · Rate limit: 10 requests per 1 minute(s)

POST /api/v1/security/mfa/setup
Create Security MFA Setup

api.security.mfa.setup

Auth: Session · Rate limit: 6 requests per 1 minute(s)

DELETE /api/v1/security/mobile-devices/{device_public_id}
Delete Security Mobile Devices

api.security.mobile-devices.destroy

Auth: Session

GET /api/v1/security/sessions
List Security Sessions

api.security.sessions.index

Auth: Session

POST /api/v1/security/sessions/revoke-others
Create Security Sessions Revoke Others

api.security.sessions.revoke-others

Auth: Session

DELETE /api/v1/security/sessions/{session_public_id}
Delete Security Sessions

api.security.sessions.destroy

Auth: Session

GET /api/v1/security/status
Get Security status

api.security.status

Auth: Session

Structure 16 ruter Lagerstruktur: lokasjoner, reoler, hyller, plasser og tree/search.
GET /api/v1/structure/locations
List Structure Locations

api.structure.locations.index

Auth: Session

POST /api/v1/structure/locations
Create Structure Locations

api.structure.locations.store

Auth: Session

GET /api/v1/structure/locations/{location}
Get Structure Locations

api.structure.locations.show

Auth: Session

PATCH /api/v1/structure/locations/{location}
Update Structure Locations

api.structure.locations.update

Auth: Session

POST /api/v1/structure/rack-builder
Create Structure Builder

api.structure.builder.store

Auth: Session

POST /api/v1/structure/rack-builder/preview
Create Structure Builder Preview

api.structure.builder.preview

Auth: Session

POST /api/v1/structure/racks
Create Structure Racks

api.structure.racks.store

Auth: Session

POST /api/v1/structure/rows
Create Structure Rows

api.structure.rows.store

Auth: Session

GET /api/v1/structure/search
Search Structure

api.structure.search

Auth: Session

POST /api/v1/structure/shelves
Create Structure Shelves

api.structure.shelves.store

Auth: Session

POST /api/v1/structure/slots
Create Structure Slots

api.structure.slots.store

Auth: Session

GET /api/v1/structure/slots/{slot}
Get Structure Slots

api.structure.slots.show

Auth: Session

PATCH /api/v1/structure/slots/{slot}
Update Structure Slots

api.structure.slots.update

Auth: Session

GET /api/v1/structure/summary
Get Structure summary

api.structure.summary

Auth: Session

GET /api/v1/structure/tree
Get Structure Tree

api.structure.tree

Auth: Session

POST /api/v1/structure/zones
Create Structure Zones

api.structure.zones.store

Auth: Session

Superadmin 8 ruter Superadmin-oversikter, support sessions og manuelle overstyringer.
GET /api/v1/superadmin/households
Get Superadmin Households

api.superadmin.households

Auth: Session (role restricted)

POST /api/v1/superadmin/households/{household_public_id}/manual-overrides
Create Superadmin Manual Overrides

api.superadmin.manual-overrides.store

Auth: Session (role restricted)

DELETE /api/v1/superadmin/manual-overrides/{override_public_id}
Delete Superadmin Manual Overrides

api.superadmin.manual-overrides.destroy

Auth: Session (role restricted)

GET /api/v1/superadmin/overview
Get Superadmin Overview

api.superadmin.overview

Auth: Session (role restricted)

GET /api/v1/superadmin/subscriptions
Get Superadmin Subscriptions

api.superadmin.subscriptions

Auth: Session (role restricted)

POST /api/v1/superadmin/support-sessions
Create Superadmin Support Sessions

api.superadmin.support-sessions.store

Auth: Session (role restricted)

POST /api/v1/superadmin/support-sessions/{session_public_id}/end
Create Superadmin Support Sessions End

api.superadmin.support-sessions.end

Auth: Session (role restricted)

GET /api/v1/superadmin/users
Get Superadmin Users

api.superadmin.users

Auth: Session (role restricted)

Support 5 ruter Support tickets, kommentarer, vedlegg og diagnostikk.
GET /api/v1/support/tickets
List Support Tickets

api.support.tickets.index

Auth: Session

POST /api/v1/support/tickets
Create Support Tickets

api.support.tickets.store

Auth: Session

POST /api/v1/support/tickets/{public_id}/attachments
Create Support Tickets Attachments

api.support.tickets.attachments.store

Auth: Session

POST /api/v1/support/tickets/{public_id}/comments
Create Support Tickets Comments

api.support.tickets.comments.store

Auth: Session

POST /api/v1/support/tickets/{public_id}/diagnostics
Create Support Tickets Diagnostics

api.support.tickets.diagnostics.store

Auth: Session

Taxonomy 9 ruter Kategorier, tags og assignments.
GET /api/v1/taxonomy/categories
List Taxonomy Categories

api.taxonomy.categories.index

Auth: Session

POST /api/v1/taxonomy/categories
Create Taxonomy Categories

api.taxonomy.categories.store

Auth: Session

PATCH /api/v1/taxonomy/categories/{category}
Update Taxonomy Categories

api.taxonomy.categories.update

Auth: Session

POST /api/v1/taxonomy/categories/{category}/archive
Archive Taxonomy Categories

api.taxonomy.categories.archive

Auth: Session

POST /api/v1/taxonomy/categories/{category}/move
Move Taxonomy Categories

api.taxonomy.categories.move

Auth: Session

GET /api/v1/taxonomy/tags
List Taxonomy Tags

api.taxonomy.tags.index

Auth: Session

POST /api/v1/taxonomy/tags
Create Taxonomy Tags

api.taxonomy.tags.store

Auth: Session

PATCH /api/v1/taxonomy/tags/{tag}
Update Taxonomy Tags

api.taxonomy.tags.update

Auth: Session

POST /api/v1/taxonomy/tags/{tag}/archive
Archive Taxonomy Tags

api.taxonomy.tags.archive

Auth: Session

Usage 1 ruter Bruksmetrikker og kvoteforbruk.
GET /api/v1/usage
Get Usage

api.usage

Auth: Session