Home/Docs

Developers

One OpenAPI contract per service. Real method + path.

Every capability group is a GA service with a machine-readable OpenAPI spec. The catalogue below groups the real endpoints by capability; auth is a platform-standard SS-01 bearer token plus X-Tenant-Id, and money/usage writes carry an Idempotency-Key.

Auth & quickstart

Every call: a bearer token and a tenant header.

Auth model

  • Authorization: Bearer $TOKEN — SS-01 OIDC identity, issued at signup / from an SS-05 Vault-backed API key.
  • X-Tenant-Id: <tenant> — required on every tenant-scoped route (ADR-0019). A cross-tenant read returns zero rows.
  • Idempotency-Key: <uuid> — on money/usage mutations (ADR-0039); a retry double-counts nothing.
  • Base URL — https://api.brivas.io/api/v1 externally (via SS-07 gateway); in-mesh each service has its own host:port.
curl quickstart — route · send · screen
# Auth: an SS-01 bearer token + your tenant header.
export TOKEN=...            # from signup / an SS-05 Vault-backed API key
export TENANT=acme

# Select a least-cost carrier route for an outbound call (SS-40)
curl -X POST "https://api.brivas.io/api/v1/routes/select" \
  -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
  -H "Content-Type: application/json" \
  -d '{"destination":"+2348044550012","strategy":"least_cost"}'

# Send a governed message over the SMSC / OTT plane (SS-18)
curl -X POST "https://api.brivas.io/api/v1/send" \
  -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"recipient":"+2348030001122","channel":"sms","body":"Hi from Brivas"}'

# Screen an A2P message for fraud on the same plane (SS-38)
curl -X POST "https://api.brivas.io/api/v1/voxguard/screen" \
  -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
  -H "Content-Type: application/json" \
  -d '{"sender":"BRIVAS","recipient":"+2348030001122","body":"..."}'

No bespoke SDK is required — every endpoint is a plain HTTPS call with a bearer token. Generate a client from any service's openapi.json, or use curl as below. The same contract powers the platform's own console.

Endpoint catalogue

Real method + path, grouped by capability.

The catalogue is generated from the same capability data that drives the platform deep-dives — grouped by owning service, every entry a real endpoint from that service's OpenAPI contract.

Voice softswitchSS-4073 ops

services/routing/openapi.json · 55 endpoints shown · deep-dive →

  • POST/api/v1/routes
  • POST/api/v1/routes/select
  • POST/api/v1/select
  • GET/api/v1/carriers
  • POST/api/v1/carriers
  • POST/api/v1/carriers/{name}/call-start
  • POST/api/v1/carriers/{name}/call-end
  • POST/api/v1/carriers/{name}/result
  • POST/api/v1/ratedeck
  • GET/api/v1/routing/policy
  • POST/api/v1/routing/policy
  • PUT/api/v1/min-quality
  • GET/api/v1/kpis
  • GET/api/v1/dialpeers
  • POST/api/v1/dialpeers
  • POST/api/v1/dialpeers/decide
  • PUT/api/v1/dialpeers/{id}
  • GET/api/v1/gateway-groups
  • POST/api/v1/gateway-groups
  • GET/api/v1/numberlists
  • POST/api/v1/numberlists
  • POST/api/v1/customer-auth
  • GET/api/v1/stir/pki/credential
  • POST/api/v1/stir/pki/credential
  • POST/api/v1/stir/pki/sign
  • POST/api/v1/stir/pki/verify
  • GET/api/v1/stir/pki/stats
  • POST/api/v1/stir/policy
  • POST/api/v1/stir/verify
  • GET/api/v1/stir/stats
  • POST/api/v1/sip/register
  • GET/api/v1/sip/domains
  • POST/api/v1/sip/domains
  • GET/api/v1/sip/devices
  • GET/api/v1/sip/locations/{aor}
  • POST/api/v1/sbc/invite
  • GET/api/v1/sbc/gateways
  • GET/api/v1/sbc/attempts
  • GET/api/v1/sbc/metrics
  • POST/api/v1/sessions/invite
  • GET/api/v1/sessions/{id}
  • POST/api/v1/sessions/{id}/answer
  • POST/api/v1/sessions/{id}/terminate
  • POST/api/v1/sessions/{id}/failover
  • POST/api/v1/rtp/offer
  • GET/api/v1/rtp/{call_id}
  • POST/api/v1/rtp/{call_id}/release
  • POST/api/v1/sigtran/isup/iam-to-invite
  • POST/api/v1/sigtran/isup/map-cause
  • GET/api/v1/sigtran/linksets
  • POST/api/v1/sigtran/linksets
  • POST/api/v1/sigtran/linksets/{id}/status
  • POST/api/v1/webrtc/sessions
  • GET/api/v1/webrtc/sessions/{id}
  • POST/api/v1/webrtc/turn-credential

Programmable apps & USSDSS-4140 ops

services/vas/openapi.json · 38 endpoints shown · deep-dive →

  • POST/api/v1/ussd/flows
  • PUT/api/v1/menu/{id}
  • GET/api/v1/sce/connectors
  • POST/api/v1/sce/connectors
  • GET/api/v1/sce/invocations
  • POST/api/v1/sessions
  • POST/api/v1/sessions/{id}/input
  • POST/api/v1/sessions/{id}/charge
  • GET/api/v1/voice/apps
  • POST/api/v1/voice/apps
  • GET/api/v1/voice/bindings
  • POST/api/v1/voice/bindings
  • POST/api/v1/voice/sessions
  • GET/api/v1/voice/sessions/{id}
  • POST/api/v1/voice/sessions/{id}/advance
  • GET/api/v1/pbx/subscribers
  • POST/api/v1/pbx/subscribers
  • POST/api/v1/acd/queues
  • POST/api/v1/acd/queues/{id}/enqueue
  • POST/api/v1/acd/queues/{id}/assign
  • GET/api/v1/acd/queues/{id}/stats
  • POST/api/v1/conversations
  • GET/api/v1/conversations/{id}
  • POST/api/v1/conversations/{id}/turns
  • POST/api/v1/conversations/{id}/escalate
  • POST/api/v1/a2p
  • POST/api/v1/messages/{id}/dlr
  • GET/api/v1/dlr-rate
  • POST/api/v1/dnd
  • POST/api/v1/proactive
  • GET/api/v1/subscriptions
  • POST/api/v1/subscriptions
  • POST/api/v1/subscriptions/{id}/confirm
  • POST/api/v1/subscriptions/{id}/renew
  • POST/api/v1/subscriptions/{id}/cancel
  • POST/api/v1/providers
  • POST/api/v1/providers/{id}/settle
  • GET/api/v1/settlements

Messaging & SMSCSS-1830 ops

services/notifications/openapi.json · 28 endpoints shown · deep-dive →

  • GET/api/v1/smsc/rules
  • POST/api/v1/smsc/rules
  • POST/api/v1/smsc/route
  • POST/api/v1/smsc/split
  • POST/api/v1/smsc/submit
  • POST/api/v1/smsc/dlr
  • GET/api/v1/smsc/dlr/{id}
  • POST/api/v1/smsc/retries/due
  • GET/api/v1/smsc/retry-policy
  • POST/api/v1/smsc/retry-policy
  • POST/api/v1/send
  • POST/api/v1/intents
  • POST/api/v1/templates
  • POST/api/v1/consent
  • POST/api/v1/critical-senders
  • POST/api/v1/suppressions
  • POST/api/v1/unsubscribe
  • GET/api/v1/messages
  • GET/api/v1/messages/{id}
  • POST/api/v1/messages/{id}/failover
  • POST/api/v1/messages/{id}/receipt
  • GET/api/v1/ott/channels
  • POST/api/v1/ott/channels
  • POST/api/v1/ott/send
  • POST/api/v1/ott/inbound
  • POST/api/v1/ott/templates
  • POST/api/v1/ott/templates/{name}/approve
  • GET/api/v1/ott/window

Fraud & revenue assuranceSS-3826 ops

services/fraud/openapi.json · 26 endpoints shown · deep-dive →

  • POST/api/v1/voxguard/screen
  • GET/api/v1/voxguard/config
  • POST/api/v1/voxguard/config
  • GET/api/v1/voxguard/findings
  • GET/api/v1/voxguard/leakage
  • POST/api/v1/acm/calls
  • GET/api/v1/acm/threats
  • GET/api/v1/acm/sdhf
  • GET/api/v1/acm/config
  • POST/api/v1/acm/config
  • POST/api/v1/telecom/cdr
  • GET/api/v1/telecom/config
  • POST/api/v1/telecom/config
  • POST/api/v1/score
  • POST/api/v1/rules
  • PUT/api/v1/ceiling
  • POST/api/v1/detectors
  • POST/api/v1/signals
  • POST/api/v1/decisions/{id}/confirm
  • POST/api/v1/actions
  • POST/api/v1/actions/{id}/approve
  • POST/api/v1/actions/{id}/reverse
  • POST/api/v1/actions/{id}/dispose
  • POST/api/v1/ra/reconcile
  • POST/api/v1/ra/{id}/recovery
  • GET/api/v1/telecom/leakage

CDR mediation & ratingSS-3622 ops

services/mediation/openapi.json · 21 endpoints shown · deep-dive →

  • POST/api/v1/cdr
  • POST/api/v1/cdrs
  • POST/api/v1/correlate/{cid}
  • PUT/api/v1/ratecards/{type}
  • GET/api/v1/rating/deck
  • POST/api/v1/rating/deck
  • POST/api/v1/rating/rate
  • GET/api/v1/rating/history
  • POST/api/v1/rating/rerate
  • POST/api/v1/cdr/sink
  • GET/api/v1/cdr/spool
  • POST/api/v1/cdr/replay
  • POST/api/v1/reprocess
  • GET/api/v1/suspense
  • GET/api/v1/suspense/health
  • POST/api/v1/suspense/{id}/repair
  • POST/api/v1/suspense/{id}/quarantine
  • GET/api/v1/reconcile
  • POST/api/v1/reconcile/source
  • GET/api/v1/reconcile/cases
  • GET/api/v1/cdrs/{id}/journey

Charging & OCSSS-1034 ops

services/billing/openapi.json · 24 endpoints shown · deep-dive →

  • GET/api/v1/wallet/{sub}
  • POST/api/v1/wallet/{sub}/authorize
  • POST/api/v1/wallet/{sub}/topup
  • POST/api/v1/wallet/{sub}/expire
  • POST/api/v1/wallet/charge/{token}/debit
  • POST/api/v1/wallet/charge/{token}/terminate
  • GET/api/v1/rate/at
  • POST/api/v1/plans
  • POST/api/v1/subscribe
  • GET/api/v1/entitlements/{item}
  • POST/api/v1/usage
  • POST/api/v1/usage/lines
  • POST/api/v1/invoices/finalize
  • GET/api/v1/invoices
  • GET/api/v1/invoice
  • POST/api/v1/proration
  • POST/api/v1/recognize
  • GET/api/v1/credits
  • POST/api/v1/credits
  • POST/api/v1/dunning/{invoice}/start
  • POST/api/v1/dunning/advance
  • POST/api/v1/dunning/{invoice}/settle
  • POST/api/v1/tax/exemptions
  • GET/api/v1/tax/moss/{quarter}

Media pipelineSS-4221 ops

services/media/openapi.json · 21 endpoints shown · deep-dive →

  • GET/api/v1/assets
  • POST/api/v1/assets
  • GET/api/v1/assets/{id}
  • POST/api/v1/assets/{id}/scan
  • GET/api/v1/profiles
  • POST/api/v1/profiles
  • POST/api/v1/assets/{id}/transcode
  • POST/api/v1/assets/{id}/package
  • GET/api/v1/assets/{id}/manifest
  • GET/api/v1/assets/{id}/manifest.m3u8
  • POST/api/v1/playback/sessions
  • GET/api/v1/playback/sessions/{token}
  • POST/api/v1/playback/sessions/{token}/heartbeat
  • POST/api/v1/playback/sessions/{token}/end
  • POST/api/v1/assets/{id}/deliver
  • POST/api/v1/assets/{id}/access
  • GET/api/v1/assets/{id}/jobs
  • POST/api/v1/jobs/{job}/complete
  • POST/api/v1/jobs/{job}/fail
  • POST/api/v1/jobs/{job}/resume
  • POST/api/v1/assets/{id}/ocr