curl --request GET \
--url https://api.mailbeast.ai/v1/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mailbeast.ai/v1/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mailbeast.ai/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mailbeast.ai/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mailbeast.ai/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mailbeast.ai/v1/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mailbeast.ai/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3f1c2b7e-9a4d-4e18-b2c1-6d8f5a0e7c93",
"emailAddress": "[email protected]",
"firstName": "Jane",
"lastName": "Doe",
"displayName": "Jane Doe",
"provider": "custom",
"status": "active",
"maxEmailsPerDay": 30,
"sendingGapMinutes": 10,
"campaignSlowRamp": false,
"replyToAddress": "[email protected]",
"signature": "Best regards,<br>Jane",
"bcc": "[email protected]",
"automationLanguage": "en",
"warmup": {
"enabled": true,
"strategy": "standard",
"maxPerDay": 15,
"replyRatePercentage": 35,
"rampupEnabled": true,
"dailyRampup": 1,
"randomizer": 0,
"skipWeekends": false,
"timezone": "Europe/London",
"trackingEnabled": true,
"phase": "warming_up",
"startedAt": "2023-11-07T05:31:56Z",
"poolAccess": "free"
},
"tracking": {
"domainId": "9d1f7c4a-6e58-4b32-8a07-3c5d9e2f1b46"
},
"statusMessage": {
"code": "EENVELOPE",
"command": "DATA",
"responseCode": 550,
"response": "550-5.4.5 Daily user sending limit exceeded.",
"message": "Daily user sending limit exceeded",
"occurredAt": "2023-11-07T05:31:56Z"
},
"tags": [
{
"id": "5c9b1e77-2f4a-4c31-9d8e-1a2b3c4d5e6f",
"name": "client-acme",
"color": "#4F46E5"
}
],
"healthScore": 98,
"smtp": {
"host": "smtp.acme.com",
"port": 587,
"username": "[email protected]"
},
"imap": {
"host": "imap.acme.com",
"port": 993,
"username": "[email protected]"
},
"verification": {
"overallStatus": "pending",
"smtp": "active",
"imap": "not_checked",
"dns": {
"mx": "not_checked",
"spf": "not_checked",
"dkim": "not_checked",
"dmarc": "not_checked"
}
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"meta": {
"hasMore": true,
"nextCursor": "eyJ0cyI6IjIwMjYtMDctMDJUMDA6MDA6MDAuMDAwWiIsImlkIjoiM2YxYzJiN2UtOWE0ZC00ZTE4LWIyYzEtNmQ4ZjVhMGU3YzkzIn0"
}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_failed",
"message": "One or more fields are invalid.",
"status": 400,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f",
"details": [
"name should not be empty"
]
}
}{
"error": {
"type": "authentication_error",
"code": "unauthenticated",
"message": "Missing or invalid API key.",
"status": 401,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f"
}
}{
"error": {
"type": "authorization_error",
"code": "permission_denied",
"message": "This API key is missing the required scope.",
"status": 403,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval in the Retry-After header.",
"status": 429,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f",
"retryAfter": 30
}
}List mailboxes
List your mailboxes, newest first, with stable cursor pagination. Filter by status or tags (any-of), or pass email to look one mailbox up by its address instead of by id.
Requires one of the following scopes: accounts:read, accounts:all, all:read, all:all.
curl --request GET \
--url https://api.mailbeast.ai/v1/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mailbeast.ai/v1/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mailbeast.ai/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mailbeast.ai/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mailbeast.ai/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mailbeast.ai/v1/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mailbeast.ai/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3f1c2b7e-9a4d-4e18-b2c1-6d8f5a0e7c93",
"emailAddress": "[email protected]",
"firstName": "Jane",
"lastName": "Doe",
"displayName": "Jane Doe",
"provider": "custom",
"status": "active",
"maxEmailsPerDay": 30,
"sendingGapMinutes": 10,
"campaignSlowRamp": false,
"replyToAddress": "[email protected]",
"signature": "Best regards,<br>Jane",
"bcc": "[email protected]",
"automationLanguage": "en",
"warmup": {
"enabled": true,
"strategy": "standard",
"maxPerDay": 15,
"replyRatePercentage": 35,
"rampupEnabled": true,
"dailyRampup": 1,
"randomizer": 0,
"skipWeekends": false,
"timezone": "Europe/London",
"trackingEnabled": true,
"phase": "warming_up",
"startedAt": "2023-11-07T05:31:56Z",
"poolAccess": "free"
},
"tracking": {
"domainId": "9d1f7c4a-6e58-4b32-8a07-3c5d9e2f1b46"
},
"statusMessage": {
"code": "EENVELOPE",
"command": "DATA",
"responseCode": 550,
"response": "550-5.4.5 Daily user sending limit exceeded.",
"message": "Daily user sending limit exceeded",
"occurredAt": "2023-11-07T05:31:56Z"
},
"tags": [
{
"id": "5c9b1e77-2f4a-4c31-9d8e-1a2b3c4d5e6f",
"name": "client-acme",
"color": "#4F46E5"
}
],
"healthScore": 98,
"smtp": {
"host": "smtp.acme.com",
"port": 587,
"username": "[email protected]"
},
"imap": {
"host": "imap.acme.com",
"port": 993,
"username": "[email protected]"
},
"verification": {
"overallStatus": "pending",
"smtp": "active",
"imap": "not_checked",
"dns": {
"mx": "not_checked",
"spf": "not_checked",
"dkim": "not_checked",
"dmarc": "not_checked"
}
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"meta": {
"hasMore": true,
"nextCursor": "eyJ0cyI6IjIwMjYtMDctMDJUMDA6MDA6MDAuMDAwWiIsImlkIjoiM2YxYzJiN2UtOWE0ZC00ZTE4LWIyYzEtNmQ4ZjVhMGU3YzkzIn0"
}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_failed",
"message": "One or more fields are invalid.",
"status": 400,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f",
"details": [
"name should not be empty"
]
}
}{
"error": {
"type": "authentication_error",
"code": "unauthenticated",
"message": "Missing or invalid API key.",
"status": 401,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f"
}
}{
"error": {
"type": "authorization_error",
"code": "permission_denied",
"message": "This API key is missing the required scope.",
"status": 403,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval in the Retry-After header.",
"status": 429,
"requestId": "e4f1c0b2-6a3d-4b8e-9f21-0a1b2c3d4e5f",
"retryAfter": 30
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Opaque cursor from a previous response’s meta.nextCursor.
"eyJ0cyI6IjIwMjYtMDctMDJUMDA6MDA6MDAuMDAwWiIsImlkIjoiM2YxYzJiN2UtOWE0ZC00ZTE4LWIyYzEtNmQ4ZjVhMGU3YzkzIn0"
1 <= x <= 25050
Filter by lifecycle status.
active, inactive, checking, revoked, failed Look a mailbox up by its address (exact, case-insensitive) instead of by id. Returns at most one mailbox, or an empty data array if you have no mailbox with that address.
Only mailboxes carrying at least ONE of these tag ids (comma-separated). Read the ids from tags[] on any mailbox; tags themselves are managed in the dashboard.
"5c9b1e77-2f4a-4c31-9d8e-1a2b3c4d5e6f,7a1d2e88-3b5c-4d62-8e9f-2b3c4d5e6f70"