> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tuco.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits & Sending Caps

> Per-line daily and hourly caps Tuco enforces on every send path — including Quick Send, campaigns, and HubSpot — to protect your Apple ID reputation.

## Why we cap your sending

iMessage availability is reputation-driven. When an Apple ID sends a lot of first-touch messages in a short window — especially to numbers that don't have iMessage (Android, landlines) — Apple's spam scoring picks up the pattern and can silently flag the Apple ID. Once flagged, iMessage delivery degrades or stops entirely, and there's no API on Apple's side to clear it.

Tuco enforces three layered caps on every line so a single bulk send can't permanently damage your line's reputation. Caps apply uniformly across **all send paths**: Quick Send, campaigns, dashboard, HubSpot plugin, GHL plugin, and the API.

<Note>
  Caps are per **line**, not per workspace. If you have multiple lines, each one gets its own daily and hourly budget.
</Note>

***

## The three caps

<CardGroup cols={1}>
  <Card title="Daily new-contact cap" icon="user-plus">
    **Default: 50 first-touch sends per line per day.**

    Counts the first message ever sent from this line to a particular recipient (phone or email). Follow-up messages to recipients you've already contacted **do not count** toward this cap.

    Resets at 00:00 UTC.
  </Card>

  <Card title="Daily total messages cap" icon="envelopes-bulk">
    **Default: 75 total sends per line per day.**

    Counts every outbound message regardless of whether the recipient is new or known. Includes follow-ups, reactivation messages, and one-off replies.

    Resets at 00:00 UTC.
  </Card>

  <Card title="Hourly first-touch cap" icon="clock">
    **Default: 50 first-touch sends per line per hour.**

    Smoothing layer to prevent any single hour from concentrating too many "is this number on iMessage?" lookups against your Apple ID. For default-cap lines this is functionally a no-op — the daily cap blocks first. For enterprise lines with raised daily caps (200+), it stops 5-minute blasts.

    Resets every hour on the UTC hour boundary. **Email-channel lines are exempt.**
  </Card>
</CardGroup>

***

## What "first-touch" means

A send is **first-touch** when the line has not previously sent any outbound message to that recipient — measured by phone number, email address, or `leadId`, whichever identifies the contact.

We count any outbound that reached Apple's availability system as "previously sent" — that includes successful delivery, soft fallback to SMS, and even messages currently pending dispatch. The only exclusions are `cancelled` and `failed` (genuinely-aborted sends).

This means: if a previous send to Alice ended up as an SMS fallback, the next send to Alice is **not** first-touch. She's already known to this line.

***

## What happens when you hit a cap

When a send would exceed any cap, Tuco does **not** drop the message. Instead:

* **Quick Send / API:** the response includes an error like `"Daily new contact limit reached (50). This line has already contacted 50 new leads today."` Your client can choose to retry tomorrow or route to a different line.
* **Campaigns:** the campaign processor reschedules the message to fire when the cap resets (the next workspace-day boundary or, for hourly cap, the next hour). No messages are lost.
* **HubSpot / GHL plugins:** the integration returns the cap-reached error; your CRM workflow can branch on it.

You can monitor your current usage in the app under **Lines → \[line] → Today's usage**.

***

## Raising the caps

The defaults are sized for typical outbound — small enough that a single line stays well within Apple's reputation tolerance, large enough that day-to-day operations aren't constrained.

If your workflow legitimately requires higher volume, **contact us at [support@tuco.ai](mailto:support@tuco.ai)** with your use case. We can raise either limit per-line on the Growth and Scale plans. The hourly cap scales proportionally with the daily cap.

<Warning>
  Raising caps doesn't make your line immune to Apple's spam scoring. The caps exist precisely because high-volume first-touch sending damages Apple-ID reputation. We can adjust the caps; we can't change how Apple grades your sending behaviour.
</Warning>

***

## Recommended pacing if your line was recently flagged

If we've reset your line after an Apple flag (or you're starting on a fresh Apple ID), use a conservative warm-up:

| Week    | Daily new-contact cap   |
| ------- | ----------------------- |
| Week 1  | 10                      |
| Week 2  | 20                      |
| Week 3  | 30                      |
| Week 4+ | Back to your normal cap |

Spread sends across business hours; don't fire your full daily budget in one 30-minute window.

***

## How to tell if you're approaching a cap

In the app:

1. Go to **Lines** in the left nav.
2. Click into a line. The "Today's usage" panel shows your current new-contact count and total-message count vs. the cap.

Via Loki (for ops users):

```logql theme={null}
{component="tuco-139.cap.reservation", event="cap.reservation.granted"} | json
  | lineId="<your-line-id>"
  | line_format "{{.newAfter}}/{{.dailyNewLimit}} new, {{.totalAfter}}/{{.dailyTotalLimit}} total"
```

***

## Related

* [Failures, Fallbacks & Delivery Outcomes](/features/failures-and-fallbacks) — what happens to messages that don't deliver
* [Spam Monitor](/features/spam-monitor) — how we detect when Apple flags your line
* [Health Checks](/architecture/health-checks) — per-line availability monitoring
