- Shared number
- Standard email support
- 15 new contacts/day
- CRM integrations included
- Full API access
- Limited to 1 number
- No hidden fees
- Does not support custom area codes
iMessage Python SDK
Send and receive iMessages from Python with Blooio's official iMessage Python SDK. Ships with both a sync client (for scripts, Celery tasks, Jupyter notebooks) and an async client (for FastAPI and asyncio applications), pydantic-typed payloads, and first-class webhook helpers for Flask and FastAPI.
Install
One command to add the iMessage Python SDK to your project.
pip install blooio
# or with uv
uv pip install blooioSend your first iMessage
This is the smallest working example — authenticate with your Blooio API key, then call the send-message method on the client.
from blooio import Blooio
blooio = Blooio(api_key="blooio_live_...")
blooio.chats.send_message(
phone="+15551234567",
body="Hey Alex — thanks for booking a demo. Reply with any questions.",
)Handle inbound iMessages and webhooks
Every inbound iMessage, delivery, read, and reaction event is POSTed to your webhook URL. Use the SDK's signature verifier to reject forged requests and deserialize the payload into typed objects.
from fastapi import FastAPI, Request, HTTPException
from blooio import verify_webhook, InvalidSignature
app = FastAPI()
@app.post("/webhooks/blooio")
async def blooio_webhook(request: Request):
body = await request.body()
signature = request.headers.get("x-blooio-signature", "")
try:
event = verify_webhook(
body=body,
signature=signature,
secret="whsec_...",
)
except InvalidSignature:
raise HTTPException(status_code=401, detail="bad signature")
if event.type == "message.received":
print("Inbound iMessage:", event.data.body)
return {"ok": True}What the SDK gives you on top of raw REST
- Sync (requests) and async (httpx) clients that share a typed interface
- pydantic models for every endpoint and webhook payload
- Automatic retries with exponential backoff on 429 and 5xx responses
- Drop-in webhook verifiers for Flask, FastAPI, and Django
- Batched send helpers for bulk campaigns with rate-limit awareness
- Python 3.9+ supported — works in Lambda, Cloud Run, and containers
Python iMessage SDK FAQ
How do I install the Blooio iMessage Python SDK?+
Does the Python iMessage SDK support async?+
How do I verify Blooio webhook signatures in Python?+
Does the Python SDK support bulk iMessage sends?+
Is the Python SDK open source?+
6 lines → $195/line
Simple, transparent pricing
Choose the plan that fits your volume and scale as you grow.
- Dedicated number
- Unlimited Messages⁴
- Inquire about FaceTime support
- Custom area code ($75/number one-time fee)
- Full API access
- CRM integrations included
- Number porting included
- No activation fee
- No hidden fees
- Shared number
- Standard email support
- 15 new contacts/day
- CRM integrations included
- Full API access
- Limited to 1 number
- No hidden fees
- Does not support custom area codes
- Dedicated number
- Unlimited Messages⁴
- Inquire about FaceTime support
- Custom area code ($75/number one-time fee)
- Full API access
- CRM integrations included
- Number porting included
- No activation fee
- No hidden fees
Concierge
Need a hands-on implementation? Let our team build it for you.
Related Guides
Send iMessage Programmatically
Step-by-step guide to sending iMessages via API from your application.
Read guideiMessage for Business
How businesses use iMessage to engage customers with higher open rates than SMS or email.
Read guideBuild an iMessage Bot
Create automated iMessage bots for customer support, sales, and notifications.
Read guide