---
title: "Check send readiness"
method: GET
path: "/api/v1/readiness"
tags: ["workspace"]
---

# Check send readiness

`GET /api/v1/readiness`

## Request

- Base URL: `https://app.blueticked.com`
- URL: `https://app.blueticked.com/api/v1/readiness`
- Auth: HTTP bearer

Find out whether this workspace can actually send yet, and what is standing in the way, as branchable data rather than a failed send.

Channels belong to a business, so readiness is answered per business. Pass ?business_id= to ask about one of your customers; a key already narrowed to a business answers for that business automatically. `scope.business_id` in the response says which. If it is null, the answer covers the whole organization and is not about any single customer.

Most integrations stall on provisioning, not code: a WhatsApp Business Account has to be connected and a wallet funded, and both need a human at the customer's business. This endpoint turns that from a support question into something your code can read.

There are two answers because the send gate has two floors. `can_send` is for a TRANSACTIONAL send (what you get when you do not set `message_type`) and `can_send_marketing` is for a marketing one, which is stricter: an empty wallet still lets transactional messages out on a small grace allowance while marketing is refused at zero. Read the field that matches the send you are about to make. WhatsApp is never wallet-blocked either way; it bills direct between the business and Meta.

Every blocker carries a stable code, the channels it blocks, the message types it blocks on those channels (`blocks_message_types`), and how it is resolved. `resolve: dashboard` means a person must act: surface it to your user rather than retrying. `meta_review` means wait and poll.

A blu_test_ key always reports ready with an empty blockers list: the sandbox simulates every provider, bills nothing, and needs no connected channel. What a live key would still be waiting on is returned as pending_for_live, so you can show your customer their remaining setup while you build.

Read-only and cheap, with no provider calls. Safe to poll while waiting on a human step.

## Response `200`

Success

- object
  - `environment` 'test' | 'live', required
  - `ready` boolean, required
  - `can_send` object, required
    - `whatsapp` boolean, required
    - `sms` boolean, required
    - `email` boolean, required
  - `can_send_marketing` object, required
    - `whatsapp` boolean, required
    - `sms` boolean, required
    - `email` boolean, required
  - `blockers` object[], required
    - `code` string, required
    - `message` string, required
    - `blocks` string[], required
    - `blocks_message_types` string[], required
    - `resolve` 'dashboard' | 'api' | 'meta_review', required
    - `url` string
  - `wallet` object, required
    - `balance_zar_cents` number, required
    - `enforced` boolean, required
  - `channels` object, required
    - `connected` string[], required
  - `scope` object, required
    - `business_id` string, uuid, nullable, required
    - `business_ids` string[], nullable, required
  - `request_id` string, required
  - `pending_for_live` object[]
    - `code` string, required
    - `message` string, required
    - `blocks` string[], required
    - `blocks_message_types` string[], required
    - `resolve` 'dashboard' | 'api' | 'meta_review', required
    - `url` string

## Other responses

- `400`: Validation failed
- `401`: Unauthorized: missing or invalid API key
- `402`: Insufficient wallet balance
- `403`: Forbidden: scope, plan limit, or suspension
- `404`: Not found
- `409`: Conflict (idempotency-key reuse or resource in use)
- `422`: Understood but refused: the request is well-formed, the action is not permitted for this resource
- `429`: Rate limited
- `500`: Internal error
- `502`: An upstream provider refused or failed the request
- `503`: Channel or send queue unavailable

---

[API](https://skmtc.dev/blueticked/apis/blueticked-api.md) · [All operations](https://skmtc.dev/blueticked/apis/blueticked-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blueticked/apis/blueticked-api/revisions/07132284f4ff?raw)
