Limits and throughput

senderZ publishes its rate limits, throughput caps, and escalation process. The contact-based model means unlimited messages to contacts you've already reached; the limits on this page apply to new contacts and carrier-level safety throttling.

On this page

Plan limits overview

senderZ has three paid plans and a 14-day free trial. Every plan includes unlimited messages to existing contacts. Plan differences are on three axes: new-contacts per day and per month, dedicated phone numbers, and API throughput.

See /pricing for the full plan card.

New-contact caps by plan

A new contact is a phone number the tenant has never successfully messaged before. Caps apply per calendar day (UTC reset at midnight) and per calendar month.

Plan New contacts / day New contacts / month Dedicated numbers
Starter102500 (pooled)
Growth501,2501
Scale50010,0003

Trials grant Starter-level caps. Messages to contacts beyond the cap are queued and released at UTC midnight when the day counter resets. The monthly counter resets on the first of each month.

API rate limits

Per API key, per minute, fixed bucket. Starter 60 req/min, Growth 300 req/min, Scale 1,500 req/min. Burst tolerance is the full limit inside the one-minute window. Exceeding the limit returns HTTP 429 with a Retry-After header indicating seconds until the bucket refills.

Every response includes rate-limit headers: X-RateLimit-Limit (ceiling), X-RateLimit-Remaining (credits left in the current minute), X-RateLimit-Reset (Unix epoch of next reset). Clients should respect these headers and back off rather than retrying blindly.

Session-cookie authenticated requests (portal users) have their own per-session bucket. One portal session cannot starve another tenant's session.

Per-phone throughput

Independent of plan quota, every phone in the senderZ network has hard throughput caps aligned with CTIA P2P guidelines to prevent carrier flagging.

Warming behavior

New phones (and phones that have been idle) ramp up gradually to avoid Apple's spam heuristics flagging the Apple ID. Warming caps are per phone, independent of plan quota.

Phone age Max new contacts / day
Day 1–710
Day 8–1425
Day 15+50

These caps compose with plan new-contact caps. A Starter tenant on a Day 1 phone effectively gets min(10, 10) = 10 new contacts/day from that phone. A Scale tenant on a Day 1 phone gets min(500, 10) = 10 new contacts/day from that phone and must use multiple phones to reach 500.

Hard limits vs planned limits

Two kinds of limits apply. Hard limits are enforced by code and cannot be raised ad hoc: per-phone throughput caps, warming caps, quiet-hours enforcement. These protect the shared carrier relationship and the tenant's own Apple ID.

Planned limits are plan-based caps that can be raised on request: new-contact caps, API rate limits. Operators can adjust these per tenant for specific reasons (contractual commitment, promotional ramp, migration window).

Requesting a ceiling increase

Use the request button below, or email [email protected] with your tenant slug, the limit you want raised, the target volume, the business reason, and the timeframe. Typical turnaround is 2–5 business days.

Increases to hard limits are reviewed on a case-by-case basis and may require moving to a Self-Hosted deployment to avoid impacting shared-pool tenants.

Scale considerations

Two thresholds are worth knowing about in advance.

Moving to Self-Hosted — at roughly $2,000/month in senderZ spend or ~50,000 messages per month, customers should talk to us about Self-Hosted. The economics flip; you get dedicated infrastructure, complete data residency control, and no shared-pool contention.

Twilio fallback activation — at 5,000+ daily SMS combined with $15,000+ MRR, the Twilio SMS backend becomes a candidate for iMessage-incapable recipients. Today the adapter is stubbed and not wired. This threshold is operator-side; customers see no behavior change.

Frequently asked questions

What happens to a campaign that hits its new-contact cap mid-send?

Messages to new contacts beyond the cap are queued and throttled. The router sends as many as the cap allows per day and holds the rest, releasing them at UTC midnight when the counter resets. Messages to contacts the tenant has already reached are never throttled — they ship immediately regardless of the daily cap.

How long does a marketing message held for quiet hours actually wait?

Until 8:00 AM in the recipient's local time, as inferred from area code. A message enqueued at 10 PM Eastern from a tenant sending to an Eastern recipient waits 10 hours. Cloudflare Queues' delayed-delivery feature holds the message; no application-level polling is needed.

At what threshold does senderZ suspend an account?

senderZ does not automatically suspend for quota overruns because unlimited messages to existing contacts are the product. Suspension is reserved for compliance failures: repeated unresolved complaints, TCPA violations confirmed via carrier feedback, or failure to implement STOP handling on a webhook integration. Suspension decisions are manual and communicated over email with a 48-hour appeals window.

Is the API rate limit a sliding window or a fixed bucket?

Fixed one-minute bucket, per API key. At minute boundaries the counter resets. Burst tolerance inside the minute is the full limit — 60 requests in the first second if you want — and subsequent requests return 429 until the bucket refills. X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers ship on every response.

Do existing contacts really count as unlimited?

Yes. A contact is "existing" for a tenant once any message has successfully delivered between the tenant and that number — outbound or inbound. From that point forward every message to that number counts against per-phone throughput limits (carrier safety) but never against the tenant's new-contact cap. The contact-based pricing model is built around this distinction.

Do limits change on weekends or holidays?

No. Limits are fixed calendar-day UTC resets. Quiet hours are fixed 20:00–08:00 local regardless of weekday. There is no "business-day only" mode today. Customers who want their own calendar discipline should schedule at their application layer.

Need something formal?

We share our DPA, SOC 2 status, security questionnaire responses, and other formal materials under NDA. Email us or request access below.