Get dedicated IP status
/api/v1/dedicated-ipYour dedicated sending address and its warm-up state. An organization on a shared IP gets a populated object whose state is shared and whose address is null — NOT a null result, and never an error. Reachable with an organization API key carrying account:read; a key without that scope is refused with 403.
Request
/api/v1/dedicated-ipcurl -X GET 'https://app.mailyte.com/api/v1/dedicated-ip' \
-H 'Authorization: Bearer mk_live_YOUR_API_KEY'const response = await fetch('https://app.mailyte.com/api/v1/dedicated-ip', {
method: 'GET',
headers: {
Authorization: 'Bearer mk_live_YOUR_API_KEY',
},
});
const { data } = await response.json();import requests
response = requests.get(
"https://app.mailyte.com/api/v1/dedicated-ip",
headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
)
data = response.json()["data"]<?php
$response = Http::withToken('mk_live_YOUR_API_KEY')
->get('https://app.mailyte.com/api/v1/dedicated-ip');
$data = $response->json('data');require "net/http"
require "json"
uri = URI("https://app.mailyte.com/api/v1/dedicated-ip")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer mk_live_YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
Success.
dataobjectobjectstringdedicated_ipstatestringshared | requested | provisioning | warming | live | paused | quarantinedWhere your dedicated IP stands. -
shared: you use the shared pool (the default). -requested: you applied and it is being reviewed. -provisioning: approved and being set up. -warming: assigned and ramping up; seewarmup. -live: fully warmed and sending at full rate. -paused: sending stopped, the address kept. -quarantined: withdrawn because of a reputation problem.addressstringYour dedicated IP address. Null until one is assigned.
spf_includestringWhat to add to your SPF record to allow this address, such as
include:spf.your-slug.example. Null until an address is assigned.requested_atstringWhen you applied for a dedicated IP. Null if you never have.
live_atstringWhen the address finished warming and began sending at full rate. Null until then;
statesays where it is.warmupobjectThe warm-up, while it runs. Null when there is none. If
stateiswarmingand this is null, the figures could not be read: try again.dayintegerThe day of the warm-up schedule.
daily_limitintegerHow many recipients this address may take today.
sent_todayintegerRecipients this address has taken today.
remainingintegerHow many more recipients it may take today:
daily_limitminussent_today, never below 0.completes_onstringWhen the warm-up is due to finish. Null when it cannot be worked out.
termsobjectThe dedicated-IP addendum, as it stands for this organization.
version_in_forcestringThe version of the dedicated IP terms a new application must accept.
accepted_versionstringThe version of the terms you accepted. Null when you have not accepted any. It can be older than
version_in_force; that is normal.accepted_atstringWhen you accepted the terms. Null when you have not.
eligibilityobjectWhether a dedicated IP can be requested, and the figures worth seeing before deciding to.
can_requestbooleanWhether a request would be accepted right now. Governed by
requirementsalone; everything else in this object is disclosure and never blocks a request.requirementsobjectThe two HARD requirements. Both must be true for
can_request.domain_verifiedbooleanAt least one domain verified for sending. See
verified_domainsfor which.marketing_approvedboolean
verified_domainsarray<string>Domain NAMES, not ids — the list that satisfies
domain_verified, readable without a second lookup.monthly_volumeintegerEmails you sent in the last 30 days.
volume_thresholdintegerThe monthly volume at which a dedicated IP starts to pay off. Compare it with
monthly_volume.bounce_ratenumberThe percentage of the last 30 days' deliveries that bounced. Null when nothing was sent.
can_return_to_sharedbooleanWhether this organization may move back to the shared pool, which the addendum permits at any time. It is also how an application is withdrawn.
Returned inside the standard envelope.
Errors
| Status | When |
|---|---|
401 | The API key is missing, unknown, revoked or expired. All four answer identically, on purpose: distinguishing them would confirm which keys exist. |
403 | The key is valid but may not do this: it lacks the required scope, its IP allowlist does not include you, or this endpoint does not accept API keys. |
404 | No such resource in this organization. |
422 | The request was understood but the values were not acceptable. |
429 | Too many requests, or the organization has spent its sending allowance. `Retry-After` says how long to wait. |
Every status, with what causes it and what to do, is on the error reference.