# Blooio v4 API > The Blooio v4 API is a multi-channel messaging API for iMessage, SMS, RCS, WhatsApp, and Apple Messages for Business. It exposes channels, contacts and identities, chats, messages, reactions, polls, groups, webhooks, and a unified event feed. ## API Reference - GET /me: Get the authenticated account - GET /me/priority: Get the key's default priority - GET /me/numbers: List sender numbers - GET /me/numbers/{number}/contact-card: Get a number's contact card - PUT /me/numbers/{number}/contact-card: Update a number's contact card - POST /me/numbers/{number}/contact-card/avatar: Upload a contact card avatar - POST /me/numbers/{number}/call-forwarding: Request call forwarding - GET /location/contacts: List Find My contacts - GET /location/contacts/refresh: Refresh Find My locations (GET) - POST /location/contacts/refresh: Refresh Find My locations - GET /location/contacts/{handle}: Get one Find My contact - GET /channels: List channels - GET /channels/blooio/available: List available Blooio numbers - POST /channels/blooio/purchases: Purchase Blooio numbers - GET /channels/blooio/purchases/{purchaseId}: Get purchase status - GET /channels/{channel}: Get a channel - DELETE /channels/{channel}: Remove (unsubscribe) a Blooio number - GET /channels/{channel}/capabilities: Get channel capabilities - GET /channels/{channel}/health: Get line health - GET /channels/{channel}/settings: Get channel settings - PATCH /channels/{channel}/settings: Update channel settings - PUT /channels/{channel}/profile: Update channel profile - POST /channels/{channel}/messages: Send a message on a specific channel - GET /priorities: List priorities - POST /priorities: Create a priority - GET /priorities/{priorityId}: Get a priority - PATCH /priorities/{priorityId}: Update a priority - DELETE /priorities/{priorityId}: Delete a priority - GET /contacts: List contacts - POST /contacts: Create a contact - GET /contacts/{contactId}: Get a contact - PATCH /contacts/{contactId}: Update a contact - DELETE /contacts/{contactId}: Delete a contact - POST /contacts/{contactId}/merge: Merge a contact - GET /contacts/{contactId}/identities: List contact identities - POST /contacts/{contactId}/identities: Attach an identity - PATCH /contacts/{contactId}/identities/{identityId}: Update an identity - DELETE /contacts/{contactId}/identities/{identityId}: Detach an identity - GET /contacts/{contactId}/capabilities: Get contact capabilities - GET /contacts/{contactId}/timeline: Get contact timeline - GET /contacts/{contactId}/tags: List contact tags - POST /contacts/{contactId}/tags: Add contact tags - DELETE /contacts/{contactId}/tags/{tag}: Remove a contact tag - GET /groups: List groups - POST /groups: Create a group - GET /groups/{groupId}: Get a group - PATCH /groups/{groupId}: Update a group - DELETE /groups/{groupId}: Delete a group - GET /groups/{groupId}/members: List group members - POST /groups/{groupId}/icon: Set group icon - DELETE /groups/{groupId}/icon: Remove group icon - GET /chats: List chats - POST /chats: Find or create a chat - GET /chats/{chatId}: Get a chat - PATCH /chats/{chatId}: Update a chat - POST /chats/{chatId}/typing: Start/stop typing indicator - DELETE /chats/{chatId}/typing: Stop typing indicator - POST /chats/{chatId}/read: Mark chat as read - POST /chats/{chatId}/contact-card: Share contact card - GET /chats/{chatId}/focus: Read Focus status - POST /chats/{chatId}/polls: Send a poll - POST /chats/{chatId}/polls/{pollId}/vote: Vote on a poll - GET /chats/{chatId}/polls/{pollId}: Get poll results - GET /chats/{chatId}/background: Get chat background - PUT /chats/{chatId}/background: Set chat background - DELETE /chats/{chatId}/background: Remove chat background - GET /chats/{chatId}/messages: List chat messages - POST /chats/{chatId}/messages: Send a message to a chat - POST /messages: Send a message - GET /chats/{chatId}/messages/{messageId}: Get a message - GET /chats/{chatId}/messages/{messageId}/status: Get message status - GET /chats/{chatId}/messages/{messageId}/events: List message events - POST /chats/{chatId}/messages/{messageId}/reactions: React to a message - POST /chats/{chatId}/messages/{messageId}/notify: Notify Anyway - GET /webhooks: List webhooks - POST /webhooks: Create a webhook - GET /webhooks/versions: List webhook payload versions - GET /webhooks/{webhookId}: Get a webhook - PATCH /webhooks/{webhookId}: Update a webhook - DELETE /webhooks/{webhookId}: Delete a webhook - POST /webhooks/{webhookId}/secret/rotate: Rotate webhook signing secret - GET /webhooks/{webhookId}/deliveries: List webhook deliveries - POST /webhooks/{webhookId}/deliveries/{deliveryId}/replay: Replay a webhook delivery - GET /events: List events - GET /events/{eventId}: Get an event - GET /phone-numbers/lookup: Look up a phone number - POST /phone-numbers/lookup: Look up a phone number (POST) - POST /phone-numbers/batch: Batch phone number lookup - GET /chats/{chatId}/participants: List chat participants - POST /chats/{chatId}/participants: Add a chat participant - DELETE /chats/{chatId}/participants/{identityId}: Remove a chat participant - POST /attachments: Register an attachment - GET /attachments/{attachmentId}: Get an attachment - GET /templates: List templates - POST /templates: Create a template - GET /templates/{templateId}: Get a template - DELETE /templates/{templateId}: Delete a template - GET /api-keys: List API keys - POST /api-keys: Create an API key - GET /api-keys/{apiKey}: Get an API key - DELETE /api-keys/{apiKey}: Deprecate an API key - GET /api-keys/{apiKey}/channels: List an API key's channels - PUT /api-keys/{apiKey}/channels/{channel}: Assign a channel to an API key - DELETE /api-keys/{apiKey}/channels/{channel}: Unassign a channel from an API key - POST /ai/bloobability/v2/decide: Decide policies against a conversation - POST /ai/bloobability/v1/decide: Bloobability v1 (deprecated, no longer available) - GET /numbers: List numbers - POST /numbers: Buy numbers - GET /numbers/available: Search available numbers - GET /numbers/purchases/{purchaseId}: Get a number purchase - GET /numbers/{number}: Get a number - PATCH /numbers/{number}: Update a number - DELETE /numbers/{number}: Release a number - GET /10dlc/options: List registration options - GET /10dlc/brand: Get the brand - PUT /10dlc/brand: Register the brand - POST /10dlc/brand/otp: Send the brand verification PIN - PUT /10dlc/brand/otp: Verify the brand PIN - GET /10dlc/usecases/{usecase}/qualification: Check a use case - GET /10dlc/campaigns: List campaigns - POST /10dlc/campaigns: Create a campaign - GET /10dlc/campaigns/{campaignId}: Get a campaign - PATCH /10dlc/campaigns/{campaignId}: Update campaign samples - POST /10dlc/campaigns/{campaignId}/appeal: Appeal a campaign - GET /calls: List calls - POST /calls: Place a call - GET /calls/{callId}: Get a call - GET /calls/{callId}/transcript: Get a call transcript - POST /calls/{callId}/answer: Answer a call - POST /calls/{callId}/hangup: Hang up a call - POST /calls/{callId}/transfer: Transfer a call - POST /calls/{callId}/dtmf: Send DTMF ## Guides - [iMessage REST API](https://docs.blooio.com/guides/imessage-rest-api): A complete reference to the Blooio iMessage REST API — resources, HTTP verbs, authentication, errors, and idempotency. - [Message sending basics](https://docs.blooio.com/guides/message-sending): A complete guide to sending messages, including chat IDs, options, and common quirks - [Messaging safety limits and recovery](https://docs.blooio.com/guides/messaging-safety): Understand conversation limits, number protections, error codes, and the steps that restore sending - [Message fields reference (v2)](https://docs.blooio.com/guides/message-fields): Every field on a v2 message object, plus the full status lifecycle and protocol (transport) states - [Message fields reference (v4)](https://docs.blooio.com/guides/message-fields-v4): Every field on a v4 multi-channel message object, plus the full status lifecycle and protocol (transport) states across iMessage, SMS, RCS, WhatsApp, and Apple Messages for Business - [Send iMessage with Python](https://docs.blooio.com/guides/send-imessage-api-python): A hands-on Python tutorial for sending and receiving iMessages via the Blooio REST API — requests, async with httpx, webhooks, and a working FastAPI example. - [Send iMessage with Node.js](https://docs.blooio.com/guides/send-imessage-api-nodejs): A Node.js (JavaScript and TypeScript) tutorial for sending and receiving iMessages via the Blooio REST API — fetch, async/await, Express webhooks, and bulk patterns. - [Contact cards (Name & Photo)](https://docs.blooio.com/guides/contact-card): How to manage and share your iMessage contact card — the Name & Photo identity others see in conversations - [Number Purchase API](https://docs.blooio.com/guides/number-purchase-api): Programmatically browse, buy, and remove Blooio lines over the v4 API — including the KYC, access-approval, and billing steps required before you can purchase. - [Tracking trends and conversation insights](https://docs.blooio.com/guides/conversation-insights): Use the Bloobability v2 decide endpoint to judge conversations against your own policies with the instant or full model, estimate how often each policy applies, and track how those rates move over time. - [Receive webhooks locally](https://docs.blooio.com/guides/webhooks-local): Tunnel your local server and test Blooio webhook deliveries - [Verify webhook signatures](https://docs.blooio.com/guides/webhook-signatures): Cryptographically verify that webhooks are genuinely from Blooio - [Send attachments](https://docs.blooio.com/guides/attachments): Include media URLs when sending messages - [Rich link previews](https://docs.blooio.com/guides/link-previews): Send URL messages with iMessage-style rich previews, override the image and title, and batch-send multiple links in one request - [Custom bubbles (iMessage apps)](https://docs.blooio.com/guides/custom-bubbles): Send and receive bring-your-own iMessage app extension bubbles - [Find My & Check In bubbles](https://docs.blooio.com/guides/apple-system-apps): Send Apple's first-party Find My and Check In iMessage app bubbles - [Contact flows](https://docs.blooio.com/guides/contact-flows): Check iMessage/SMS capabilities and choose the best channel - [Error handling & retries](https://docs.blooio.com/guides/error-handling): Handle common errors, rate limits, and implement safe retries - [Twilio Integration](https://docs.blooio.com/guides/twilio-integration): Send SMS/MMS messages using your own Twilio account - [WhatsApp Business](https://docs.blooio.com/guides/whatsapp-business): Send and receive WhatsApp messages through the official WhatsApp Business Platform (Cloud API) — templates, the 24-hour customer service window, media, and interactive messages - [Location tracking (FindMy)](https://docs.blooio.com/guides/location-tracking): How to track the real-time location of contacts who share their location via Apple FindMy - [FaceTime calls](https://docs.blooio.com/guides/facetime): How to initiate FaceTime calls programmatically and get shareable links - [Apple Messages for Business](https://docs.blooio.com/guides/apple-messages-for-business): Connect your brand to Apple Messages for Business and answer customers inside the Messages app through the Blooio v4 API — inbound-first, brand-scoped, and consent-gated. - [Monthly active users](https://docs.blooio.com/guides/apple-messages-mau): What a Monthly Active User (MAU) is on Apple Messages for Business — a unique customer who exchanges at least one message with a brand in a calendar month. - [Rich links & media](https://docs.blooio.com/guides/apple-messages-rich-links): Send text, rich link cards, images, video, and files in an Apple Messages for Business conversation — the everyday content types that sit alongside interactive messages. - [Sign in (OAuth 2.0)](https://docs.blooio.com/guides/apple-messages-sign-in): Authenticate a customer inside an Apple Messages for Business conversation with Apple's native Sign in sheet and your OAuth 2.0 identity provider, then exchange the authorization code server-side. - [Conversation lifecycle](https://docs.blooio.com/guides/apple-messages-conversations): How an Apple Messages for Business conversation flows end to end — inbound-first threading, typing indicators, read receipts, bot-to-human handoff, and closing — all through the Blooio v4 chats API. - [Number Pools](https://docs.blooio.com/guides/number-pools): How sender number selection works for Blooio and Twilio messages