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

# Anti-suspension policy

> How to reduce Instagram suspension risk: reconnect cooldown, account lock, warm-up, and human-like pacing.

<Tip>
  Instagram Direct is not a megaphone. The more traffic looks like a **bot**, the higher the risk — especially on **unofficial**.
</Tip>

## In short

* Risk exists in both modes; **unofficial** needs more care with volume, new accounts, and reconnect loops.
* On **official**, Meta applies its own rules (IGSID, **24h** window, Page/Professional policies).
* You need **opt-in**, allowed content, and gradual use on new accounts.
* Notifique **does not guarantee** zero suspension if usage violates policies.

Modes: [Connection modes](/en/instagram-api/como-funciona/modos-de-conexao).

***

## Official only (Meta)

| Rule                        | Why                                                            |
| --------------------------- | -------------------------------------------------------------- |
| Recipient = **IGSID**       | Messaging API does not use `@username`                         |
| **24h** window              | Outside it, send is rejected until the customer messages again |
| Professional account + Page | Meta prerequisite                                              |
| No edit / unsend            | Meta API limitation                                            |

Follow Meta policies and Notifique [Terms](https://app.notifique.dev/terms).

***

## Unofficial only

Using an unofficial API raises a common question: **what if the account gets suspended?** The short answer: risk is real, especially when traffic looks like a bot or when you **hammer login** after a drop. Notifique adds **brakes** between your code and Instagram.

<Warning>
  The unofficial API **never** eliminates suspension risk. The protections below reduce patterns **we** control (reconnect loops, volume on new accounts, parallelism). A dedicated account and gradual use remain your responsibility.
</Warning>

## What puts the account at risk

| Behavior                                                  | Risk          |
| --------------------------------------------------------- | ------------- |
| Reconnecting in a loop after `login_required` / challenge | **Very high** |
| Brand-new account connected to the API the same day       | High          |
| Many identical DMs in seconds                             | High          |
| Cold outreach (DM to people who never contacted you)      | High          |
| Heavy personal use + API on the same account              | High          |
| Replies to users who already contacted you / opted in     | Lower         |

## New accounts

Newly created Instagram accounts are watched more closely. The platform applies **automatic warm-up** (**15 DMs/day** for the **first 5 days** after `firstConnectedAt`), a **safety ceiling**, not a target.

### Before connecting the API (recommended: 3–7 days)

1. Complete the profile (photo, bio, name).
2. Use the account **manually** in the app (real conversations).
3. Prefer a **dedicated ops account**.
4. Avoid activating the account and connecting the API **on the same day**.

### First days after connecting

| Period       | What to do                                                 |
| ------------ | ---------------------------------------------------------- |
| **Day 0**    | Internal tests only. **Do not** launch a campaign.         |
| **Days 1–5** | Few DMs/day (ideally **5–10**, below the warm-up ceiling). |
| **After**    | Increase slowly if there are no failures or challenges.    |

Check the `warmup` object on **GET /v1/instagram/instances/:id** (`active`, `dailyLimit`, `sentToday`, `daysRemaining`).

## Connection protections (unofficial)

**Unofficial connection** instances have extra rules. Meta BYOK (when available) is out of these guards.

### Permanent account lock

After the first successful login, the instance is bound to one **username** / `igUserPk` (`lockedUsername`).

* **One instance = one account.** You cannot log in a different account on the same instance.
* To use **another account**, **create a new instance**.
* Optionally pass `expectedUsername` on create; mismatch → **409** (`INSTAGRAM_ACCOUNT_MISMATCH`).

### Reconnect cooldown (12 h)

If the session drops **without your action** (login\_required, challenge, dead session), the instance enters a **12-hour cooldown** before accepting a new login.

* `reconnectBlockedUntil` shows when the block ends.
* Attempts during cooldown → **429** (`INSTAGRAM_RECONNECT_COOLDOWN`) with `retryAfterSec`.
* Max **3 logins/hour** per instance.
* **Manual disconnect** (`POST .../disconnect`) does **not** apply this cooldown (clears session, keeps locks).

<Warning>
  If Instagram asked for verification or the account looks restricted, **do not keep requesting login** on the same instance. Wait for the cooldown or **create a new instance** with a healthy account.
</Warning>

### Abuse pause

Signals such as `please_wait`, `feedback_required`, suspension, or provider HTTP 429 apply **`abusePausedUntil`** (default 12 h) and pause the line. Connect attempts → **429** (`INSTAGRAM_ABUSE_PAUSE`).

### Warm-up

**New** instances (`firstConnectedAt` within the first 5 days):

* Cap of **15 DMs per day** (UTC).
* Legacy instances (backfill) **do not** enter warm-up.
* When the limit is hit → **429** (`INSTAGRAM_WARMUP_DAILY_LIMIT`).

## Traffic humanization

Besides connection guards, the platform:

* Spaces sends with **delay + jitter** (non-constant pace).
* Serializes requests per account (**1 in-flight**, send, inbound, and health do not race).
* Varies health probes (account / inbox) and inbound sync intervals.
* Does **not** rotate IP per request (stable residential proxy 1:1 with the account).

## Related error codes

| `code`                         | HTTP | What to do                                                                        |
| ------------------------------ | ---- | --------------------------------------------------------------------------------- |
| `INSTAGRAM_ACCOUNT_MISMATCH`   | 409  | Logged account ≠ lock/expected. Use the correct account or create a new instance. |
| `INSTAGRAM_RECONNECT_COOLDOWN` | 429  | Cooldown or too many logins. Wait for `retryAfterSec` or create a new instance.   |
| `INSTAGRAM_ABUSE_PAUSE`        | 429  | Instagram signaled abuse/rate-limit. Wait for `abusePausedUntil`.                 |
| `INSTAGRAM_WARMUP_DAILY_LIMIT` | 429  | Warm-up daily cap. Send tomorrow (UTC) or wait for warm-up to end.                |
| `INSTAGRAM_SESSION_LOST`       | 409  | Dead session; line marked disconnected.                                           |

Details: [Error responses](/en/guides/conceitos/resposta-de-erros).

## Best practices

1. **Mature the account in the app** 3–7 days before the API.
2. **Do not reconnect in a loop** after a drop or challenge.
3. **Prioritize users who already contacted you** or opted in; avoid cold DMs on new accounts.
4. **Separate** personal and ops accounts.
5. **Monitor** `instagram.instance.disconnected` webhooks and send failures.

## What Notifique does not do

* Does not guarantee zero suspensions.
* Does not replace recipient **consent**.
* Does not remove the need for a **healthy account** and gradual use.

## How Notifique helps

* **Queue and send status** in both modes
* **Automatic warm-up** on new accounts (unofficial)
* **Reconnect cooldown** and abuse pause (unofficial)
* **Username lock** on the instance (unofficial)
* **Meta webhook, IGSID, and 24h window** (official)

## Next steps

* [Connection modes](/en/instagram-api/como-funciona/modos-de-conexao)
* [Instagram Introduction](/en/instagram-api/como-funciona/introducao)
* [Quick Start](/en/instagram-api/como-funciona/quick-start)
* [WhatsApp anti-ban policy](/en/whatsapp-api/como-funciona/politica-anti-banimento) (similar concepts)
