Your First Message
Go from zero to a delivered iMessage in under 10 minutes.
This tutorial walks you through the entire setup — creating an account, connecting Coop Desktop, and sending a message from both the dashboard and the API.
By the end, you'll have a working Coop setup and understand how messages flow from your app to a recipient's phone.
Prerequisites
- An email address
- A Mac (or Mac Mini) signed into iMessage with an active phone number
- The Mac needs to stay powered on and connected to the internet
Step 1: Create your account
Go to the Coop dashboard and click Sign Up.
Fill in your name, email, and a password. You'll be prompted to create a new organization — this is the workspace where your team's messages, contacts, and settings live. Pick a name and continue.
You can also sign up with Google. If you do, you'll be asked to create an organization on the next screen.
You're now logged into the dashboard.
Step 2: Install Coop Desktop
Coop Desktop is the app that runs on your Mac and bridges iMessage to the cloud. Without it, Coop has no way to send or receive messages.
Download and install
During onboarding, the dashboard provides a download link for Coop Desktop. Download the DMG, open it, and drag Coop to your Applications folder.
Connect
- In the onboarding wizard, click Open Coop Desktop
- The dashboard generates a registration token and passes it to Coop Desktop automatically via the
coop://URL scheme - Coop Desktop registers with your organization — no manual token copy/paste needed
Coop Desktop will:
- Authenticate with the Coop API
- Sync your existing iMessage contacts and conversations
- Start listening for incoming messages
- Begin processing your outbound message queue
Verify
Back in the dashboard, the onboarding wizard automatically detects the connection and advances to the next step. You can also check Settings > Relays — your Mac should appear with a green Online status.
Step 3: Send a message from the dashboard
- Go to Messages in the sidebar
- Click New Message
- Enter a phone number (use E.164 format, e.g.
+15551234567) - Type a message
- Click Send
Watch the status update in real-time: queued → processing → sent → delivered.
That's it — you just sent an iMessage through Coop.
Step 4: Send a message from the API
Now let's do the same thing programmatically.
Create an API key
- Go to Settings > API Keys
- Click Create Key
- Give it a name and click Create
- Copy the key — it's only shown once
Send the request
curl -X POST https://api.coop.example.com/api/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+15551234567",
"body": "Hello from the Coop API!"
}'You'll get back a response with the message ID and status:
{
"id": "msg_abc123",
"status": "queued",
"to": "+15551234567",
"body": "Hello from the Coop API!",
"createdAt": "2025-01-15T10:30:00Z"
}Check delivery status
curl https://api.coop.example.com/api/v1/messages/msg_abc123/status \
-H "Authorization: Bearer YOUR_API_KEY"{
"id": "msg_abc123",
"status": "delivered",
"attempts": 1,
"sentAt": "2025-01-15T10:30:02Z",
"deliveredAt": "2025-01-15T10:30:05Z"
}What you've learned
You now have a working Coop setup:
- An organization with your team
- Coop Desktop running on your Mac, connected to the API
- The ability to send messages from the dashboard and from code