LIVE · AUDIT-KÆDE · EU-HOSTET
SYSTEM · 99,99 % OPPETID
v 1.0 ↗ FREMSTILLET I EU
BASE-URL
https://api.nexbasira.com/v1
🇪🇺 Hostet i EU SemVer · v1 stabil Min. 12 måneders bagudkompatibilitet

Din første session på 5 minutter.

# 1. Opret en inspektionssession
curl -X POST https://api.nexbasira.com/v1/sessions \
-H "Authorization: Bearer nbx_live_sk_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"type": "field_inspection",
"reference": "INS-42871",
"participant": {
"name": "Marie L.",
"channel": "sms",
"phone": "+33612345678"
},
"callbacks": {
"session.completed": "https://your-app.com/webhooks/nbx"
}
}'
# Svar 201 — sessionen er oprettet, SMS-linket er på vej
{
"id": "sess_42871",
"status": "pending",
"join_url": "https://join.nexbasira.com/s/abc123def...",
"expires_at": "2026-05-26T14:00:00Z"
}
import Nexbasira from '@nexbasira/node';
const nbx = new Nexbasira({ apiKey: process.env.NBX_KEY });
const session = await nbx.sessions.create({
type: 'field_inspection',
reference: 'INS-42871',
participant: {
name: 'Marie L.',
channel: 'sms',
phone: '+33612345678',
},
callbacks: {
'session.completed': 'https://your-app.com/webhooks/nbx',
},
});
console.log(session.join_url);
// → https://join.nexbasira.com/s/abc123def...
// Iterér over de seneste sessioner (async iterator)
for await (const s of nbx.sessions.list({ status: 'completed' })) {
console.log(s.id, s.completed_at);
}
from nexbasira import Nexbasira
nbx = Nexbasira(api_key=os.environ["NBX_KEY"])
session = nbx.sessions.create(
type="field_inspection",
reference="INS-42871",
participant={
"name": "Marie L.",
"channel": "sms",
"phone": "+33612345678",
},
callbacks={
"session.completed": "https://your-app.com/webhooks/nbx",
},
)
print(session.join_url)
# → https://join.nexbasira.com/s/abc123def...
# Hent bevismappen når den er signeret
evidence = nbx.evidence.retrieve(session_id=session.id)
print(evidence.pdf_url, evidence.audit_chain_hash)
import { NexbasiraEmbed } from '@nexbasira/react';
export function InspectionView({ sessionId }) {
return (
<NexbasiraEmbed
sessionId={sessionId}
onCapture={(evt) => trackPhoto(evt)}
onSigned={(evt) => redirect(evt.evidence_url)}
theme="dark"
brand={{ logo: "/logo.svg", accent: "#00E5A0" }}
/>
);
}
// Embed'en håndterer WebRTC, GPS-fangst, eIDAS-signatur.
// Du styrer UI'et rundt om. White-label som standard.

Alt du kan styre fra API'et.

POST GET DELETE

/sessions

Opret, list, hent og afslut en inspektionssession. SMS- / e-mailinvitationer.

GET

/evidence

List en sessions beviser, download den signerede PDF, hent blockchain-hash.

GET

/whiteboards

Hent annotationer som SVG / PNG pr. session. Tidsstemplet eksport.

POST GET

/webhooks

Registrér et endpoint, rotér hemmeligheden, test-fire. HMAC-SHA256-signatur.

GET PATCH

/branding

Tilpas logo, farver og domæne til white-label-tilstand.

GET

/org

Læs organisationens metadata, kvoter, medlemmer og RBAC-roller.

HMAC-SHA256 signerede webhooks.

Stripe-stil format med 5 minutters urtolerance. Hemmelighed krypteret i hvile. Eksponentielle gentagelser med backoff op til 24 t.

Tilgængelige events
session.createdSession oprettet, link sendt
session.joinedDeltager tilsluttet
session.evidence.capturedNyt foto / annotation
session.signedeIDAS-signatur påført
session.anchoredHash registreret på chain
session.completedPDF klar til download
Signatureksempel
# Header sendt af Nexbasira
Nbx-Signature: t=1714060800,v1=5257a869e7ec...
# Verifikation (Node.js)
import { verifyWebhook } from '@nexbasira/node';
app.post('/webhooks/nbx', (req, res) => {
const event = verifyWebhook(
req.rawBody,
req.headers['nbx-signature'],
process.env.NBX_WEBHOOK_SECRET
);
if (event.type === 'session.completed') {
downloadEvidence(event.data.id);
}
res.json({ ok: true });
});

4 typede, vedligeholdte SDK'er.

@nexbasira/node
v2.6.0 · Node 18+
npm install @nexbasira/node
  • Typer genereret fra OpenAPI
  • Async iterator-paginering
  • Indbygget webhook-verifikation
nexbasira (Python)
v2.6.0 · Python 3.10+
pip install nexbasira
  • Pydantic v2-modeller
  • Async- + sync-tilstand
  • Typede fejl efter kode
@nexbasira/react
v2.6.0 · React 18+
npm install @nexbasira/react
  • Nøglefærdig <Embed/>-komponent
  • Hooks useSession, useEvidence
  • Tailwind-kompatibel theming
@nexbasira/embed
v2.6.0 · Vanilla JS
<script src="cdn.nbx.com/embed.js"></script>
  • Intet framework, <30 KB
  • Europa-distribueret CDN
  • Kompatibel med alle frameworks

Forbind Nexbasira til din stack.

🔑

OIDC + SAML 2.0 SSO

Just-in-time provisioning med domæne-allowlist og standardrolle.

👥

SCIM 2.0

Automatisk provisioning af brugere og grupper. Bearer token pr. organisation.

📨

Webhooks & verifikation

HMAC-verifikationshelpers i alle SDK'er. Eksponentielle gentagelser.

🏠

Self-hosting

Docker + Caddy-stack dokumenteret. Tilgængelig på Enterprise-planen.

🔄

Idempotens

Idempotency-Key-header på alle POST'er. Ingen dubletter, nogensinde.

📊

Rate limits

X-RateLimit-*-headers på hvert svar. Kvoter pr. nøgle + pr. organisation.

OpenAPI 3.1

Genereret, offentligt, versioneret skema.

Download det filtrerede OpenAPI 3.1-skema (kun offentlige operationer) og generér dine typer automatisk.

https://api.nexbasira.com/v1/openapi.json
# TypeScript-typer
npx openapi-typescript \
https://api.nexbasira.com/v1/openapi.json \
-o src/nbx-types.ts
# Pydantic-modeller
datamodel-codegen \
--url https://api.nexbasira.com/v1/openapi.json \
--output-model-type pydantic_v2.BaseModel \
--output nbx_models.py

SemVer-URL-garanteret stabilitet

Brydende ændringer lever under et nyt præfiks (/v2/) med mindst 12 måneders overlap, før den forrige version udfases. Additive ændringer (nye valgfrie felter, nye endpoints, nye event-typer) udrulles på plads. Vores SDK'er behandler ukendte felter som fremadkompatible.

Klar til at integrere Nexbasira?

Få din sandbox-API-nøgle på 30 sekunder, uden kreditkort.