Complete reference for the Vend Email API endpoints.
View domains available to use in your account.
Retrieve a list of all domains in your account.
GET /api/v1/domains
Get details about a specific domain.
GET /api/v1/domains/:id
Manage email forwarding addresses and their configurations.
Retrieve a list of all forwarders in your account.
GET /api/v1/forwarders
Get details about a specific forwarder.
GET /api/v1/forwarders/:id
Create a new email forwarder.
POST /api/v1/forwarders
{
"local_part": "sales",
"domain_id": 1,
"name": "John Doe",
"recipients": "team@example.com, jane@example.com",
"title": "Sales inquiries",
"description": "Forward sales inquiries to the sales team",
"supporting_details": "Include any additional information here",
"tags_string": "Sales, Inquiries",
"price": 0.00
}
Update an existing forwarder's configuration.
PATCH /api/v1/forwarders/:id
{
"name": "Jane Doe"
}
Remove a forwarder.
DELETE /api/v1/forwarders/:id
Create a ready-to-use alias in a single request. Pass a template and Vend Email fills in the domain, recipients, sender name and tags for you. Ideal for browser extensions, bookmarklets and scripts.
Both fields are optional. Omit local_part and an available address is generated using the template’s naming style; omit forwarder_template_id and your first available domain and default recipients are used.
POST /api/v1/quick-forwarder
{
"forwarder_template_id": 1,
"local_part": "acme"
}
Returns 201 Created with the finished address, ready to paste:
{
"email": "acme@vend.email",
"template_id": 1,
"forwarder": {
"id": 42,
"email": "acme@vend.email",
"to": "you@example.com",
"active": true
}
}
If the address is taken, your plan limit is reached, or the template’s domain is no longer available to you, the response is 422 Unprocessable Entity:
{
"error": "Local part has already been taken"
}
Verify an address before claiming it. domain_id is optional when forwarder_template_id is given.
GET /api/v1/quick-forwarder/availability?local_part=acme&domain_id=1
{
"email": "acme@vend.email",
"available": true
}
Templates store the defaults used by quick create: a domain, recipients, sender name, tags and the style of randomly generated address.
Get all templates in your account, most recently used first.
GET /api/v1/templates
[
{
"id": 1,
"name": "Online shopping",
"color": "cyan",
"generator": "memorable",
"sender_name": "John Doe",
"recipient": "you@example.com",
"tags": ["Shopping", "Receipts"],
"domain": { "id": 1, "host_name": "vend.email" },
"usage": { "count": 12, "last_used_at": "2026-09-01T09:12:44.000Z" }
}
]
Get details about a specific template.
GET /api/v1/templates/:id
Only name and domain_id are required. generator accepts memorable, name or alphanumeric; color accepts cyan, violet, emerald, amber, rose or slate.
POST /api/v1/templates
{
"name": "Online shopping",
"domain_id": 1,
"sender_name": "John Doe",
"recipient": "you@example.com",
"tags_string": "Shopping, Receipts",
"generator": "memorable",
"color": "cyan"
}
Update an existing template.
PATCH /api/v1/templates/:id
{
"recipient": "shopping@example.com"
}
Remove a template. Aliases already created from it are unaffected.
DELETE /api/v1/templates/:id
Manage your list of approved email senders.
Get all approved sender addresses.
GET /api/v1/safe-senders
Get details about a specific safe sender.
GET /api/v1/safe-senders/:id
Add a new approved sender.
POST /api/v1/safe-senders
{
"email": "trusted@partner.com"
}
Remove an address from approved senders.
DELETE /api/v1/safe-senders/:id
Manage your list of blocked email senders.
Get all blocked sender addresses.
GET /api/v1/unsafe-senders
Get details about a specific unsafe sender.
GET /api/v1/unsafe-senders/:id
Add a new blocked sender.
POST /api/v1/unsafe-senders
{
"email": "spam@example.com"
}
Remove an address from blocked senders.
DELETE /api/v1/unsafe-senders/:id
Manage tags for organizing forwarders.
Get all tags in your account.
GET /api/v1/tags
Get details about a specific tag.
GET /api/v1/tags/:id
Create a new tag.
POST /api/v1/tags
{
"name": "Productivity",
}
Update an existing tag.
PATCH /api/v1/tags/:id
{
"name": "Sales",
}
Remove a tag.
DELETE /api/v1/tags/:id