Developer guideiMessage API6 min read
iMessage API without a Mac
Use Flow's hosted iMessage API from a server, Linux or Windows with no Mac. See what the DIY Mac route costs and why a hosted agent platform is simpler.

The short answer
You do not need your own Mac to use iMessage from code. Flow runs the Apple side for you, and you call one API from any server, language or operating system. The DIY route needs a Mac that stays signed in to Messages, and you carry its uptime.
Building on the iMessage API? Build on iMessage with Flow: one agent for iMessage, WhatsApp and Telegram. New to it? Read the iMessage API guide.
The short answer
You do not need a Mac to use iMessage from code. You need a provider that runs iMessage lines and exposes them over an API. Your code stays on whatever server you already use.
Apple has no public iMessage API for servers. So every option is either a hosted service that runs the Apple side for you, or a bridge you run yourself on a Mac. The iMessage API guide explains the background.
Why people think they need a Mac
iMessage only runs on Apple software. The obvious DIY idea is to leave a Mac signed in to Messages and drive it with a script. That is where the “you need a Mac” idea comes from. It is true for a relay you run yourself. It is not true for hosted providers.
Hosted or DIY
| Hosted iMessage API | DIY Mac relay | |
|---|---|---|
| Who runs the Apple side | The provider | You |
| What you need | An API key and a line | A Mac that stays on and signed in |
| Where your code runs | Anywhere | Anywhere that can reach the Mac |
| Uptime | The provider’s | Yours |
| Apple changes | The provider handles them | You handle them |
| Cost | Provider pricing: per line, message or user | Hardware plus your time |
| Best for | Products and AI agents | Personal projects and experiments |
The trade is simple. A hosted provider charges you so that the Mac, the Apple ID and the uptime are not your problem. If you only want to text yourself from a script, the DIY route can be enough. If customers depend on it, it is a lot to own.
Call it from Linux or Windows
A hosted API is plain HTTPS, so the operating system does not matter. This is Flow’s reply call from its quickstart. It runs the same on Linux, Windows with curl, or macOS:
# Read the newest inbound messages from the event log.
curl -G https://api.flow.engineer/v1/events \
-H "Authorization: Bearer $FLOW_MESSAGING_KEY" \
--data-urlencode "type=message.received"
# Reply into the conversation named in the event.
curl https://api.flow.engineer/v1/conversations/conv_01JB8ZC3K5M7P9R1T3V5X7Z9B1/messages \
-H "Authorization: Bearer $FLOW_MESSAGING_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"content": {"type": "text", "text": "Hello from my agent"}}'
Flow’s self-serve test key runs on a Telegram sandbox bot. The code is the same on Flow’s iMessage numbers. Send iMessage programmatically walks through curl, TypeScript and Python.
What you still need
Going Mac-free removes the hardware, not the design work. You still need to:
- Verify webhooks and ignore duplicate events.
- Follow the line’s rules. On Flow, customers text the line first unless a dedicated line has the outbound add-on, and groups are join-only. Other providers differ. The provider comparison lists them.
- Handle consent and opt-outs, and check your provider’s rules on what data can go over iMessage.
- Plan for outages and throttles. Ask every provider what happens to your line when something goes wrong.
If you are choosing between providers, start with the best iMessage API and pricing compared.
Frequently asked questions
Can I send iMessage without a Mac?
Yes. A hosted iMessage API provider runs the iMessage lines, and you call its REST API from any computer. You only need a Mac if you choose to run your own relay.
Can I use an iMessage API from Linux or Windows?
Yes. A hosted API is plain HTTPS, so curl, Node, Python or any other language works on Linux, Windows or macOS. Flow's quickstart shows the same calls in curl, TypeScript and Python.
Can I run my own iMessage relay instead?
Yes, with a Mac that stays on and signed in to Messages. Then the hardware, the Apple ID and the uptime are yours. Most products use a hosted API instead.
Is the DIY Mac route cheaper?
It can be for a personal project. For a product you also pay for the hardware, the Apple ID, uptime and maintenance, and you own every problem when Apple changes something.
Does Flow need me to run a Mac?
No. Flow's iMessage numbers are hosted. Your agent calls the Flow API from your own servers.
Can an AI agent use iMessage without a Mac?
Yes. The agent runs wherever you host it, receives a webhook or event stream from the provider, and replies through the API. The provider handles iMessage itself.
Keep reading
All posts: the Flow blog. The Flow docs have the reference.
From reading to building
Your agent, on iMessage and everywhere else.
Flow gives your agent an iMessage line, and the same code answers on WhatsApp and Telegram and works as an MCP server and CLI. See how it works on iMessage.
Build on iMessage with Flow