Create an API key and make your first request
Generate an API key in Settings, then check your balance, add a contact and verify addresses with the InboxRoads REST API.
The InboxRoads REST API lets you add contacts from your website, verify addresses from your own app, and check your balance. The base URL is https://inboxroads.com/api/v1.
Create an API key
- Go to Settings and find the API keys card. Your email address must be confirmed.
- Enter a Key name that says where it's used, such as "Website signup form".
- Click Create key.
- Copy the key right away. It's shown only once.
Keep the key secret. It has full access to your account's API. To stop a key working, click Revoke next to it. The list shows when each key was last used.
Authenticate your requests
Send these headers with every request:
Authorization: Bearer YOUR_KEY
Accept: application/json
The API allows up to 120 requests per minute per account.
1. Check your credit balance
curl https://inboxroads.com/api/v1/credits \
-H "Authorization: Bearer YOUR_KEY" \
-H "Accept: application/json"
The response includes balance and your 20 most recent recent_transactions.
2. Add or update a contact
curl -X POST https://inboxroads.com/api/v1/contacts \
-H "Authorization: Bearer YOUR_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Doe",
"company": "Example Co",
"country": "US",
"custom_fields": {"plan": "pro"},
"lists": ["LIST_ID"],
"consent_source": "website-form"
}'
emailis required. The other fields are optional:first_name,last_name,company,phone,country(two-letter code),custom_fields,listsandconsent_source.liststakes list IDs. Get them fromGET /api/v1/lists, or create a list withPOST /api/v1/lists.- A new contact returns
201. An existing email is updated and returns200. - Only use this for people who agreed to receive your email. Suppressed addresses are created as unsubscribed.
3. Verify email addresses
curl -X POST https://inboxroads.com/api/v1/verify \
-H "Authorization: Bearer YOUR_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"emails": ["jane@example.com", "info@example.org"], "name": "Signup check"}'
- Send up to 50,000 addresses in
emails.nameis optional. - The response is
202with a jobid. Credits are reserved once duplicates and malformed addresses are removed, and the job runs in the background. - Check progress with
GET /api/v1/verify/{id}. Whenstatusiscompleted, the response includesresults, with each address'sstatusandsub_status. See verification results explained.
If your balance is too low, the API returns 402 with an "Insufficient credits" message.
Other endpoints
GET /lists, POST /lists, GET /contacts (filter with ?email= or ?list=), GET /contacts/{id}, DELETE /contacts/{id}, GET /campaigns, GET /campaigns/{id} and GET /domains.
Key takeaways
- Create keys under Settings → API keys. They're shown only once.
- Send
Authorization: Bearer YOUR_KEYandAccept: application/jsonwith every request. - Verification via the API starts automatically. Poll the job until it's completed.
Still stuck? Our team answers every message.
Contact supportLast updated September 22, 2026