> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blujay.io/llms.txt
> Use this file to discover all available pages before exploring further.

# API reference

> Every Blujay API endpoint, with a playground you can call from your browser.

The reference is generated from Blujay's OpenAPI 3.1 description. Each endpoint page shows its parameters, request and response schemas, the errors worth handling, and ready-to-run examples in cURL, JavaScript, Python, Go, Ruby and PHP.

> **[Download the OpenAPI file](https://raw.githubusercontent.com/blujayhq/api-docs/main/api-reference/openapi.yaml)**
>
> Import it into Postman, Insomnia or a code generator.

> **[Postman collection](https://raw.githubusercontent.com/blujayhq/api-docs/main/api-reference/blujay.postman_collection.json)**
>
> Every endpoint as a ready-made request. Import it into Postman, set `apiKey`, and send.

> **[Build with AI](/build-with-ai.md)**
>
> `llms.txt`, the docs MCP server and prompts for your assistant.

> **[Quickstart](/quickstart.md)**
>
> Send your first message in about five minutes.

## Use the Postman collection

1. In Postman, choose **Import**, paste this link and import:

   ```text theme={null}
   https://raw.githubusercontent.com/blujayhq/api-docs/main/api-reference/blujay.postman_collection.json
   ```
2. Open the collection's **Variables** and paste your API key into `apiKey`. `baseUrl` is already set to `https://api.blujay.io/v1`.
3. Pick a request and send it.

> [!WARNING]
>
> Requests that take an `Idempotency-Key` fill it with `{{$guid}}`, a fresh value on every click. So clicking **Send** twice on **Start a chat** sends two messages. To retry safely, replace the header with a fixed value first. List requests ship with a placeholder `cursor` variable; leave it empty or the request returns [`INVALID_CURSOR`](/errors/invalid-cursor).

Requests act on your real workspace: a send really sends a message.

## Base URL

```text theme={null}
https://api.blujay.io/v1
```

## Authentication

Send `Authorization: Bearer blu_your_api_key` with your workspace [API key](/authentication.md). In the playground, paste your key into the **Authorization** field to try a call.

## Try it

Use **Try it** on any endpoint page to send a request with your API key.

> [!WARNING]
>
> The playground sends real requests with your live key. There is no test mode: a send from the playground really sends a message, and a delete really deletes. Use your own phone number as the recipient.

## Next steps

> **[Making requests](/making-requests.md)**
>
> Response format, IDs, pagination and tracing.

> **[Errors](/errors.md)**
>
> Every error code, what it means and how to fix it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.