Developer API

Inboxes on tap for your code

Spin up Gmail and Outlook mailboxes, catch verification codes and read full emails — straight from your scripts, billed per call.

12,000

Gmail in stock

15,000

Outlook in stock

27,000+

Total live

Four mailbox types

Gmail and Outlook aliases for volume, original accounts for strict sign-ups — one endpoint for all.

Codes pulled out for you

Every message comes back with the OTP already detected, so your script skips the parsing.

Failed calls cost nothing

If a billable call doesn't succeed, the credits go straight back to your wallet.

Top up your way

Easypaisa in PKR, or crypto: USDT, USDC, Litecoin and more. Credits never expire.

Hashed keys, three per account

Keys are shown once, stored as a hash, and can be revoked the moment you need to.

Every call on the record

A live ledger of calls, top-ups and credit movements in your workspace.

Copy-ready snippets

cURL, JavaScript and Python examples, plus one-click docs for your AI assistant.

Fair per-key limits

Rate limits keep the pool fast and stable for every builder.

Your inboxes stay yours

Mailboxes created by a key are visible only to the account that owns it.

What each call costs

ActionEndpointCost
Create Inbox — Gmail.com + AliasPOST /v1/inboxes0.5 credits
Create Inbox — Outlook.com + AliasPOST /v1/inboxes0.5 credits
Create Inbox — Gmail.com OriginalPOST /v1/inboxes3 credits
Create Inbox — Outlook.com OriginalPOST /v1/inboxes3 credits
Inbox PollGET /v1/inboxes/{id}/messages3 credits
Read MessageGET /v1/messages/{id}3 credits
Balance / UsageGET /v1/account/*No charge

$1 = 1,000 credits. Minimum deposit $10, no maximum.

Top-up rewards

DepositBonusTotal credits
$1010%11,000
$10020%120,000
$25030%325,000
$50040%700,000
$100050%1,500,000

Each deposit gets the bonus of its own tier — not just your first one.

Live in four steps

  1. Step 1

    Create a free account and sign in.

  2. Step 2

    Top up at least $10 with Easypaisa or crypto.

  3. Step 3

    Generate an API key (up to 3 active).

  4. Step 4

    Send requests with Authorization: Bearer YOUR_KEY.

API Reference

Base URL https://freegmail.com/api/public/v1. Authenticate every request with Authorization: Bearer YOUR_KEY (or X-API-Key).

12,000

Gmail in stock

15,000

Outlook in stock

27,000+

Total live

JavaScript quick start

const r = await fetch("https://freegmail.com/api/public/v1/inboxes", {
  method: "POST",
  headers: { Authorization: "Bearer fg_live_YOUR_KEY",
             "Content-Type": "application/json" },
  body: JSON.stringify({ service: "gmail_alias" }),
});
const inbox = await r.json();

Python quick start

import requests
r = requests.post("https://freegmail.com/api/public/v1/inboxes",
  headers={"Authorization": "Bearer fg_live_YOUR_KEY"},
  json={"service": "outlook_alias"})
inbox = r.json()
POST/v1/inboxes— Create inbox

Creates a new temporary inbox (expires after 10 minutes). Body: { "service": "gmail_alias" | "outlook_alias" | "gmail_original" | "outlook_original" } — Gmail.com + Alias, Outlook.com + Alias, Gmail.com Original, Outlook.com Original. List availability and prices with GET /v1/services.

Request
curl -X POST https://freegmail.com/api/public/v1/inboxes \
  -H "Authorization: Bearer fg_live_YOUR_KEY"
Response
{ "id": "8f1c…", "address": "name+abc@outlook.com", "expires_at": "…", "created_at": "…" }
GET/v1/inboxes/{id}/messages— Poll inbox

Fetches new mail and returns the list of messages with the detected OTP.

Request
curl https://freegmail.com/api/public/v1/inboxes/INBOX_ID/messages \
  -H "Authorization: Bearer fg_live_YOUR_KEY"
Response
{ "inbox": { "id": "…", "address": "…", "active": true }, "data": [ { "id": "…", "from": "…", "subject": "…", "otp": "482913", "received_at": "…" } ] }
GET/v1/messages/{id}— Read message

Returns the full message (text + HTML) for a message from one of your inboxes.

Request
curl https://freegmail.com/api/public/v1/messages/MESSAGE_ID \
  -H "Authorization: Bearer fg_live_YOUR_KEY"
Response
{ "id": "…", "to": "…", "from": "…", "subject": "…", "text": "…", "html": "…", "otp": "482913" }
GET/v1/account/*— Balance & usage (no charge)

Check your wallet balance and the last 100 requests.

Request
curl https://freegmail.com/api/public/v1/account/balance -H "Authorization: Bearer fg_live_YOUR_KEY"
curl https://freegmail.com/api/public/v1/account/usage -H "Authorization: Bearer fg_live_YOUR_KEY"
Response
{ "balance": 104998, "currency": "credits" }

Error codes

  • 401unauthorizedMissing, invalid or revoked key
  • 402insufficient_creditsAdd funds to your wallet
  • 403suspendedAccount under review
  • 404not_foundInbox/message not yours, or unknown endpoint
  • 429rate_limitedToo many requests per minute
  • 502upstream_errorMail service failed (not charged)

Frequently asked questions

Do I need an account?

Yes. Docs and pricing are public, but you must sign in to add funds and manage API keys.

When can I create API keys?

After your first verified deposit of at least $10. After that, keys stay unlocked even if your balance reaches zero.

How many keys can I have?

Up to 3 active keys. Revoke one to create a replacement.

Are failed requests charged?

No. If a billable request fails, the credits are returned straight away.

How do bonuses work?

Every deposit gets the bonus of its own tier. It is not limited to the first deposit.

Which payment methods are supported?

Easypaisa (PKR, confirmed by our team) and crypto — USDT on Tron or BNB Chain, USDC, Litecoin, Trust Wallet and a multi-coin checkout, all confirmed automatically.

How much stock is available?

Live stock numbers are shown at the top of this page and update automatically.

Which mailboxes does the API create?

Four services: Gmail.com + Alias, Outlook.com + Alias, Gmail.com Original and Outlook.com Original. Inboxes expire after 10 minutes.

Ready to build?

Sign in, add funds and generate your first API key.