API Introduction

Welcome to the Mailin.ai API! This document provides everything you need to start interacting with our services programmatically. All API endpoints are prefixed with /api/v1/public/.

Authentication

Obtain an API Token

Send a POST request to the login endpoint with your credentials to obtain a bearer token.

POST /auth/login

Request Body

Parameter Type Description
email string Required. Your registered user email address.
password string Required. Your account password.
device_name string Required. A unique name for your application.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/auth/login \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "email": "user@example.com",
                                        "password": "your-secure-password",
                                        "device_name": "My-Awesome-App"
                                    }'
                                

Example Success Response (200 OK)


                                {
                                    "user_id": 1,
                                    "token": "1|LPQJJwsJTM3mEu49zYfhyFQszC7ZLgPyBHEJsDiO7aa1980c"
                                }

Error Responses

Our API uses standard and custom HTTP status codes. A `404 Not Found` error is returned for mismatched IDs or dubious ownership to protect user privacy. For other errors, see below.

Code Meaning Description
210 Accepted The request has been received and has begun processing.
310 API Communication Error Error communicating with another API. You may try again.
311 Request Refused The request cannot be completed because the data was not prepared.
312 Subscription Required You do not have an active subscription.
313 Incomplete Action An error occurred mid-process; some parts may be incomplete.
401 Unauthorized No valid API token was provided.
422 Unprocessable Entity The request syntax is correct but contains semantic errors (e.g., validation failed).

Documentation Help

Get Documentation

Endpoint for retrieving general API information.

GET /docs

API Endpoints

User Management

Endpoint for retrieving your account information. Note: you can only fetch the data for the authenticated user.

Get User Details

Retrieve the account details for the currently authenticated user.

GET /users/{user_id}

URL Parameters

Parameter Type Description
{user_id} integer Required. The ID of the user. Must match the authenticated user's ID.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "id": 1,
                                    "username": "johndoe",
                                    "phone_no": "1-800-555-0199",
                                    "first_name": "John",
                                    "last_name": "Doe",
                                    "email_verified_at": "2023-10-26T10:00:00.000000Z",
                                    "email": "user@example.com",
                                    "org_name": "ACME Corporation",
                                    "country_name": "United States",
                                    "city_name": "Anytown",
                                    "address": "123 Main St",
                                    "postal_code": "12345",
                                    "region": "CA",
                                    "country_code": "US",
                                    "country_code_name": "USA",
                                    "mailboxes_slots": 50,
                                    "created_at": "2023-10-26T09:30:00.000000Z"
                                }

Server Management

Endpoints for retrieving information about your provisioned servers.

List All Servers

Retrieve a list of all virtual machine servers associated with your account.

GET /servers

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                [
                                    {
                                        "id": 201,
                                        "public_ip": "192.0.2.1",
                                        "hostname": "vm-inbound-01.mailin.ai",
                                        "state": "Running",
                                        "active": 1,
                                        "server_type": "inbound"
                                    },
                                    {
                                        "id": 202,
                                        "public_ip": "198.51.100.5",
                                        "hostname": "vm-outbound-01.mailin.ai",
                                        "state": "Stopped",
                                        "active": 0,
                                        "server_type": "outbound"
                                    }
                                ]

Get a Single Server

Retrieve detailed information for a specific server by its ID.

GET /servers/{server_id}

URL Parameters

Parameter Type Description
{server_id} integer Required. The ID of the server.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "id": 201,
                                    "public_ip": "192.0.2.1",
                                    "hostname": "vm-inbound-01.mailin.ai",
                                    "state": "Running",
                                    "active": 1,
                                    "server_type": "inbound"
                                }

SMTP Domain Management

Endpoints for managing, purchasing, and retrieving information about your domains.

Transfer Inboxkit Domain

Transfer an existing domain to your account. This is an asynchronous process. You will receive a status code of 200 if the request is accepted for processing.

POST /domains/transfer/inboxkit

Request Body

Parameter Type Description
domain_name string Required. The domain name to transfer (e.g., "mybusiness.com").
uid string Required. Domain uid (e.g., "11c236de-c2e5-4797-bb73-73d861dc40fb").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/transfer/inboxkit
                                -H "Authorization: Bearer YOUR_API_TOKEN"
                                -H "Content-Type: application/json"
                                -d '{
                                "domain_name": "mybusiness.com",
                                "uid": "11c236de-c2e5-4797-bb73-73d861dc40fb"
                                }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and the transfer process has been started.",
                                        "domain_id": "123"
                                    }

Example Error Response (422 Unprocessable Entity)


                                    {
                                        "message": "Domain already exists in your account."
                                    }

List All Inboxkit Domains

Retrieve a paginated list of all domains associated with your account.

GET /get/inboxkit-domains

Query Parameters

Parameter Type Description
page integer The page number to retrieve. Default is 1.
per_page integer Number of items per page. Default is 15.
name string Filter domains by name using wildcard search. Example: example will match example.com and myexample.co.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                       curl -X GET "https://api.mailin.ai/api/v1/public/domains/get/inboxkit-domains?page=1&per_page=10&name=example" \
                                            -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 1,
                                                    "name": "example.com",
                                                    "status": "1",
                                                    "domain_provider": "inboxkit",
                                                    "created_at": "2023-10-27T10:00:00.000000Z",
                                                    "updated_at": "2023-10-27T10:00:00.000000Z"
                                                },
                                                {
                                                    "id": 2,
                                                    "name": "example.co",
                                                    "status": "0",
                                                    "domain_provider": "inboxkit",
                                                    "created_at": "2023-10-28T12:30:00.000000Z",
                                                    "updated_at": "2023-10-28T12:30:00.000000Z"
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/domains?page=1",
                                            "from": 1,
                                            "last_page": 5,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/domains?page=5",
                                            "next_page_url": "https://api.mailin.ai/api/v1/public/domains?page=2",
                                            "path": "https://api.mailin.ai/api/v1/public/domains",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 10,
                                            "total": 50
                                        }

List All Domains

Retrieve a paginated list of all domains associated with your account.

GET /domains

Query Parameters

Parameter Type Description
page integer The page number to retrieve. Default is 1.
per_page integer Number of items per page. Default is 15.
name string Filter domains by name using wildcard search. Example: example will match example.com and myexample.co.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                       curl -X GET "https://api.mailin.ai/api/v1/public/domains?page=1&per_page=10&name=example" \
                                            -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 1,
                                                    "name": "example.com",
                                                    "main_domain": "example.com",
                                                    "name_servers": "ns1.mailin.ai, ns2.mailin.ai",
                                                    "name_server_status": "1",
                                                    "status": "1",
                                                    "domain_provider": "dynadot",
                                                    "created_at": "2023-10-27T10:00:00.000000Z",
                                                    "updated_at": "2023-10-27T10:00:00.000000Z"
                                                },
                                                {
                                                    "id": 2,
                                                    "name": "example.co",
                                                    "main_domain": "example.com",
                                                    "name_servers": null,
                                                    "name_server_status": "0",
                                                    "status": "0",
                                                    "domain_provider": "godaddy",
                                                    "created_at": "2023-10-28T12:30:00.000000Z",
                                                    "updated_at": "2023-10-28T12:30:00.000000Z"
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/domains?page=1",
                                            "from": 1,
                                            "last_page": 5,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/domains?page=5",
                                            "next_page_url": "https://api.mailin.ai/api/v1/public/domains?page=2",
                                            "path": "https://api.mailin.ai/api/v1/public/domains",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 10,
                                            "total": 50
                                        }

Get a Single Domain

Retrieve detailed information for a specific domain by its ID.

GET /domains/{domain_id}

URL Parameters

Parameter Type Description
{domain_id} integer Required. The ID of the domain.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                    {
                                        "id": 1,
                                        "name": "example.com",
                                        "main_domain": 1,
                                        "name_servers": "ns1.mailin.ai, ns2.mailin.ai",
                                        "name_server_status": "Active",
                                        "status": "Active",
                                        "provider_type": "string",
                                        "domain_provider": "dynadot",
                                        "created_at": "2023-10-27T10:00:00.000000Z",
                                        "updated_at": "2023-10-27T10:00:00.000000Z"
                                    }
                            

Check Domain Availability

Check whether a domain name is available for purchase. The API will return 200 OK if the domain is available and 404 Not Found if unavailable.

GET /domains/check/domain-availability

Query Parameter

Parameter Type Description
domain_name string Required. The domain name to check (e.g., "mynewbusiness.com").

Example Request


                                     curl -X GET "https://api.mailin.ai/api/v1/public/domains/check/domain-availability?domain_name=mynewbusiness.com"
                                            -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                    {
                                        "available": true,
                                        "message": "Domain is available"
                                    }

Example Error Response (404 Not Found)


                                    {
                                        "available": false,
                                        "message": "Domain is unavailable"
                                    }

Buy a Domain

Purchase a new domain. This is an asynchronous process. You will receive a status code of 210 if the request is accepted for processing.

POST /domains/buy

Request Body

Parameter Type Description
domain_name string Required. The domain name to purchase (e.g., "newdomain.com"). Allowed TLDs: .com, .co, .ca, .biz.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/domains/buy \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "domain_name": "mynewbusiness.com"
                                    }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and will be processed as soon as possible.",
                                        "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                    }

Example Error Response (422 Unprocessable Entity)


                                    {
                                        "message": "The requested domain(s) are unavailable.",
                                        "unavailable": {
                                            "domain": "mynewbusiness.com"
                                        }
                                    }

Add Sub Domain

POST /domains/add/subdomain

Request Body

Parameter Type Description
subdomain string Required. Prefix of the subdomain to create (e.g., "sales").
domain string Required. The parent domain under which this subdomain will be added (e.g., "getopener.com"). Must be active.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/add/subdomain
                                -H "Authorization: Bearer YOUR_API_TOKEN"
                                -H "Content-Type: application/json"
                                -d '{
                                "subdomain": "sales",
                                "domain": "getopener.com"
                                }'

Example Success Response (201 Created)


                            {
                            "message": "Your request has been received and will be processed as soon as possible."
                            }

Example Error Responses (422 Unprocessable Entity)


                            {
                            "message": "The specified domain 'getopener.com' does not exist or is not active."
                            }

                                {
                                "message": "Subdomain already exists."
                                }

Buy Multiple Domains

Purchase multiple new domains in a single request. This is an asynchronous process.

POST /domains/buy-multiple

Request Body

Parameter Type Description
domain_names array Required. An array of domain names to purchase. Allowed TLDs: .com, .co, .ca, .biz.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/buy-multiple \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "domain_names": [
                                        "mynewbusiness.com",
                                        "anothergreatidea.co"
                                    ]
                                }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and will be processed as soon as possible."
                                        "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                    }

Example Error Response (422 Unprocessable Entity)


                                {
                                    "message": "The requested domain(s) are unavailable.",
                                    "unavailable": [
                                        "mynewbusiness.com",
                                        "anothergreatidea.co"
                                    ]
                                }

Transfer a Domain

Transfer an existing domain to your account. This is an asynchronous process. You will receive a status code of 200 if the request is accepted for processing.

POST /domains/transfer

Request Body

Parameter Type Description
domain_name string Required. The domain name to transfer (e.g., "mybusiness.com").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/transfer
                                -H "Authorization: Bearer YOUR_API_TOKEN"
                                -H "Content-Type: application/json"
                                -d '{
                                "domain_name": "mybusiness.com"
                                }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and the transfer process has been started.",
                                        "name_servers": [
                                            "ns-123.awsdns-45.com",
                                            "ns-234.awsdns-56.net",
                                            "ns-345.awsdns-67.org",
                                            "ns-456.awsdns-78.co.uk"
                                        ]
                                    }

Get Domain Job Status

Retrieve the current status and details of a domain creation batch job. Use the job_id returned when initiating the job.

GET /domains/status/{job_id}

Path Parameters

Parameter Type Description
job_id integer Required. The unique ID of the domain creation.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                        curl -X GET "https://api.mailin.ai/api/v1/public/domains/status/5d297ac4-1bf4-4f3c-935c-ec9df38d63b3" \
                                        -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                    {
                                        "id": 5d297ac4-1bf4-4f3c-935c-ec9df38d63b3,
                                        "status": "pending",
                                        "report": "Job Created - BatchAddDomain pending",
                                        "data": [
                                            "10",
                                            "11",
                                            "12"
                                        ]
                                    }

Example Error Response (404 Not Found)


                                    {
                                        "message": "Domain not found."
                                    }

Delete a Domain

Permanently delete a domain and all of its associated mailboxes from the system. This action cannot be undone.

DELETE /domains/{domain_id}

URL Parameters

Parameter Type Description
{domain_id} integer Required. The ID of the domain to delete.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "message": "Domain and related mailboxes has been removed."
                                }

Get Domain Rate Limit

Retrieve the current sending rate limit for a specific domain.

GET /domains/{domain_id}/rate-limit

URL Parameters

Parameter Type Description
{domain_id} integer Required. The ID of the domain.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "id": 1,
                                    "name": "example.com",
                                    "rate_limit": "500 / d"
                                }

Forward a Domain

Forward an existing domain to another domain. You will receive a status code of 200 upon successful.

POST /domains/forward

Request Body

Parameter Type Description
domain_id integer Required. The ID of the domain.
forward_to string Required. The destination domain where the domain will be forwarded (e.g., "mynewbusiness.com").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/domains/forward \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "domain_id": 1234,
                                        "forward_to": "mynewbusiness.com"
                                    }'

Example Success Response (200 OK)


                                {
                                    "message": "Domain forwarding has been successfully updated."
                                }

Remove Domain Forwarding

Remove forwarding from an existing domain. You will receive a status code of 200 upon success.

POST /domains/remove/forward

Request Body

Parameter Type Description
domain_id integer Required. The ID of the domain for which forwarding should be removed.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/domains/remove/forward \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "domain_id": 1234
                                    }'

Example Success Response (200 OK)


                                    {
                                        "message": "Domain forwarding has been successfully removed."
                                    }

Forward Email

Set up email forwarding for a domain. You will receive a status code of 200 upon successful update.

POST domains/email/forward

Request Body

Parameter Type Description
domain_id integer Required. The ID of the domain.
forward_to string Required. The destination email address where incoming emails will be forwarded (e.g., "user@example.com").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/domains/email/forward \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "domain_id": 1234,
                                        "forward_to": "user@example.com"
                                    }'

Example Success Response (200 OK)


                            {
                                "message": "Email forwarding has been successfully updated."
                            }

SMTP Mailbox Management

Endpoints for creating, viewing, and managing individual mailboxes within your domains.

List All Mailboxes

Retrieve a list of all mailboxes associated with your account, with optional filtering by name.

GET /mailboxes

Query Parameters

Parameter Type Description
page integer Page number for pagination (default: 1).
per_page integer Number of results per page (default: 15).
name string Filter mailboxes by name query parameter. The search will match both the mailbox name and the username (email address) using wildcard search. Example: john matches John Doe or john.doe@example.com.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                       curl -X GET "https://api.mailin.ai/api/v1/public/mailboxes?name=john.doe@example.com&per_page=10" \
                                            -H "Authorization: Bearer YOUR_API_TOKEN"
                                                

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 101,
                                                    "domain_id": 1,
                                                    "name": "John Doe",
                                                    "username": "john.doe@example.com",
                                                    "password": "password",
                                                    "redirect_email": null,
                                                    "status": "Active",
                                                    "rate_limit": "50",
                                                    "imap_host": "mail.example.com",
                                                    "imap_port": 993,
                                                    "smtp_host": "mail.example.com",
                                                    "smtp_port": 465,
                                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                                },
                                                {
                                                    "id": 102,
                                                    "domain_id": 1,
                                                    "name": "Jane Doe",
                                                    "username": "jane.doe@example.com",
                                                    "password": "password",
                                                    "redirect_email": null,
                                                    "status": "Active",
                                                    "rate_limit": "50",
                                                    "imap_host": "mail.example.com",
                                                    "imap_port": 993,
                                                    "smtp_host": "mail.example.com",
                                                    "smtp_port": 465,
                                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/mailboxes?page=1&name=john",
                                            "from": 1,
                                            "last_page": 1,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/mailboxes?page=1&name=john",
                                            "next_page_url": null,
                                            "path": "https://api.mailin.ai/api/v1/public/mailboxes",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 2,
                                            "total": 2
                                        }
                                         

Get a Single Mailbox

Retrieve detailed information for a specific mailbox by its ID.

GET /mailboxes/{mailbox_id}

Authorization

Requires a valid Bearer Token in the Authorization header.

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Success Response (200 OK)


                                {
                                    "id": 101,
                                    "domain_id": 1,
                                    "name": "John Doe",
                                    "username": "john.doe@example.com",
                                    "password": "encrypted_password_value",
                                    "redirect_email": null,
                                    "status": "Active",
                                    "rate_limit": "500 / 1h",
                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                }

Create Mailboxes

Create one or more new mailboxes by providing an array of mailbox objects. This is an asynchronous process. A status code of 210 indicates the request was accepted for processing.

POST /mailboxes

Request Body

Parameter Type Description
mailboxes array Required. An array of mailbox objects to create. Must contain at least one object.
↳ username string Required. The full email address for the mailbox (e.g., "sales@example.com").
↳ name string Required. The display name for the mailbox (e.g., "Sales Team").
↳ password string Optional. A password for the mailbox. Must be 8-24 characters. If not provided, a secure password will be generated.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "mailboxes": [
                                        {
                                            "username": "sales@example.com",
                                            "name": "Sales Team",
                                            "password": "a-very-secure-password"
                                        },
                                        {
                                            "username": "info@example.com",
                                            "name": "Info Desk",
                                            "password": "a-very-secure-password"
                                        }
                                    ]
                                }'

Example Success Response (210 Accepted)


                                {
                                    "message": "Your request has been received and will be processed as soon as possible.",
                                    "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                }

Get Mailbox Job Status

Retrieve the current status and details of a mailbox creation batch job. Use the job_id returned when initiating the job.

GET /mailboxes/status/{job_id}

Path Parameters

Parameter Type Description
job_id integer Required. The unique ID of the mailbox creation.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                        curl -X GET "https://api.mailin.ai/api/v1/public/mailboxes/status/5d297ac4-1bf4-4f3c-935c-ec9df38d63b3" \
                                        -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)

                                    
                                    {
                                        "id": "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3",
                                        "status": "pending",
                                        "report": "Job Created - BatchAddMailboxes pending",
                                        "data": [
                                            {
                                                "id": 3,
                                                "domain_id": 107,
                                                "name": "Marketing Team",
                                                "username": "outreach@example.biz",
                                                "password": "Password",
                                                "redirect_email": null,
                                                "status": "1",
                                                "rate_limit": null,
                                                "imap_host": "mail.example.biz",
                                                "imap_port": 993,
                                                "smtp_host": "mail.example.biz",
                                                "smtp_port": 465,
                                                "created_at": "2025-10-24T06:42:55.000000Z",
                                                "updated_at": "2025-10-24T06:42:56.000000Z"
                                            }
                                        ]
                                    }
                                    
                                    

Example Error Response (404 Not Found)


                                    {
                                        "message": "Mailbox not found."
                                    }

Update Mailbox Name

Update the display name for a specific mailbox.

PATCH /mailboxes/{mailbox_id}/name

Request Body

Parameter Type Description
name string Required. The new display name for the mailbox.

Authorization

Requires a valid Bearer Token in the Authorization header.

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/{mailbox_id}/name \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "name": "John Doe"
                                }'

Example Success Response (200 OK)


                                {
                                    'message' => 'Mailbox name has been updated.'
                                }

Update Mailbox Password

Update the password for a specific mailbox.

PATCH /mailboxes/{mailbox_id}/password

Request Body

Parameter Type Description
password string Required. The new password. Must be at least 8 characters.

Authorization

Requires a valid Bearer Token in the Authorization header.

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/{mailbox_id}/password \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "password": "newP@SS1234"
                                }'

Example Success Response (200 OK)


                                {
                                    'message' => 'Mailbox password has been updated.'
                                }

Delete a Mailbox

Permanently delete a mailbox. This action cannot be undone.

DELETE /mailboxes/{mailbox_id}

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox to delete.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "message": "Mailbox removed."
                                }

Get Mailbox Rate Limit

Retrieve the current sending rate limit for a specific mailbox.

GET /mailboxes/{mailbox_id}/rate-limit

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Success Response (200 OK)


                                {
                                    "id": 101,
                                    "username": "john.doe@example.com",
                                    "rate_limit": "500 / 1h"
                                }

Google Domain Management

Endpoints for managing, purchasing, and retrieving information about your domains.

List All Domains

Retrieve a paginated list of all domains associated with your account.

GET /domains/list/google

Query Parameters

Parameter Type Description
page integer The page number to retrieve. Default is 1.
per_page integer Number of items per page. Default is 15.
name string Filter domains by name using wildcard search. Example: example will match example.com and myexample.co.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                       curl -X GET "https://api.mailin.ai/api/v1/public/domains/list/google?page=1&per_page=10&name=example" \
                                            -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 1,
                                                    "name": "example.com",
                                                    "main_domain": "example.com",
                                                    "name_servers": "ns1.mailin.ai, ns2.mailin.ai",
                                                    "name_server_status": "1",
                                                    "status": "1",
                                                    "domain_provider": "dynadot",
                                                    "provider_type": "google",
                                                    "created_at": "2023-10-27T10:00:00.000000Z",
                                                    "updated_at": "2023-10-27T10:00:00.000000Z"
                                                },
                                                {
                                                    "id": 2,
                                                    "name": "example.co",
                                                    "main_domain": "example.com",
                                                    "name_servers": null,
                                                    "name_server_status": "0",
                                                    "status": "0",
                                                    "domain_provider": "godaddy",
                                                    "provider_type": "google",
                                                    "created_at": "2023-10-28T12:30:00.000000Z",
                                                    "updated_at": "2023-10-28T12:30:00.000000Z"
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/domains/list/google?page=1",
                                            "from": 1,
                                            "last_page": 5,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/domains/list/google?page=5",
                                            "next_page_url": "https://api.mailin.ai/api/v1/public/domains/list/google?page=2",
                                            "path": "https://api.mailin.ai/api/v1/public/domains/list/google",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 10,
                                            "total": 50
                                        }

Buy a Domain

Purchase a new domain. This is an asynchronous process. You will receive a status code of 210 if the request is accepted for processing.

POST /domains/buy/google

Request Body

Parameter Type Description
domain_name string Required. The domain name to purchase (e.g., "newdomain.com"). Allowed TLDs: .com, .co, .ca, .biz.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/domains/buy/google \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -H "Content-Type: application/json" \
                                    -d '{
                                        "domain_name": "mynewbusiness.com"
                                    }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and will be processed as soon as possible.",
                                        "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                    }

Example Error Response (422 Unprocessable Entity)


                                    {
                                        "message": "The requested domain(s) are unavailable.",
                                        "unavailable": {
                                            "domain": "mynewbusiness.com"
                                        }
                                    }

Buy Multiple Domains

Purchase multiple new domains in a single request. This is an asynchronous process.

POST /domains/buy-multiple/google

Request Body

Parameter Type Description
domain_names array Required. An array of domain names to purchase. Allowed TLDs: .com, .co, .ca, .biz.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/buy-multiple/google \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "domain_names": [
                                        "mynewbusiness.com",
                                        "anothergreatidea.co"
                                    ]
                                }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and will be processed as soon as possible."
                                        "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                    }

Example Error Response (422 Unprocessable Entity)


                                {
                                    "message": "The requested domain(s) are unavailable.",
                                    "unavailable": [
                                        "mynewbusiness.com",
                                        "anothergreatidea.co"
                                    ]
                                }

Transfer a Domain

Transfer an existing domain to your account. This is an asynchronous process. You will receive a status code of 200 if the request is accepted for processing.

POST /domains/transfer/google

Request Body

Parameter Type Description
domain_name string Required. The domain name to transfer (e.g., "mybusiness.com").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/domains/transfer/google
                                -H "Authorization: Bearer YOUR_API_TOKEN"
                                -H "Content-Type: application/json"
                                -d '{
                                "domain_name": "mybusiness.com"
                                }'

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your request has been received and the transfer process has been started.",
                                        "name_servers": [
                                            "ns-123.awsdns-45.com",
                                            "ns-234.awsdns-56.net",
                                            "ns-345.awsdns-67.org",
                                            "ns-456.awsdns-78.co.uk"
                                        ]
                                    }

Google Mailbox Management

Endpoints for creating, viewing, and managing individual mailboxes within your domains.

List All Mailboxes

Retrieve a list of all mailboxes associated with your account, with optional filtering by name.

GET /mailboxes/list/google

Query Parameters

Parameter Type Description
page integer Page number for pagination (default: 1).
per_page integer Number of results per page (default: 15).
name string Filter mailboxes by name query parameter. The search will match both the mailbox name and the username (email address) using wildcard search. Example: john matches John Doe or john.doe@example.com.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                       curl -X GET "https://api.mailin.ai/api/v1/public/mailboxes/list/google?name=john.doe@example.com&per_page=10" \
                                            -H "Authorization: Bearer YOUR_API_TOKEN"
                                                

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 101,
                                                    "domain_id": 1,
                                                    "name": "John Doe",
                                                    "username": "john.doe@example.com",
                                                    "password": "password",
                                                    "signature": "Best regards, John Doe",
                                                    "redirect_email": null,
                                                    "status": "1",
                                                    "provider_type": "google",
                                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                                },
                                                {
                                                    "id": 102,
                                                    "domain_id": 1,
                                                    "name": "Jane Doe",
                                                    "username": "jane.doe@example.com",
                                                    "password": "password",
                                                    "signature": "Best regards, John Doe",
                                                    "redirect_email": null,
                                                    "status": "1",
                                                    "provider_type": "google",
                                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/mailboxes/list/google?page=1&name=john",
                                            "from": 1,
                                            "last_page": 1,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/mailboxes/list/google?page=1&name=john",
                                            "next_page_url": null,
                                            "path": "https://api.mailin.ai/api/v1/public/mailboxes/list/google",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 2,
                                            "total": 2
                                        }
                                         

Get a Single Mailbox

Retrieve detailed information for a specific mailbox by its ID.

GET /mailboxes/{mailbox_id}

Authorization

Requires a valid Bearer Token in the Authorization header.

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Success Response (200 OK)


                                {
                                    "id": 101,
                                    "domain_id": 1,
                                    "name": "John Doe",
                                    "username": "john.doe@example.com",
                                    "password": "password_value",
                                    "signature": "Best regards, John Doe",
                                    "redirect_email": null,
                                    "status": "1",
                                    "provider_type": "google",
                                    "created_at": "2023-10-27T11:00:00.000000Z",
                                    "updated_at": "2023-10-27T11:00:00.000000Z"
                                }

Create Mailboxes

Create one or more new mailboxes by providing an array of mailbox objects. This is an asynchronous process. A status code of 210 indicates the request was accepted for processing.

POST /mailboxes/add/google

Request Body

Parameter Type Description
mailboxes array Required. An array of mailbox objects to create. Must contain at least one object.
↳ username string Required. The full email address for the mailbox (e.g., "john.doe@example.com").
↳ first_name string Required. The display fist name for the mailbox (e.g., "John").
↳ last_name string Required. The display last name for the mailbox (e.g., "Doe").

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/add/google \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "mailboxes": [
                                        {
                                            "username": "john.doe@example.com",
                                            "first_name": "John",
                                            "last_name": "Doe"
                                        },
                                        {
                                            "username": "john.steeve@example.com",
                                            "first_name": "John",
                                            "last_name": "Steeve"
                                        }
                                    ]
                                }'

Example Success Response (210 Accepted)


                                {
                                    "message": "Your request has been received and will be processed as soon as possible.",
                                    "uuid" : "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3"
                                }

Get Mailbox Job Status

Retrieve the current status and details of a mailbox creation batch job. Use the job_id returned when initiating the job.

GET /mailboxes/status/{job_id}

Path Parameters

Parameter Type Description
job_id integer Required. The unique ID of the mailbox creation.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                        curl -X GET "https://api.mailin.ai/api/v1/public/mailboxes/status/5d297ac4-1bf4-4f3c-935c-ec9df38d63b3" \
                                        -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)

                                    
                                    {
                                        "id": "5d297ac4-1bf4-4f3c-935c-ec9df38d63b3",
                                        "status": "pending",
                                        "report": "Job Created - BatchAddMailboxes pending",
                                        "data": [
                                            {
                                                "id": 3,
                                                "domain_id": 107,
                                                "name": "Marketing Team",
                                                "username": "outreach@example.biz",
                                                "signature": "Best regards, John Doe",
                                                "password": "Password",
                                                "redirect_email": null,
                                                "status": "1",
                                                "provider_type": "google",
                                                "created_at": "2025-10-24T06:42:55.000000Z",
                                                "updated_at": "2025-10-24T06:42:56.000000Z"
                                            }
                                        ]
                                    }
                                    
                                    

Example Error Response (404 Not Found)


                                    {
                                        "message": "Mailbox not found."
                                    }

Update Mailbox Name

Update the display name for a specific mailbox.

PATCH /mailboxes/{mailbox_id}/name

Request Body

Parameter Type Description
name string Required. The new display name for the mailbox.

Authorization

Requires a valid Bearer Token in the Authorization header.

URL Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/{mailbox_id}/name \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "name": "John Doe"
                                }'

Example Success Response (200 OK)


                                {
                                    'message' => 'Mailbox name has been updated.'
                                }

Generate Mailbox TOTP

Generate a Time-based One-Time Password (TOTP) for a Google mailbox. This action is allowed only for mailboxes connected with the google provider.

GET /mailboxes/{mailbox_id}/generate-totp

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Authorization

Requires a valid Bearer Token in the Authorization header. The mailbox must belong to the authenticated user.

Example Request


                                                    curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/123/generate-totp \
                                                        -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                {
                    "error": false,
                    "message": "Mailbox TOTP generated successfully",
                    "totp": "700221",
                    "expires_at": 1770360450
                }

Show Mailbox Credentials

Retrieve mailbox credentials for a Google mailbox. Only available for mailboxes connected with the google provider.

GET /mailboxes/{mailbox_id}/show-credentials

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Authorization

Requires a valid Bearer Token.

Example Request


                    curl -X GET https://api.mailin.ai/api/v1/public/mailboxes/123/show-credentials \
                        -H "Authorization: Bearer YOUR_API_TOKEN"
                    

Example Success Response (200 OK)


                {
                    "error": false,
                    "message": "Mailbox credentials retrieved successfully",
                    "password": "R9yAvvm9UN",
                    "secret": "dmaptyzdjhbkhhrzot2nvr4hjk7tk3mg",
                    "app_password": "uphw yazt rfrf dmmw "
                }

Add Mailbox Signature

Add an email signature to a Google mailbox.

POST /mailboxes/{mailbox_id}/add-signature

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Request Body

Parameter Type Description
signature string Required. Mailbox signature text.

Example Request


                    curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/123/add-signature \
                            -H "Authorization: Bearer YOUR_API_TOKEN" \
                            -H "Content-Type: application/json" \
                            -d '{
                                "signature": "Best regards,\nJohn Doe"
                            }'
                    

Success Response (200 OK)


                {
                    "message": "Signatures processed successfully",
                }

Delete Mailbox Signature

POST /mailboxes/{mailbox_id}/delete-signature

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Request


                    curl -X DELETE https://api.mailin.ai/api/v1/public/mailboxes/123/delete-signature \
                        -H "Authorization: Bearer YOUR_API_TOKEN"
                    

Success Response


                {
                    "message": "Signatures removed successfully",
                }

Setup Mailbox Forwarding

POST /mailboxes/{mailbox_id}/forwarding

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Request Body

Parameter Type Description
forwarding_email email Required. Forwarding email address.

Example Request


                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/123/forwarding/setup \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "forwarding_email": "forward@example.com"
                    }'
                

Success Response


                {
                    "message": "Forwardng processed successfully",
                }

Update Mailbox Forwarding

POST /mailboxes/{mailbox_id}/forwarding/update

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Request Body

Parameter Type Description
forwarding_email email Required. Forwarding email address.

Example Request


                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/123/forwarding/update \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "forwarding_email": "updated@example.com"
                    }'
                

Success Response


                {
                    "message": "Forwardng update processed successfully",
                }

Remove Mailbox Forwarding

POST /mailboxes/{mailbox_id}/google/forwarding

Path Parameters

Parameter Type Description
{mailbox_id} integer Required. The ID of the mailbox.

Example Request


                curl -X POST https://api.mailin.ai/api/v1/public/mailboxes/123/google/forwarding \
                    -H "Authorization: Bearer YOUR_API_TOKEN"
                

Success Response


                {
                    "message": "Forwardng remove processed successfully",
                }

Microsoft Management

Manage inbox providers, registrars, and other related services under your account.

Add Inbox Provider

Create a new inbox provider for your account.

POST /inbox-providers/add

Request Body

Parameter Type Description
name string Display name of the provider.
provider string Provider type. Allowed: reachinbox, plusvibe, instantly, manyreach, smartlead.
api_key string API key for the provider (if required).
oauth_url string OAuth URL for authentication (required for some providers).
username string Username/email for the provider (if required).
password string Password for the provider (if required).
workspace_id string Workspace ID (for providers like PlusVibe).

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/inbox-providers/add" \
                        -H "Authorization: Bearer YOUR_API_TOKEN" \
                        -H "Content-Type: application/json" \
                        -d '{
                            "name": "SmartLead Account",
                            "provider": "smartlead",
                            "api_key": "xxxx",
                            "oauth_url": "https://smartlead.example.com/oauth"
                        }'

Example Success Response (201 Created)


                {
                    "message": "Provider has been successfully created.",
                    "provider_id": 1
                }

Inbox Provider List

Retrieve a paginated list of all inbox providers for your account.

GET /inbox-providers

Query Parameters

Parameter Type Description
per_page integer Number of results per page (default: 15).

Example Request


                    curl -X GET "https://api.mailin.ai/api/v1/public/inbox-providers?per_page=10" \
                        -H "Authorization: Bearer YOUR_API_TOKEN"
                                

Example Success Response (200 OK)


                {
                    "current_page": 1,
                    "data": [
                        {
                            "id": 1,
                            "user_id": 5,
                            "name": "SmartLead Account",
                            "provider": "smartlead",
                            "api_key": "xxxxxx",
                            "oauth_url": "https://smartlead.example.com/oauth",
                            "username": null,
                            "workspace_id": null
                        }
                    ],
                    "first_page_url": "https://api.mailin.ai/api/v1/public/inbox-providers?page=1",
                    "from": 1,
                    "last_page": 5,
                    "last_page_url": "https://api.mailin.ai/api/v1/public/inbox-providers?page=5",
                    "next_page_url": "https://api.mailin.ai/api/v1/public/inbox-providers?page=2",
                    "path": "https://api.mailin.ai/api/v1/public/inbox-providers",
                    "per_page": 10,
                    "prev_page_url": null,
                    "to": 10,
                    "total": 50
                }

Update Inbox Provider

Update the details of an existing inbox provider.

PUT /inbox-providers/update/{id}

Request Body

Parameter Type Description
provider string Provider type (reachinbox, plusvibe, instantly, manyreach, smartlead).
api_key string API key (if required).
oauth_url string OAuth URL (if required).
username string Username/email (if required).
password string Password (if required).
workspace_id string Workspace ID (for PlusVibe).

Example Request


                curl -X PUT "https://api.mailin.ai/api/v1/public/inbox-providers/update/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "provider": "smartlead",
                        "api_key": "updated_key",
                        "oauth_url": "https://smartlead.example.com/oauth"
                    }'

Example Success Response (200 OK)


                    {
                        "message": "Provider updated successfully."
                    }

Remove Inbox Provider

Delete an existing inbox provider from your account.

DELETE /inbox-providers/delete/{id}

Example Request


                curl -X DELETE "https://api.mailin.ai/api/v1/public/inbox-providers/delete/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" 

Example Success Response (200 OK)


                {
                    "message": "Provider deleted successfully."
                } 

Add Domain Registrar

Create a new domain registrar for your account.

POST /domain-registrars/add

Request Body

Parameter Type Description
name string Registrar display name.
provider string Provider type. Allowed: porkbun, namecheap, godaddy, spaceship.
api_key string API key for the registrar.
secret_api_key string Secret API key (if required).
api_user string API user (for Namecheap).
username string Username/email (for Namecheap).
whitelisted_ip string Please whitelist the following server IPs in your Namecheap account:
65.109.237.170
44.206.212.194

Go to: Namecheap → Profile → Tools → API Access
Add both IPs under "Whitelisted IPs".
customer_id string Customer ID (optional). Required only if you are using a GoDaddy reseller account.

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/domain-registrars/add" \
                        -H "Authorization: Bearer YOUR_API_TOKEN" \
                        -H "Content-Type: application/json" \
                        -d '{
                            "name": "My GoDaddy Account",
                            "provider": "godaddy",
                            "api_key": "xxxx",
                            "secret_api_key": "xxxx",
                            "customer_id": "123456"
                        }' 

Example Success Response (201 Created)


                    {
                        "message": "Domain registrar created successfully.",
                        "id": 1
                    }

Domain Registrar List

Retrieve a paginated list of all domain registrars associated with your account.

GET /domain-registrars

Query Parameters

Parameter Type Description
per_page integer Number of results per page (default: 10).

Example Request


                    curl -X GET "https://api.mailin.ai/api/v1/public/domain-registrars?per_page=10" \
                        -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                    {
                        "current_page": 1,
                        "data": [
                            {
                                "id": 1,
                                "user_id": 5,
                                "name": "My GoDaddy Account",
                                "provider": "godaddy",
                                "api_key": "xxxx",
                                "username": "user@example.com"
                            }
                        ],
                        "first_page_url": "https://api.mailin.ai/api/v1/public/domain-registrars?page=1",
                        "from": 1,
                        "last_page": 5,
                        "last_page_url": "https://api.mailin.ai/api/v1/public/domain-registrars?page=5",
                        "next_page_url": "https://api.mailin.ai/api/v1/public/domain-registrars?page=2",
                        "path": "https://api.mailin.ai/api/v1/public/domain-registrars",
                        "per_page": 10,
                        "prev_page_url": null,
                        "to": 10,
                        "total": 50
                    }

Update Domain Registrar

Update details of an existing domain registrar.

PUT /domain-registrars/update/{id}

Request Body

Parameter Type Description
provider string Provider type. Allowed: porkbun, namecheap, godaddy, spaceship.
api_key string API key for the registrar.
secret_api_key string Secret API key (if required).
api_user string API user (for Namecheap).
username string Username/email (for Namecheap).
whitelisted_ip string Whitelisted IP (for Namecheap, must be valid IP).
customer_id string Optional customer ID (for GoDaddy).

Example Request


                    curl -X PUT "https://api.mailin.ai/api/v1/public/domain-registrars/update/1" \
                        -H "Authorization: Bearer YOUR_API_TOKEN" \
                        -H "Content-Type: application/json" \
                        -d '{
                            "provider": "godaddy",
                            "api_key": "updated_key",
                            "secret_api_key": "updated_secret"
                        }'

Example Success Response (200 OK)


                {
                    "message": "Registrar updated successfully."
                }

Remove Domain Registrar

Delete an existing domain registrar from your account.

DELETE /domain-registrars/{id}

Example Request


                curl -X DELETE "https://api.mailin.ai/api/v1/public/domain-registrars/1" \
                -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                    {
                        "message": "Registrar deleted successfully."
                    }

Add Azure Order

Create a new Azure order by specifying domain, provider, and mailbox configuration (auto or manual).

POST /azure-orders/add

Request Body

Parameter Type Description
mailbox_mode string auto = system generates mailboxes
manual = user provides mailboxes
full_name array Required when mailbox_mode = auto
mailboxes array (100) Required when mailbox_mode = manual
mailboxes[].name string Mailbox user name
mailboxes[].email string Email must belong to given domain
domain string For purchase: must end with .com, .co, .biz, .ca
is_purchase integer 1 = purchase, 0 = transfer
provider_id integer Inbox Provider ID
domain_registrar_id integer Domain Registrar ID

Mailbox Logic

  • Auto: System generates 100 mailboxes
  • Manual: User must send exactly 100 mailboxes
  • Emails must match the domain

Example Request (Auto Mode)


                    curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/add" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "mailbox_mode": "auto",
                        "full_name": ["John Doe","Sam Doe"],
                        "domain": "example.com",
                        "is_purchase": 1,
                        "provider_id": 1
                    }'

Example Request (Manual Mode)


                curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/add" \
                -H "Authorization: Bearer YOUR_API_TOKEN" \
                -H "Content-Type: application/json" \
                -d '{
                    "mailbox_mode": "manual",
                    "mailboxes": [
                        {
                            "name": "John Doe",
                            "email": "john@example.com"
                        }
                        // total 100 entries
                    ],
                    "domain": "example.com",
                    "is_purchase": 1,
                    "provider_id": 1
                }'

Example Success Response (201 Created)


                {
                    "message": "Order processed successfully. You can check the order status using the status API endpoint."
                }

Example Error Response


                {
                    "message": "Order already exists in your account."
                }

Azure Orders List

Retrieve a paginated list of all Azure orders along with associated provider, registrar, and mailboxes.

GET /azure-orders

Query Parameters

Parameter Type Description
per_page integer Number of results per page (default: 10)

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/public/azure-orders?per_page=10" \
                -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                {
                    "current_page": 1,
                    "data": [
                        {
                            "id": 4,
                            "user_id": 2,
                            "full_name": ["Tomer Levi"],
                            "domain": "example.com",
                            "mailbox_mode": "auto",
                            "provider_id": 1,
                            "domain_registrar_id": 1,
                            "is_purchase": 0,
                            "created_at": "2026-02-12T12:36:01.000000Z",
                            "updated_at": "2026-03-25T06:51:05.000000Z",
                            "provider": null,
                            "registrar": null,
                            "mailboxes": [
                                {
                                    "name": "John Doe",
                                    "username": "john@example.com",
                                    "password": "******"
                                }
                            ]
                        }
                    ],
                    "per_page": 10,
                    "total": 1
                }

Get Nameservers

Fetch generated nameservers for the domain.

GET /azure-orders/nameservers/{id}

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/public/azure-orders/nameservers/1" \
                -H "Authorization: Bearer YOUR_API_TOKEN"
                        

Example Response


                {
                    "status": "ready",
                    "nameservers": [
                        "ns1.example.com",
                        "ns2.example.com"
                    ]
                }
                        

Get Order Status

Check whether the Azure order is ready or still in progress.

GET /azure-orders/status/{id}

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/public/azure-orders/status/1" \
                -H "Authorization: Bearer YOUR_API_TOKEN"
                        

Example Response


                {
                    "data": {
                        "id": 1,
                        "status": "ready"
                    }
                }
                        

Get Mailboxes

Retrieve all mailboxes associated with an Azure order.

GET /azure-orders/get-mailboxes/{id}

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/public/azure-orders/get-mailboxes/1" \
                -H "Authorization: Bearer YOUR_API_TOKEN"
                        

Example Response


            {
                "mailboxes": [
                    {
                        "name": "John Doe",
                        "username": "john@example.com",
                        "password": "******"
                    }
                ]
            }
        

Delete Azure Order

Delete an Azure order and its associated domain.

DELETE /azure-orders/remove/{id}

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/public/azure-orders/remove/1" \
                -H "Authorization: Bearer YOUR_API_TOKEN"
                        

Example Response


                {
                    "message": "Order deleted successfully."
                }
        

Set Master Domain

Set forwarding domain for the Azure order.

POST /azure-orders/set-redirect-domain/{id}

Request Body

Parameter Type Description
forward_to string Domain emails will be forwarded (e.g. example.com).

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/set-redirect-domain/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "forward_to": "example.com",
                    }'

Response


                {
                    "message": "Master domain set successfully."
                }
            

Sets the inbox provider for the order.

POST /azure-orders/set-inbox-provider/{id}

Request Body

Parameter Type Description
provider_id integer Inbox provider ID.

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/set-inbox-provider/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                    -d '{
                        "provider_id": 1,
                    }'

Response


                        {
                            "message": "Inbox Provider set successfully."
                        }
                

Remove the assigned inbox provider from the Azure order.

DELETE /azure-orders/remove-inbox-provider/{id}

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/remove-inbox-provider/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                   

Response


                        {
                            "message": "Inbox Provider removed successfully."
                        }
                

Trigger Reupload

POST /azure-orders/trigger-re-upload/{id}

Example Request


                    curl -X POST "https://api.mailin.ai/api/v1/public/azure-orders/trigger-re-upload/1" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json" \
                   

Response


                        {
                            "message": "Reupload triggered successfully."
                        }
                

Get Inbox Provider Upload Status

Fetch the current upload status summary for an Azure inbox provider order.

GET /azure-orders/get-inbox-provider-status/{id}

Example Request


                curl -X GET "https://api.mailin.ai/api/v1/azure-orders/get-inbox-provider-status/4" \
                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                    -H "Content-Type: application/json"
                        

Example Success Response (200 OK)


                {
                    "upload_status_summary": {
                        "total": 100,
                        "uploaded": 0,
                        "alreadyExistsOtherAccount": 0,
                        "pending": 100,
                        "failed": 0
                    }
                }

Email Verification Management

Endpoints for verifying single email addresses and retrieving their verification status. Use these APIs to check whether an email is valid, risky, or undeliverable.

Verify Single Email

Start verification of a single email address. This is an asynchronous process. Use the Get Single Email endpoint to check the final status of the verification.

POST /verify-single-email

Request Body

Parameter Type Description
email string Required. The email address to be verified (e.g., test@example.com).
type string Required. Verification type. Possible values:
  • standard (1 Credit per email) – One of the most accurate email validators in the market, checking if an email exists and can receive email.
  • catch_all (7 Credits per email) – This is specifically for catch-all emails. Run this only after standard verification.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X POST https://api.mailin.ai/api/v1/public/verify-single-email \
                                -H "Authorization: Bearer YOUR_API_TOKEN" \
                                -H "Content-Type: application/json" \
                                -d '{
                                    "email": "test@example.com",
                                    "type": "standard"
                                }'

Example Success Response (210 Accepted)


                                {
                                    "message": "Verification complete.",
                                    "task_id": "abc12345",
                                    "email": "test@example.com",
                                    "status": "success",
                                    "score": 95,
                                    "result": "deliverable",
                                    "credit_used": 1
                                }

Get Single Email Detail

Retrieve the status and result of a single email verification task. Use the task_id returned from Verify Single Email.

GET /get-single-email

Query Parameters

Parameter Type Description
task_id string Required. The unique task ID of the verification request.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                curl -X GET "https://api.mailin.ai/api/v1/public/get-single-email?task_id=abc12345" \
                                -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                {
                                    "task_id": "abc12345",
                                    "email": "test@example.com",
                                    "status": "verifying",
                                    "result": null,
                                    "score": null,
                                    "credits_used": 1
                                }

Verify Bulk Email File

Upload a file containing multiple email addresses for bulk verification. The verification process runs asynchronously. Use the task_id from the response to check the status of the verification.

POST /verify-bulk-file

Request Body

Parameter Type Description
file file (csv, xlsx) Required. File containing email addresses. Maximum size: 25 MB.
type string Required. Verification type. Possible values:
  • standard (1 Credit per email) – One of the most accurate email validators in the market, checking if an email exists and can receive email.
  • catch_all (7 Credits per email) – This is specifically for catch-all emails. Run this only after standard verification

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                        curl -X POST https://api.mailin.ai/api/v1/public/verify-bulk-file \
                                        -H "Authorization: Bearer YOUR_API_TOKEN" \
                                        -F "file=@/path/to/emails.csv" \
                                        -F "type=standard"

Example Success Response (210 Accepted)


                                    {
                                        "message": "Your file has been uploaded and verification has started.",
                                        "task_id": "bulk_123456"
                                    }

Example Error Response (422 Unprocessable Entity)


                                    {
                                        "message": "You need 500 credits to verify this file, but you only have 200."
                                    }

Verify Bulk Emails (Comma-Separated)

Submit multiple email addresses (comma-separated string) for bulk verification. Maximum 500 emails per request are allowed. The verification process runs asynchronously. Use the task_id from the response to check the status of the verification.

POST /verify-bulk-emails

Request Body

Parameter Type Description
emails string Required. Comma-separated list of email addresses to verify. Maximum 500 emails in a single request. Example: "test1@example.com,test2@example.com"
type string Required. Verification type. Possible values:
  • standard (1 Credit per email) – One of the most accurate email validators in the market, checking if an email exists and can receive email.
  • catch_all (7 Credits per email) – This is specifically for catch-all emails. Run this only after standard verification

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/verify-bulk-emails \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -F "emails=test1@example.com,test2@example.com,test3@example.com" \
                                    -F "type=standard"

Example Success Response (210 Accepted)


                                        {
                                            "message": "Your verification has started and is currently in progress.",
                                            "task_id": "bulk_123456"
                                        }

Example Error Response (422 Unprocessable Entity)


                                    {
                                        "message": "You cannot verify more than 500 emails at once."
                                    }

Get Bulk Verification Task Detail

Retrieve detailed results for a bulk email verification task using its task_id. This endpoint provides counts of deliverable, risky, catch-all, undeliverable, and unknown emails. If the verification is still running, the API will return a pending status message.

GET /get-task-detail

Query Parameters

Parameter Type Description
task_id string Required. The unique task ID returned when the file was uploaded for verification.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X GET "https://api.mailin.ai/api/v1/public/get-task-detail?task_id=bulk_123456" \
                                    -H "Authorization: Bearer YOUR_API_TOKEN"

Example Response (When Verification Still Running)


                                    {
                                        "message": "Email verification is still in progress. Please check the status after some time."
                                    }

Example Response (Task Failed & Refund Issued)


                                    {
                                        "message": "Your task could not be processed. The used credits have been refunded to your account.",
                                        "reason": "Column with email addresses not found"
                                    }
                                        

Example Response (Catch-All Verification Finished)


                                    {
                                        "task_id": "bulk_123456",
                                        "created_at": "2025-08-20 12:45:22",
                                        "total_rows": 1200,
                                        "status": "finished",
                                        "deliverable": 950,
                                        "catch_all": 100,
                                        "risky": 50,
                                        "undeliverable": 80,
                                        "unknown": 20
                                    }

Example Response (Standard Verification Finished)


                                    {
                                        "task_id": "bulk_123456",
                                        "created_at": "2025-08-20 10:15:09",
                                        "total_rows": 500,
                                        "status": "finished",
                                        "deliverable": 420,
                                        "catch_all": 30,
                                        "invalid": 25,
                                        "unknown": 20,
                                        "duplicate": 5
                                    }

Credit History

Retrieve the authenticated user's credit transaction history. This includes credit additions, deductions, and the remaining total after each transaction. Results are returned in paginated format.

GET /credit-history

Query Parameters

Parameter Type Description
per_page integer Optional. Number of records per page. Default: 15.

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X GET "https://api.mailin.ai/api/v1/public/credit-history?per_page=10" \
                                    -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                        {
                                            "current_page": 1,
                                            "data": [
                                                {
                                                    "id": 12,
                                                    "reason": "Bulk verification started",
                                                    "credit": 0,
                                                    "debit": 50,
                                                    "total_credit": 450
                                                },
                                                {
                                                    "id": 11,
                                                    "reason": "Purchased credits",
                                                    "credit": 500,
                                                    "debit": 0,
                                                    "total_credit": 500
                                                }
                                            ],
                                            "first_page_url": "https://api.mailin.ai/api/v1/public/credit-history?page=1",
                                            "from": 1,
                                            "last_page": 3,
                                            "last_page_url": "https://api.mailin.ai/api/v1/public/credit-history?page=3",
                                            "links": [...],
                                            "next_page_url": "https://api.mailin.ai/api/v1/public/credit-history?page=2",
                                            "path": "https://api.mailin.ai/api/v1/public/credit-history",
                                            "per_page": 10,
                                            "prev_page_url": null,
                                            "to": 10,
                                            "total": 25
                                        }

Get Credits

Retrieve the total available credits for the authenticated user account.

GET /get-credits

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X GET "https://api.mailin.ai/api/v1/public/get-credits" \
                                    -H "Authorization: Bearer YOUR_API_TOKEN"

Example Success Response (200 OK)


                                    {
                                        "total_credits": 120000
                                    }

Download Verified Emails

Download the results of a completed bulk email verification task. This endpoint generates a downloadable CSV file (for standard type) or a direct download link (for catch_all type). Only finished/completed tasks can be downloaded.

POST /download-verified-emails

Request Body

Parameter Type Description
task_id string Required. The task ID received when the bulk verification was initiated.
download_type string Required. Determines which results to download. Possible values depend on the verification type:
  • For catch_all : all, deliverable, risky, undeliverable, unknown
  • For standard : all, deliverable, catch_all, invalid, unknown

Authorization

Requires a valid Bearer Token in the Authorization header.

Example Request


                                    curl -X POST https://api.mailin.ai/api/v1/public/download-verified-emails \
                                    -H "Authorization: Bearer YOUR_API_TOKEN" \
                                    -F "task_id=bulk_123456" \
                                    -F "download_type=deliverable"

Example Success Response (200 OK)


                                    {
                                        "download_url": "https://api.mailin.ai/storage/tmp/result-bulk_123456-1693456789.csv"
                                    }

Example Response (When Verification Still Running)


                                    {
                                        "message": "Task is still in progress. Please try downloading once it is finished."
                                    }