buzzabout docs
API referenceEndpoints

Chats

Two read endpoints — chat metadata and paginated message history for a single chat.

Chats are user-owned: each chat carries a user_id matching the seat that created it. Reading is scoped to the same seat that created the chat — other team members (including the team owner) get a 404 when looking up another seat's chat.

Team-member semantics

Each API key carries both account_id (resource scope, shared across the team) and user_id (acting seat). Account-shared resources — datasets, mentions, tracking agents, custom parameters — are readable by every key on the account. Chats are the exception: they are private to the creating seat.

Pricing

Free — no credits charged. The cost lives on the POST /v1/ask turn that created the chat. See Pricing.

Endpoints

GET
/v1/chats/{chat_id}

Authorization

ApiKeyAuth
x-api-key<token>

Buzzabout API key, beginning with bz_live_ (or bz_test_ for staging-only keys).

In: header

Path Parameters

chat_id*Chat Id

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/chats/string"
{
  "status": "info",
  "data": {
    "created_at": 1717200000,
    "id": "ch_2NK4Y3JxhJ8r9c0Y1u5lkjm9Wb1",
    "name": "Reddit teardown — Aug"
  }
}
{
  "status": "info",
  "error_code": "chat_not_found",
  "detail": "string",
  "transient": true
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET
/v1/chats/{chat_id}/messages

Authorization

ApiKeyAuth
x-api-key<token>

Buzzabout API key, beginning with bz_live_ (or bz_test_ for staging-only keys).

In: header

Path Parameters

chat_id*Chat Id

Query Parameters

limit?Limit
Default25
Range1 <= value <= 100
cursor?|null

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/chats/string/messages"
{
  "status": "info",
  "data": [
    {
      "id": "string",
      "role": "user",
      "text": "string",
      "context": {
        "dataset_ids": [
          "string"
        ],
        "collection_ids": [
          0
        ],
        "post_refs": [
          {
            "id": "string",
            "source": "reddit"
          }
        ],
        "prompt": {
          "id": "string"
        },
        "research_filters": {
          "sources": [
            "string"
          ],
          "time": "string",
          "date_range": {},
          "language": "string",
          "country_code": "string",
          "depth": 1,
          "preview_id": "string"
        }
      },
      "created_at": 0
    }
  ],
  "has_next": true,
  "cursor": "string"
}
{
  "status": "info",
  "error_code": "chat_not_found",
  "detail": "string",
  "transient": true
}
{
  "status": "info",
  "error_code": "invalid_cursor",
  "detail": "string",
  "transient": true
}

Chat metadata

GET /v1/chats/{id} returns the bare bones:

  • id
  • name (nullable; the assistant assigns one after the first few turns)
  • tracking_agent_id (set when the chat belongs to a tracking agent's dedicated dialogue, otherwise null)
  • created_at

Heavier fields the in-app UI uses (summary, blocks, read, include_comments, include_blocks, short_preview_message) are intentionally absent from the public surface.

Messages

GET /v1/chats/{id}/messages is cursor-paginated. Default limit=25, max 100. Returned ascending by created_at so the oldest message is first — render top-to-bottom without re-sorting.

Each row carries:

// user
{ "id": "...", "role": "user", "text": "...", "context": {...}, "created_at": "..." }
// assistant
{ "id": "...", "role": "assistant", "text": "...", "references": [...], "created_at": "..." }

Assistant text is always markdown (the public surface enforces output_format=markdown per turn). Citations follow the reference types conventions — typed pointers in references[], inline post links in text.

Creating chats

Chats are created implicitly via POST /v1/ask. There is no dedicated create endpoint on the public surface.

Next steps

  • Ask — create or continue a chat.
  • Reference types — how assistant references resolve to underlying resources.
  • Tracking agents — agent-owned chats live under tracking_agent_id.

On this page