API
referentie.
312 eindpunten, volledige OpenAPI-specificatie, idempotentie bij elke mutatie en een openbaar uptime-contract. Geen zwarte dozen.
"color:#22D3EE">curl "color:#22D3EE">-X "kleur: #34D399; lettertypegewicht: 600">POST https://api.rozper.com/v2/calls\
"kleur:#22D3EE">-H "Machtiging: Drager $ROZPER_API_KEY" \
"kleur:#22D3EE">-H "Inhoudstype: applicatie/json" \
"kleur:#22D3EE">-d '{
"naar": "+14155551234",
"van": "+12025550100",
"url": "https://uw.app/voice/antwoord"
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}Tokens aan toonder.
Bereikt. Draaibaar.
Elke aanvraag heeft een projectsleutel als Bearer-token. Sleutels zijn scoped (lezen, schrijven, factureren), roteerbaar zonder downtime en kunnen via IP worden vastgemaakt vanaf het dashboard.
- Sleutels per omgeving (test/live)
- OAuth 2.0-clientreferenties worden ondersteund
- Wederzijdse TLS beschikbaar op Enterprise
# .env → never commit me
ROZPER_API_KEY=sk_live_8FzqQ...XW7p
# request
curl https://api.rozper.com/v2/account \
-H "Authorization: Bearer $ROZPER_API_KEY"
# 200 OK
{
"id": "acct_01HXY7ZQ9V3J3X8K5N",
"scopes": ["calls.write", "messages.write", "numbers.read"],
"rate_limit": { "limit": 1000, "remaining": 998, "reset": 1715520000 }
}Verken elk eindpunt.
Maak een oproep
Breng een uitgaande PSTN-oproep tot stand. Keert onmiddellijk terug met een oproepobject in de wachtrij: luister op webhooks naar statuswijzigingen.
tosnaarvereistE.164 bestemmingsnummer.
fromsnaarvereistGeverifieerd of gehuurd Rozper-nummer.
urlsnaarHTTPS-eindpunt dat gesproken instructies retourneert wanneer de oproep verbinding maakt.
recordBooleaansNeem beide benen op in uw opslag. Standaard onwaar.
timeoutgeheel getalBel time-out in seconden. Standaard 60.
const call = await rozper.calls.create({
to: "+14155551234",
from: "+12025550100",
url: "https://your.app/voice/answer",
}){
"id": "call_01HXY7ZQ9V3J3X8K5N",
"object": "call",
"created_at": "2026-05-12T14:23:01Z"
}Voorspelbare, machinaal leesbare fouten.
Elke 4xx en 5xx retourneert dezelfde vorm: een stal code, een voor mensen leesbaar bericht en een verzoek-ID die u ter ondersteuning kunt plakken.
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestOnjuist opgemaakte verzoektekst of ontbrekend verplicht veld.
unauthorizedOntbrekende, verlopen of ingetrokken API-sleutel.
forbiddenKey mist de ruimte die nodig is voor dit hulpmiddel.
not_foundDe resource-ID bestaat niet voor dit account.
conflictIdempotentiesleutel botst met een andere lading.
invalid_paramEen parameter is niet gevalideerd. Inspecteer param_errors[].
rate_limitedStel een back-up uit met behulp van de Retry-After-header.
server_errorWij werden op de hoogte gebracht. Probeer opnieuw idempotente oproepen.
Ondertekend, opnieuw geprobeerd, beveiligd tegen opnieuw afspelen.
Elke gebeurtenis wordt geleverd met een HMAC-handtekening, een unieke gebeurtenis-ID en een UTC-tijdstempel. We proberen het opnieuw met exponentieel uitstel gedurende maximaal 24 uur.
import { verify } from "@rozper/sdk/webhooks"
app.post("/webhooks/rozper", (req, res) => {
const ok = verify({
payload: req.rawBody,
signature: req.header("Rozper-Signature"),
secret: process.env.ROZPER_WEBHOOK_SECRET,
})
if (!ok) return res.status(401).end()
const event = JSON.parse(req.rawBody)
switch (event.type) {
case "call.completed": /* … */
case "recording.ready": /* … */
}
res.json({ received: true })
})call.initiatedUitgaand gesprek geaccepteerd door de provider.
call.ringingHet verre einde rinkelt.
call.answeredFar-end beantwoord (of AMD heeft een mens gedetecteerd).
call.completedGesprek beëindigd. Inclusief duur, facturering en metadata van de leg.
recording.readyOpname-item geüpload en ondertekende URL beschikbaar.
message.deliveredOntvangstbewijs vervoerder (indien ondersteund).
agent.handoffAI-agent escaleerde naar een menselijke wachtrij.
number.purchasedNummerverwerving voltooid.
Elke verandering, in gewoon Engels.
- 2026-05-10v2026.05
- prestatieSpraakagenten ondersteunen nu toolbellen met streamingreacties.
- prestatieNieuw /v2/numbers/port-eindpunt voor programmatische LNP-inzendingen.
- 2026-04-22v2026.04
- reparerenIdempotency-cache respecteert nu correct 24 uur TTL bij POST/oproepen.
- klusVerouderde v1-eindpunten verwijderd (aangekondigd 2025-11).
- 2026-03-31v2026.03
- prestatieDe bètaversie van WebSocket-mediastreams is nu algemeen beschikbaar.
- prestatieWhatsApp-sjabloonberichten toegevoegd onder /v2/messages.