Dedicated IPs
Provision and manage dedicated sending IPs and their domain assignments.
A dedicated IP is an address reserved for your organization, isolated from other senders. New IPs are provisioned through your sending provider, warmed up gradually, then assigned to domains. Available on Business and Enterprise plans.
Provision a dedicated IP
POST /v1/ips
Requires full_access scope.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | No | Sending provider: ses or mailgun. Defaults to ses. |
{
"provider": "ses"
}
Response
{
"id": "ip_abc123",
"ip_address": "pending-ip_abc123",
"provider": "ses",
"status": "provisioning",
"warmup_day": 0,
"warmup_progress": 0,
"pool_name": "sendry-org_abc123-ip_abc123",
"created_at": "2025-03-12T09:00:00Z"
}
ip_address is a placeholder until the provisioning webhook confirms the address assigned by the provider. Check status with Get dedicated IP details.
List dedicated IPs
GET /v1/ips
Requires read_only scope.
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 50 | Results per page (1-100). |
cursor | string | Pagination cursor. |
Response
{
"data": [
{
"id": "ip_abc123",
"ip_address": "203.0.113.10",
"provider": "ses",
"status": "warming",
"warmup_day": 4,
"warmup_progress": 35,
"pool_name": "sendry-org_abc123-ip_abc123",
"created_at": "2025-03-12T09:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}
Get dedicated IP details
GET /v1/ips/:id
Requires read_only scope. Returns the IP plus its domain assignments.
Response
{
"id": "ip_abc123",
"ip_address": "203.0.113.10",
"provider": "ses",
"status": "active",
"warmup_day": 30,
"warmup_progress": 100,
"pool_name": "sendry-org_abc123-ip_abc123",
"assignments": [
{
"id": "ipa_abc123",
"domain_id": "dom_abc123",
"domain_name": "acme.com",
"created_at": "2025-03-20T11:30:00Z"
}
],
"created_at": "2025-03-12T09:00:00Z"
}
Status values: provisioning, warming, active, inactive
Release a dedicated IP
DELETE /v1/ips/:id
Requires full_access scope. Releases the IP, deletes its provider pool, and removes all domain assignments.
{
"deleted": true
}
Assign IP to a domain
POST /v1/ips/:id/assign
Requires full_access scope. The IP must be in warming or active status.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
domain_id | string | Yes | ID of the domain to assign the IP to. |
{
"domain_id": "dom_abc123"
}
Response
{
"id": "ipa_abc123",
"ip_id": "ip_abc123",
"domain_id": "dom_abc123",
"created_at": "2025-03-20T11:30:00Z"
}
Remove IP assignment
DELETE /v1/ips/:id/assign/:assignmentId
Requires full_access scope.
{
"deleted": true
}
Plan limits
| Plan | Dedicated IPs |
|---|---|
| Free | None |
| Pro | None |
| Business | 1 |
| Enterprise | Unlimited |