# Karibu Docs ## Docs - [Karibu Webhooks API](https://docs.briq.tz/Karibu-Webhooks/index.md): Complete reference for managing Briq webhooks - register callback URLs, reveal signing secrets, send test events, and inspect, audit, and retry every delivery attempt. Shared across all channels (sms, voice, otp, whatsapp, email). - [Karibu WhatsApp API](https://docs.briq.tz/Karibu-WhatsApp/index.md): Complete reference for the Karibu WhatsApp Business API - send text, template, media, and interactive messages, mark inbound messages read, list senders, templates, and conversations, and receive sent/delivered/read/failed delivery events on your webhook. - [Attach Api Key Endpoint](https://docs.briq.tz/api-reference/developer-apps/attach-api-key-endpoint.md): Attach an existing API key to a Developer App. - [Create Developer App Endpoint](https://docs.briq.tz/api-reference/developer-apps/create-developer-app-endpoint.md): Create a new developer app (optionally in a workspace owned by the user). - [Delete Developer App Endpoint](https://docs.briq.tz/api-reference/developer-apps/delete-developer-app-endpoint.md): Delete a developer app. - [Developer App Stats Endpoint](https://docs.briq.tz/api-reference/developer-apps/developer-app-stats-endpoint.md): Get API key statistics for a Developer App. - [Get Developer App By Key Endpoint](https://docs.briq.tz/api-reference/developer-apps/get-developer-app-by-key-endpoint.md): Get a developer app by its app_key. - [Get Developer App Endpoint](https://docs.briq.tz/api-reference/developer-apps/get-developer-app-endpoint.md): Get a developer app by its ID. - [Get Workspace Developer Apps Endpoint](https://docs.briq.tz/api-reference/developer-apps/get-workspace-developer-apps-endpoint.md): List all developer apps for a workspace (owned by the user). - [List Developer App Api Keys Endpoint](https://docs.briq.tz/api-reference/developer-apps/list-developer-app-api-keys-endpoint.md): List all API keys belonging to a specific Developer App. - [List Developer Apps](https://docs.briq.tz/api-reference/developer-apps/list-developer-apps.md): List all developer apps for the authenticated user. - [Transfer Developer App Endpoint](https://docs.briq.tz/api-reference/developer-apps/transfer-developer-app-endpoint.md): Transfer a developer app to another workspace. - [Update Developer App Endpoint](https://docs.briq.tz/api-reference/developer-apps/update-developer-app-endpoint.md): Update a developer app. - [Developer Stats](https://docs.briq.tz/api-reference/developer/developer-stats.md): Verify that the API key is valid and return developer information. - [Get Version](https://docs.briq.tz/api-reference/get-version.md): Return API version and deployment information. - [Hello Briq](https://docs.briq.tz/api-reference/hello-briq.md): Redirect root URL to the Briq landing page. - [Get Message Detail](https://docs.briq.tz/api-reference/karibu-messages/get-message-detail.md): Retrieve details of a specific message. - [Get Message Logs](https://docs.briq.tz/api-reference/karibu-messages/get-message-logs.md): Fetch all message logs for the authenticated user. - [Get Messages By Recipient Endpoint](https://docs.briq.tz/api-reference/karibu-messages/get-messages-by-recipient-endpoint.md): Retrieve all messages sent to a specific recipient. - [Get User Messages](https://docs.briq.tz/api-reference/karibu-messages/get-user-messages.md): Retrieve all messages sent by the authenticated user. - [Send Campaign Message](https://docs.briq.tz/api-reference/karibu-messages/send-campaign-message.md): Send a message to all contacts in a campaign. - [Send Instant Message](https://docs.briq.tz/api-reference/karibu-messages/send-instant-message.md): Send an instant message to one or multiple recipients. - [Check Otp Status](https://docs.briq.tz/api-reference/karibu-otp/check-otp-status.md) - [Invalidate Otp Developer App](https://docs.briq.tz/api-reference/karibu-otp/invalidate-otp-developer-app.md) - [Request Otp Developer App](https://docs.briq.tz/api-reference/karibu-otp/request-otp-developer-app.md) - [Resend Otp Developer App](https://docs.briq.tz/api-reference/karibu-otp/resend-otp-developer-app.md) - [Verify Otp Developer App](https://docs.briq.tz/api-reference/karibu-otp/verify-otp-developer-app.md) - [Voice Call Audio](https://docs.briq.tz/api-reference/karibu-voice/voice-call-audio.md): Initiate a voice call that plays a pre-recorded audio file from a URL. - [Voice Call Audio Upload](https://docs.briq.tz/api-reference/karibu-voice/voice-call-audio-upload.md): Initiate a voice call by uploading an audio file (MP3 or WAV). - [Voice Call Tts](https://docs.briq.tz/api-reference/karibu-voice/voice-call-tts.md): Initiate a voice call that speaks the given text (text-to-speech). - [Create Webhook Endpoint](https://docs.briq.tz/api-reference/karibu-webhooks/create-webhook-endpoint.md): Create a new webhook for a developer app. - [Delete Webhook Endpoint](https://docs.briq.tz/api-reference/karibu-webhooks/delete-webhook-endpoint.md): Delete a webhook. - [Delivery Stats](https://docs.briq.tz/api-reference/karibu-webhooks/delivery-stats.md): Return aggregated delivery outcome counts for a webhook over a time window, broken down by status and by event name. When `since` is omitted, the window defaults to the last 7 days. - [Get One Delivery](https://docs.briq.tz/api-reference/karibu-webhooks/get-one-delivery.md): Return the full detail for a single delivery, including the target `url` and the `payload` snapshot of the JSON body that was sent (or is queued to send). - [Get Webhook](https://docs.briq.tz/api-reference/karibu-webhooks/get-webhook.md): Get a specific webhook by ID. - [List All Webhooks](https://docs.briq.tz/api-reference/karibu-webhooks/list-all-webhooks.md): List all webhooks for the authenticated user across all their developer apps. - [List Delivery Attempts](https://docs.briq.tz/api-reference/karibu-webhooks/list-delivery-attempts.md): Return a paginated, filterable list of delivery attempts for a webhook, so you can audit what was sent, the HTTP status received, and any errors. - [List Webhooks By App](https://docs.briq.tz/api-reference/karibu-webhooks/list-webhooks-by-app.md): List all webhooks for a specific developer app. - [Retry A Delivery](https://docs.briq.tz/api-reference/karibu-webhooks/retry-a-delivery.md): Schedule a previously failed delivery for another attempt. Only deliveries with status `failed` or `exhausted` can be retried. Returns the updated delivery (typically `status: pending` with `next_attempt_at` set). - [Reveal Signing Secret](https://docs.briq.tz/api-reference/karibu-webhooks/reveal-signing-secret.md): Return the webhook's signing secret in **plaintext**. Use it to verify the `X-Briq-Signature` header (HMAC-SHA256 of the raw request body) on incoming deliveries. Store it securely and never expose it client-side. - [Send A Test Event](https://docs.briq.tz/api-reference/karibu-webhooks/send-a-test-event.md): Enqueue a synthetic test delivery so you can confirm your endpoint is reachable and your signature verification works. Returns an `event_id` you can use to poll delivery status. - [Update Webhook Endpoint](https://docs.briq.tz/api-reference/karibu-webhooks/update-webhook-endpoint.md): Update a webhook's configuration. - [Get Conversation](https://docs.briq.tz/api-reference/karibu-whatsapp/get-conversation.md): Fetch a single conversation by its ID, scoped to your workspace. Use it to inspect `is_active` (the 24-hour window) and `last_message_at`. - [Get Sender](https://docs.briq.tz/api-reference/karibu-whatsapp/get-sender.md): Fetch a single sender by its `sender_id`, scoped to the workspace bound to your API key. Returns a **bare** sender object. A `sender_id` belonging to another workspace returns 404. - [Get Template](https://docs.briq.tz/api-reference/karibu-whatsapp/get-template.md): Fetch a single template by its UUID, scoped to your workspace. Use it to read the full `params`/`details` layout, or to poll `status` while it moves through review. A 404 is returned for unknown IDs and templates in other workspaces alike. - [List Conversations](https://docs.briq.tz/api-reference/karibu-whatsapp/list-conversations.md): Return a paginated list of conversations belonging to your workspace. A conversation is the message thread between one of your senders and a single recipient; `is_active` reflects whether the 24-hour window is open. - [List Messages In A Conversation](https://docs.briq.tz/api-reference/karibu-whatsapp/list-messages-in-a-conversation.md): Return the messages in a conversation, both inbound and outbound, ordered by `created_at` ascending. Because inbound webhook events are upcoming, poll this endpoint to read inbound replies and track delivery state. - [List Senders](https://docs.briq.tz/api-reference/karibu-whatsapp/list-senders.md): List all WhatsApp senders (business phone numbers) scoped to the workspace bound to your API key. Use the returned `id` as `sender_id` when sending. Returns a **bare JSON array** (no envelope). - [List Templates](https://docs.briq.tz/api-reference/karibu-whatsapp/list-templates.md): Return a cursor-paginated list of WhatsApp templates owned by your workspace. Only templates whose `status` is `APPROVED` can be sent. Filter with `?status=APPROVED` to list exactly what you can send right now. - [Mark Inbound Message As Read](https://docs.briq.tz/api-reference/karibu-whatsapp/mark-inbound-message-as-read.md): Send a read receipt to WhatsApp for an inbound message you received. Only INBOUND messages belonging to a sender in your workspace can be marked as read. Always responds synchronously with HTTP 200. - [Send Interactive Message](https://docs.briq.tz/api-reference/karibu-whatsapp/send-interactive-message.md): Send an interactive WhatsApp message (e.g. button or list) using a raw Meta `interactive` payload that you supply. Requires an open 24-hour window by default. - [Send Media Message](https://docs.briq.tz/api-reference/karibu-whatsapp/send-media-message.md): Send a media message (image, document, or video) referenced by a publicly reachable URL, with an optional caption and filename. Like freeform text, media requires an open 24-hour window by default. - [Send Template Message](https://docs.briq.tz/api-reference/karibu-whatsapp/send-template-message.md): Send a Meta-approved message template, filling in its variables. Templates are the only way to message a recipient outside the 24-hour window, so this endpoint is not gated by the window check. The named sender must own an `APPROVED` template with the given name. - [Send Text Message](https://docs.briq.tz/api-reference/karibu-whatsapp/send-text-message.md): Send a freeform text WhatsApp message from one of your workspace senders. Freeform text requires an open 24-hour customer-care window (unless `check_window` is `false`); outside the window send an approved template instead. - [Create Workspace Endpoint](https://docs.briq.tz/api-reference/karibu-workspace/create-workspace-endpoint.md): Create a new workspace for the authenticated user. - [Get Workspace Endpoint](https://docs.briq.tz/api-reference/karibu-workspace/get-workspace-endpoint.md): Retrieve a specific workspace, ensuring it belongs to the authenticated user. - [List Workspaces](https://docs.briq.tz/api-reference/karibu-workspace/list-workspaces.md): Retrieve all workspaces for the authenticated user. - [Update Workspace Endpoint](https://docs.briq.tz/api-reference/karibu-workspace/update-workspace-endpoint.md): Update a workspace (only if owned by the authenticated user). - [Best Practices](https://docs.briq.tz/best-practices.md): Recommendations for sender IDs, OTP expiry, campaign structuring, and security. - [Error Handling](https://docs.briq.tz/error-handling.md): Common error codes, retry strategies, and rate limits for Karibu APIs. - [Campaigns](https://docs.briq.tz/guides/campaigns.md): Plan, schedule, launch, and monitor bulk messaging campaigns in Briq — primarily through the dashboard, with an optional developer API for advanced integrations. - [Building a campaign](https://docs.briq.tz/guides/campaigns-building.md): Create a campaign, attach contact groups, set message content, and schedule one or more runs — using the Briq dashboard or the developer API. - [Launching and controlling a campaign](https://docs.briq.tz/guides/campaigns-launch-control.md): Validate, launch, pause, resume, cancel, and retry campaigns — through the Briq dashboard or the developer API. - [Monitoring a campaign](https://docs.briq.tz/guides/campaigns-observability.md): Watch a running campaign's progress and read its final analytics — via the Briq dashboard or the developer API endpoints. - [Developer Apps](https://docs.briq.tz/guides/developer-apps.md): Create and manage developer applications for accessing OTP services and advanced integrations with Briq's SMS platform. - [Messaging](https://docs.briq.tz/guides/messaging.md): Send instant messages and manage campaigns with Briq's SMS platform. Learn how to send instant messages and create campaigns for bulk messaging. - [OTP (One-Time Passwords)](https://docs.briq.tz/guides/otp.md): Overview of Briq's OTP API — prerequisites, behavioral rules, and the end-to-end verification flow. - [Managing OTP Lifecycle](https://docs.briq.tz/guides/otp-lifecycle.md): Resend, invalidate, and inspect the active OTP for a (phone, app) pair without rebuilding the request flow. - [Requesting OTP Codes](https://docs.briq.tz/guides/otp-requesting-codes.md): Generate a fresh OTP and deliver it to a phone number via SMS, voice call, or WhatsApp using POST /v1/otp/request. - [Validating OTP Codes](https://docs.briq.tz/guides/otp-validating-codes.md): Verify a code submitted by the end user against the active OTP for a (phone, app) pair using POST /v1/otp/verify. - [Voice Calls](https://docs.briq.tz/guides/voice-calls.md): Place outbound voice calls with pre-recorded audio, uploaded audio files, or text-to-speech. Learn how to use the Karibu Voice API endpoints. - [Webhooks](https://docs.briq.tz/guides/webhooks.md): Subscriber guide for HTTPS webhook callbacks from Briq for SMS events—request shape, verification, events, and retries. - [WhatsApp](https://docs.briq.tz/guides/whatsapp.md): Overview of Briq's WhatsApp Business API - prerequisites, the two behavioral rules that matter most, response shapes, and the end-to-end messaging flow. - [Senders & conversations](https://docs.briq.tz/guides/whatsapp-conversations.md): Discover your WhatsApp sender numbers, inspect conversation threads and the 24-hour window state, and read inbound messages by polling the Conversations API. - [Sending WhatsApp messages](https://docs.briq.tz/guides/whatsapp-sending.md): How to send text, template, media, and interactive WhatsApp messages, handle the 24-hour window, and acknowledge inbound messages with read receipts. - [WhatsApp templates](https://docs.briq.tz/guides/whatsapp-templates.md): Discover Meta-approved message templates, understand their statuses and cursor pagination, and map a template's ordered params onto the send-template variables. - [WhatsApp delivery events](https://docs.briq.tz/guides/whatsapp-webhooks.md): Receive whatsapp.sent / delivered / read / failed events on your webhook, verify the X-Briq-Signature, and handle idempotency, ordering, and retries. - [Workspaces](https://docs.briq.tz/guides/workspaces.md): Create and manage workspaces to organize your SMS projects, campaigns, and developer apps with Briq's workspace system. - [Introduction](https://docs.briq.tz/index.md): Welcome to the Karibu APIs for messaging, verification, and authentication by Briq - [Quickstart](https://docs.briq.tz/quickstart.md): Get started with BRIQ SMS API integration in minutes - [Security Notes](https://docs.briq.tz/security-notes.md): Important security information and developer-access restrictions for Briq Karibu API. - [Setting up Briq Account](https://docs.briq.tz/signup.md): How to set up your Briq account to start sending messages and verifications ## OpenAPI Specs - [openapi](https://docs.briq.tz/openapi.json)