Authorization header.
Get your API key
1
Sign in
Sign in to your Reply.io dashboard.
2
Open API key settings
Go to Settings → API Key.
3
Create or copy a key
Create a new API key or copy an existing one. Treat your API key like a password.
Authenticate a request
Include your API key as a Bearer token:curl example
Verify your setup
Call/v3/whoami to verify that your API key works. A successful response returns information about the authenticated user:
Unauthorized response
If theAuthorization header is missing, invalid, or contains a revoked API key, the API returns 401 Unauthorized with an empty response body.
The response includes a WWW-Authenticate header:
This empty-body
401 covers key failures — a missing, malformed, or revoked key. A request that presents a valid Team or Organization key but cannot resolve an acting user is different: it returns an application/problem+json body with a code (see Organization API key → Rejection responses).Scopes
Every API key is granted a set of scopes. A scope is a permission such ascontacts:read that controls which endpoints the key can call. Each endpoint requires a single minimal scope, shown as a small note near the top of that endpoint’s reference description (below any Beta notice) — for example:
Endpoints that need no particular permission say No scope required instead — any valid API key can call them (for example, GET /v3/whoami).
Scopes are configured per API key in Settings → API Key. Grant a key only the scopes its integration needs.
Scope format
A scope is written asdomain:verb:
domain— the area of the API the permission applies to (for examplecontacts,sequences,inbox).verb— the level of access within that domain:read— read data.write— create, update, or delete data.operate— trigger runtime actions (for example, push a contact to a sequence, start or pause a sequence, or reply to an inbox thread).
How a key satisfies a required scope
A key can hold a required scope directly, or hold a broader scope that includes it:writeandoperateeach also satisfy areadrequirement — a key that can write or operate in a domain can also read in that domain. (writeandoperateare independent of each other; neither one includes the other.)- A verb wildcard
domain:*satisfies any verb in that domain — for example,contacts:*satisfiescontacts:read,contacts:write, andcontacts:operate. - The global wildcard
*:*satisfies every scope.
contacts:read can be called by a key granted any of contacts:read, contacts:write, contacts:operate, contacts:*, or *:*.
Available scopes
A separate
legacy:use scope governs the older, non-V3 API and does not apply to the V3 endpoints documented here.
Special API keys
In addition to user API keys, Reply supports two centralized authentication methods:- Team keys for a single team/workspace
- Organization API keys for all team/workspaces in an organization
Team key — team level
A Team key provides team/workspace-wide access. Unlike a user API key, which always acts as a single user, a Team key can make requests as any user in the team/workspace. Common use cases include:- Team-wide automation
- Cross-user reporting
- Bulk operations
Permissions and access control
- Only the team/workspace owner can generate and view the Team key.
- The key must be created manually.
- A Team key is unique to its team/workspace.
Acting on behalf of a user
Use one of the following headers:X-User-IdX-User-Email
You only need one header.
Behavior and permission model
Team keys use the same permission model as user API keys.
In all cases, the permissions of the resolved user are applied.
Important notes
- If an impersonation header is provided, the request runs with that user’s permissions.
- If no impersonation header is provided, the request runs with the team/workspace owner’s permissions.
- A Team key does not grant permissions beyond those of the resolved user.
Organization API key — organization level
An Organization API key provides centralized access across every team/workspace in an organization. Unlike a Team key, which is limited to a single team/workspace, an Organization API key can act on behalf of users across all team/workspaces owned by the organization.Availability
- Organization-scoped
- Works across all team/workspaces in the organization
- Multiple keys can be created
- Keys can be named, revoked, and rotated independently
Permissions and access control
By default, Organization Owners can create, view, and revoke organization API keys. Other organization users can be granted role with permission ‘Manage organization API keys’ to manage organization API keys. Keys are managed in: Settings → API keysActing on behalf of a user
Organization API keys always require impersonation. Use one of the following:X-USER-IDX-User-Emailtogether withX-TEAM-ID
X-User-Email is provided without X-TEAM-ID, the request is rejected.
Example:
Behavior and permission model
In all accepted requests, the permissions of the resolved user are applied.
Rejection responses
A rejected impersonation request returnsapplication/problem+json with a stable code you can branch on:
401 with an empty body (see Unauthorized response).
Important notes
- Every request runs with the permissions of the resolved user.
- The resolved user must belong to the same organization that issued the key.
- An Organization API key does not grant permissions beyond those of the resolved user.
Keep your API key safe
- Never commit API keys to source control.
- Never share API keys in public chats or screenshots.
- Rotate your API key from Settings → API Key if you think it has been exposed.