429 and a Retry-After header, you back off, you continue.
Sending capacity caps how many new conversations one line starts per day. It is a deliverability limit, not a technical one. It exists to protect how recipients and their devices treat your line. You cannot back off and retry your way past it in the same hour.
API rate limits
Limits apply per API key, across all lines on that key.
Every response carries your current counters.
Read
X-RateLimit-Remaining on every response and slow down before you hit zero. That is cheaper than handling 429s.
Sending a message
POST https://api.bluereacher.com/functions/v1/messages
Authenticate with Authorization: Bearer bluereacher_your_api_key.
429 looks like this.
external_id before you add retries. Without it, a retry after a timeout can deliver the same message twice.
line_capacity_reached error is pointless. That Retry-After can be hours. Route the message to another line or queue it for tomorrow.
Sending capacity
Every BlueReacher line is a dedicated iMessage line, managed for you. Each one has a daily allowance of new conversations.
A second cap applies on top: 20 new conversations per line per rolling 60 minutes. This stops a burst from looking like a blast.
A conversation counts as new when you message someone the line has not exchanged messages with in the last 30 days. Replies inside an active thread do not count. A line at its daily cap can still answer everyone who wrote back.
Why capacity exists
Sender reputation. There is no A2P registration required on a BlueReacher line, so nothing here comes from a carrier registry or a campaign approval queue. The limit comes from recipient behavior. Recipients report messages as junk. They block numbers. Those signals get counted against the line that sent the message, and a line carrying too many of them starts landing badly for everyone you message from it, including people who wanted to hear from you. Damage compounds and it is slow to undo. Pacing keeps the signals low. BlueReacher spreads a line’s daily allowance across its sending window with randomized gaps rather than firing everything at once. Lines are also monitored for health. If a line’s block and report rate climbs past 2 percent of recipients, its daily capacity drops automatically until the rate recovers. If 120 consecutive outbound messages from a line go unanswered, new-conversation sending on that line pauses so you can fix the list or the copy.Checking a line
GET https://api.bluereacher.com/functions/v1/lines/{line_id}
Authenticate with Authorization: Bearer bluereacher_your_api_key.
Poll this before each batch and route around any line where
remaining_today is zero or status is throttled.
Scale by adding lines, not by pushing one line
Capacity is per line, so volume is a multiplication problem. One line at 100 per day is the ceiling. Ten lines at 100 per day each is 1,000 per day, with every line still inside a safe range.
Rules that keep this working:
- Sort your list by line, not by line by list. One prospect gets messaged from one line and stays with that line for the whole sequence. Switching mid-thread confuses the recipient and splits your reply history.
- Fill lines evenly. Running three lines at capacity and seven at 10 percent gives you the risk profile of three hot lines.
- Add lines before you need them, not the week you need them. A new line takes three weeks to reach full capacity, so order for the volume you want a month out.
- Watch reply rate per line. A line that sends 100 and gets 2 replies has a copy problem that more lines will only spread around.