voice

List two-party telephony bridge sessions

Enumerate this organization's bridge sessions so they can be pulled into your own reporting/backoffice. Keyset (cursor) paginated on (created_at, id): follow meta.next_cursor until meta.has_more is false. Do NOT page by offset, rows are inserted continuously and an offset scan silently skips sessions. Keep order and the filters identical for every page of a walk; a cursor issued for one direction is refused for the other. Phone numbers are returned unmasked: this endpoint is authenticated with an org-scoped API key and returns only your own sessions. Rows that are not ordinary production traffic (sandbox magic-number tests, seeded sample data, briefing-only test calls) are RETURNED and flagged rather than hidden, exclude them yourself with the sandbox / mock / briefing_only booleans. For the state-transition timeline (and transcript, where enabled) fetch the single session at status_url. By default only the trailing 30 days are returned. Check meta.range.defaulted: when it is true you are seeing a window we bounded for you, and meta.has_more:false means "this window is exhausted", NOT "this is all your data". For a full backfill pass an explicit from. For billing use /voice/bridge/usage, which carries billed/amount_cents. That feed no longer needs to be cross-referenced against this one: every row now carries a three-valued mode (live / sandbox / demo) and an invoiceable boolean, and seeded demo rows come back billed:false. Filter on invoiceable for revenue, or on mode == "live" if you want the wider set including rows an evidence rule flagged. Briefing-only rows are still excluded from that feed entirely, here as well as from its total.

get/voice/bridge

Request

  • Base URL: https://corebee.ai/api/v1
  • URL: https://corebee.ai/api/v1/voice/bridge
  • Auth: HTTP bearer

Query parameters

limitinteger

Page size. HARD maximum 500; a larger value is a 400, never a silent clamp.

cursorstring

Opaque keyset cursor from the previous page (meta.next_cursor). Omit for the first page. Treat it as opaque: it encodes (created_at, id, order) and is refused if tampered with or if order changes mid-walk.

order'asc' | 'desc'

Sort direction on created_at (id breaks ties). desc = newest first, for incremental polling. asc = oldest first, for a resumable initial backfill.

fromstring

Inclusive lower bound on created_at (YYYY-MM-DD or ISO-8601). Defaults to 30 days ago, so an unparameterized pull is bounded rather than scanning all history.

tostring

Inclusive upper bound on created_at (YYYY-MM-DD or ISO-8601). Defaults to now.

statestring[]

Filter to one or more states. Repeat the parameter or pass a comma-separated list. An unknown state is a 400.

failure_reasonstring[]

Filter to one or more failure_reason values (repeatable or comma-separated). Deliberately not validated against a closed list, failure_reason is an OPEN set, but must be lowercase [a-z0-9_], 1-64 characters.

customer_refstring

Exact match on the customer_ref you supplied in metadata at create time.

Response

OK

Example response

{
  "data": [
    {
      "id": 4021,
      "state": "completed",
      "business_number": "+15551230000",
      "consumer_number": "+15559874444",
      "from_number": "+17635550123",
      "recording_duration_sec": 41,
      "joined_seconds": 45.2,
      "status_url": "/api/v1/voice/bridge/4021"
    }
  ],
  "meta": {
    "limit": 100,
    "returned": 100
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.