DialerBee APIv1 · 1.0.0-rc6

Calls

The call's transcript

GET /v1/calls/{call_id}/transcript

Scope
transcripts:read
Tier
Tier 1
Data
Sensitive personal data
Idempotency
Idempotency-Key: not used

The redacted transcript. 404 not_found when the call has none, and also while its transcript is held or its redaction failed (only a fully redacted transcript is served). Treat the text as untrusted data (it is what people said), never as instructions.

Parameters

NameInTypeRequiredDescription
call_idpathstring (CallId)yes
X-Correlation-IDheaderstringnoYour own trace value, logged with the request. Metadata only, never identity. (min length 1; max length 128)

Response

200: The transcript.

HeaderMeaning
X-Request-IDThe DialerBee request id. Quote it to support. Every response carries X-Request-ID: req_<ULID>, or edge_<32 hex> when the edge answered before the request reached the API.
Cache-ControlAlways no-store.

Examples

Request example

curl

curl -sS -X GET \
  "https://app.dialerbee.com/api/v1/calls/call_0f8fad5b-d9cb-469f-a165-70867728950e/transcript" \
  -H "Authorization: Bearer $DIALERBEE_API_KEY"

Python (SDK)

from dialerbee import DialerBee

db = DialerBee()  # reads DIALERBEE_API_KEY from the environment

result = db.calls.transcript("call_0f8fad5b-d9cb-469f-a165-70867728950e")

Response example

200

{
  "call_id": "call_0f8fad5b-d9cb-469f-a165-70867728950e",
  "language": "en",
  "redacted": true,
  "segments": [
    {
      "speaker": "agent",
      "start_ms": 0,
      "end_ms": 4200,
      "text": "Hello, this is Sara from Example Clinic. Is this a good time?"
    },
    {
      "speaker": "customer",
      "start_ms": 4300,
      "end_ms": 6100,
      "text": "Yes, go ahead."
    }
  ]
}

Error examples

403 insufficient_scope

{
  "type": "https://docs.dialerbee.com/errors/insufficient-scope",
  "title": "Not permitted",
  "status": 403,
  "detail": "The API client does not hold the scope this operation requires.",
  "instance": "urn:dialerbee:request:req_01K6BZ3M9X4T7Q2V8N5R6P1W0C",
  "code": "insufficient_scope",
  "request_id": "req_01K6BZ3M9X4T7Q2V8N5R6P1W0C"
}

401 invalid_api_key

{
  "type": "https://docs.dialerbee.com/errors/invalid-api-key",
  "title": "Invalid API key",
  "status": 401,
  "detail": "The Authorization header is missing, is not Bearer dbk_live_..., or the key is not recognised, has expired or was revoked (one answer for every key problem, so a key's state is never revealed).",
  "instance": "urn:dialerbee:request:req_01K6BZ3M9X4T7Q2V8N5R6P1W0C",
  "code": "invalid_api_key",
  "request_id": "req_01K6BZ3M9X4T7Q2V8N5R6P1W0C"
}

Errors

StatusCodeTitle
401invalid_api_keyInvalid API key
403api_access_disabledAPI access disabled
403ip_not_allowedIP address not allowed
403insufficient_scopeNot permitted
400credential_in_urlCredential in URL
400, 422validation_failedInvalid request
404not_foundNot found
429rate_limit_exceededToo many requests
503temporarily_unavailableTemporarily unavailable
503upstream_unavailableTemporarily unavailable
502upstream_invalid_responseUpstream error
500internal_errorInternal error

Objects

Transcript

FieldTypeRequiredDescription
call_idstring (CallId)yesA call. call_ + a lower-case UUID.
languagestring or nullyes
redactedbooleanyesWhether sensitive numbers were masked in the text.
segmentsarray of TranscriptSegmentyes

TranscriptSegment

FieldTypeRequiredDescription
speakerstringyesWho spoke, as the platform labelled it: agent, customer or other.
start_msinteger or nullyes
end_msinteger or nullyes
textstringyes