# Limits and credentials

Understand project access, quotas, key lifetimes and replacement.

<a id="guide-content"></a>



<a id="credentials"></a>

### Developer credentials and safe rotation

In Project → Credentials, an owner or admin can issue a CI tests key (30 days by default) or Local development key (seven days). Both support fixture setup, message read/wait and cleanup, and exclude domain, webhook and credential administration. Keys reach the entire project: use a separate development project to isolate local mail from hosted CI.

1.  Choose Replace on an existing key. The replacement inherits its project and permissions; the old key stays active.
2.  Save the show-once replacement in the intended caller’s secret environment.
3.  Run auth check and the actual mail journey from that caller.
4.  Check the new key’s last-used timestamp, then revoke the old key.

An expiring key’s replacement defaults to seven days; a non-expiring key stays non-expiring unless a bounded lifetime is requested. Expired keys can be replaced; revoked keys cannot. Last-used writes are coalesced to once a minute and show successful authentication, not proof that every caller migrated. Lost issuance responses cannot recover the secret; do not blindly retry replacement. Never put keys in logs, committed files or browser code.

<a id="usage-and-waits"></a>

## Usage and wait limits

Waiting is unmetered and exempt from request rate limits, but received-message quota and concurrent-wait limits still apply. Inspect Usage for the current allowance and reset time. Follow returned retry guidance within your test deadline; a quota error is not a timeout.

Retention controls how long messages remain available. Fixture retention must be at least 60 seconds and stay within the project's plan ceiling. See [wait outcomes](https://www.inboxspec.com/docs/markdown/waits.md) for error handling.
