voice

Usage feed of bridge conversations, with the billed flag per row

The bulk read for your own reporting. GET /voice/bridge/{id} returns ONE session; this returns MANY, date-filtered, each with the billed flag and amount read from the append-only usage ledger rather than inferred from the state string, so this feed reconciles with the invoice by construction.

NOT the {data: [], meta} list envelope used elsewhere in this API: data is a single OBJECT carrying the window, the counts and a conversations array. Offset pagination, not the keyset cursor used by GET /voice/bridge.

Two rows are filtered out server-side, from the total as well as the page: briefing-only test sessions (the consumer leg is never dialed on those), and anything created before the pilot start date. A window that falls entirely before the pilot start is an empty 200, never an error.

Only reporting-safe fields are returned. Internal identifiers (org_id, api_key_id, phone_channel_id, idempotency_key), the prep-line text and raw carrier event payloads are never exposed here.

get/voice/bridge/usage

Request

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

Query parameters

fromstring

Inclusive lower bound on created_at (YYYY-MM-DD or ISO-8601). Defaults to 30 days ago. Raised silently to the pilot start date when earlier than it. An unparseable value is a 400 validation_error; a from later than to is also a 400.

tostring

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

limitinteger

Page size. CLAMPED, not refused: a value above the maximum is silently reduced to it, and a negative or unparseable value falls back to the default. This differs from GET /voice/bridge, where an over-limit value is a 400, check returned rather than assuming you got what you asked for.

offsetinteger

Rows to skip, newest-first. Compare with total to know when you are done.

customer_refstring

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

Response

OK

Example response

{
  "data": {
    "total": 36,
    "limit": 500,
    "returned": 36,
    "conversations": [
      {
        "id": 4021,
        "connected_at": "2026-08-20T09:03:26.706Z",
        "state": "completed",
        "amount_cents": 100,
        "mode": "live",
        "joined_seconds": 45.2,
        "bridge_evidence": "two_legs_confirmed",
        "business_number": "+15551230000",
        "consumer_number": "+15559874444"
      }
    ]
  }
}

Changes

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