Bulk email accounts, bought by API
Last updated: July 15, 2026
Bulk email accounts on xMailHub are bought the same way whether you want one or ten thousand: fund a prepaid balance with cryptocurrency, then buy. Fresh Hotmail and Outlook accounts start at $0.004, Outlook Countries sit around $0.005, trusted (aged) accounts around $0.040, and Gmail around $0.350. Those are the prices at every quantity. There is no minimum order and no sales conversation in between.
For anything past a handful, use the API. It gives you live stock, your balance, and purchasing, with structured responses at each step. Because orders draw down the prepaid balance, there is no per-order checkout for a script to work around: you send a product code and a quantity, and the credentials come back in the response. Both the current query-string format and the legacy path format from the old system are supported, so existing scripts keep running without edits.
| Product | Price | Stock |
|---|---|---|
| Hotmail Fresh | $0.004 | Out |
| Outlook Fresh | $0.004 | In stock |
| Hotmail Trusted | $0.020 | Out |
| Outlook Trusted | $0.020 | 1 |
| Gmail | $0.350 | Out |
What bulk buying looks like here
Bulk means quantity, not a separate product line or a separate process. The account you can buy one of is the account you buy four thousand of, at the same unit price and out of the same live stock. Nothing sits behind a minimum order or an approval step. What changes at volume is how you buy rather than what you buy: the store handles a few hundred fine, but past that you want a script running the loop. The real constraint is stock, not permission. If a product lists 12,000 available, you can take 12,000 in one call. If it lists 400, you take 400 now and the rest once it refills. Payment is cryptocurrency only, through Plisio, using USDT TRC20, Litecoin or Tron. You fund the balance once and spend it down across as many orders as you like, which is what makes scripted buying practical at all.
Prices at volume
Unit price does not change with quantity. Fresh Hotmail and Outlook accounts start at $0.004 each whether you buy one or five thousand. Outlook Countries run around $0.005. Trusted (aged) accounts are around $0.040, roughly ten times a fresh account, and Gmail sits around $0.350. So a thousand fresh Hotmail accounts is about four dollars, and a thousand Gmail accounts is about three hundred and fifty. Size your order from the number you actually need rather than hunting for a volume break, because there isn't one to find. The table above shows the current figure per product, read at page load. What really drives your cost is which grade you pick. Fresh is cheap and new. Trusted has history behind it and holds up better under repeated logins, which usually matters more than the price gap once you're working at scale.
The API buying flow, step by step
A purchase is one request. Your script calls /purchase/KEY/CODE/QUANTITY, the balance is debited, and the credentials come back in the response body. There is no cart and no order confirmation to poll, because the prepaid balance takes checkout out of the path entirely. A typical loop reads /stock first, which is public and needs no key, to see what's available and at what price. Then /balance/KEY, to confirm the order is covered. Then the purchase call. Responses are structured, so you parse them instead of scraping. Two more endpoints handle accounts after the fact: /mailreader/KEY?mail=... reads an inbox, and /mailinfo/KEY?mail=... returns account details. Everything except /stock needs your key. A missing or invalid key returns 401 and a banned account returns 403, so handle those two separately rather than treating every non-200 as something to retry.
Stock, refills and handling zero
Stock numbers are live. The count you see is what the supplier has at that moment, not a cached figure or a placeholder, and it moves as other buyers take accounts. That has one practical consequence for scripts: read /stock immediately before you buy, not once at the start of a long job. If a product shows zero, the supplier is out right then. It typically refills within the hour, so the right response is to back off and retry rather than to error out or fail over to a different product. Polling /stock every few minutes costs you nothing, since the endpoint is public and takes no key. For large orders, buying across several refills is normal. Take what's there, wait, take the next batch. Nothing reserves stock for you, so a script that grabs quantity as it appears will finish sooner than one waiting for the full number.
What you get back per account
Every account comes with the email address and its password at minimum. Many also include an OAuth2 access token, a refresh token and the client ID, which is what you want if you're reaching the mailbox from code rather than through a browser. Tokens let you read mail over the provider's API without touching a login page, and that matters at volume, because interactive logins coming from one address range get challenged sooner or later. The credentials arrive in the purchase response, so a script can buy an account and use it in the same run without a second call. They're also kept in your order history, so nothing is lost if your process dies halfway through. Delivery is instant and automated regardless of quantity. A thousand accounts come back as fast as one, since nothing is created on demand and no human touches the order.
Legacy path format and old scripts
Scripts written against the old system keep working. Both formats are live side by side: the current query-string style and the legacy path format the old panel used. Nothing was cut over, and nothing needs rewriting to a deadline. That matters more than it sounds, because the usual reason people avoid switching supplier tooling is the week of debugging that follows. Point the old script at the API root, keep your key, and it runs. If you do want to move to the query-string format, go endpoint by endpoint on your own schedule, since both stay available and there's no flag to flip. Your API key lives on the API page inside your account. You can rotate it at any time, which is worth doing if a key has been sitting in a shared script or an old config file for years.
Guarantees and bad accounts at scale
If an account fails on first login, support replaces it against your order reference. That's the guarantee, and it works per account, so one bad account inside a batch of two thousand gets replaced without the batch becoming a problem. Every account is sold once to a single buyer, so a failure isn't someone else already sitting in the mailbox. At volume, the useful habit is to log the order reference next to each credential set as your script writes them out. That reference is what support works from, and digging it back out of timestamps later is slow. Put a first-login check in the pipeline and flag failures rather than dropping them. Fresh accounts are new and unwarmed by definition, so if your workflow puts real load on an account right after purchase, trusted stock at around $0.040 tends to cost less overall than replacing fresh ones.
Frequently asked questions
Is there a minimum order or a bulk discount?
+
No to both. You can buy a single account or several thousand at the same unit price, so a thousand fresh Hotmail accounts costs a thousand times $0.004. There's no tier table to negotiate against and no volume threshold that unlocks a better rate, which means you size the order to what you need rather than to a price break. The only limits are live stock and your prepaid balance. If the product has the quantity and your balance covers it, the order goes through immediately. If stock is short, you take what's there and come back after it refills, which usually happens within the hour. Prices differ by grade, not by how many you buy.
Can I buy accounts in bulk entirely through the API?
+
Yes, that's what it exists for. The API gives you live stock, your balance and purchasing, and the purchase call returns the credentials directly in its response. Because orders draw down a prepaid balance, there's no checkout step for a script to work around: fund once with crypto, then send a product code and a quantity and get accounts back. Responses are structured, so you parse them rather than scraping pages. /stock is public and needs no key, while balance, purchase, mailreader and mailinfo all take your key. The key is on the API page inside your account and can be rotated at any time. Requests with a missing or invalid key return 401.
What happens if the product I need shows zero stock?
+
It means the supplier is out at that moment, and it typically refills within the hour. Zero is a real number here rather than a display quirk, because the figure comes from live inventory instead of a cached count. In a script, the right handling is to back off and poll /stock every few minutes rather than erroring out or switching to a different product. The endpoint is public and takes no key, so polling costs nothing. For large orders it's normal to buy across several refills: take what's available now, wait, take the next batch. Nothing reserves stock for you, so grabbing quantity as it appears finishes faster than waiting for the whole number to show up at once.
Do old scripts written for the previous system still work?
+
Yes. The legacy path format from the old system is supported alongside the current query-string format, so scripts written against the old panel run without edits. Both are live at the same time, which means there's no cutover date and no flag to flip. Point your existing code at the API root with your key and it works as before. If you want to migrate to the query-string format, you can do it one endpoint at a time on your own schedule. Your key lives on the API page in your account and can be rotated whenever you like, which is worth doing if an old script has been carrying the same key around for years.
How are bad accounts handled when I'm buying thousands?
+
Per account, against your order reference. If an account fails on first login, support replaces it, and that holds whether it came from an order of one or an order of five thousand. Each account is sold once to a single buyer, so a failure isn't someone else already using the credentials. The practical step is to store the order reference beside each credential set as your script writes them out, because that reference is what support works from and recovering it later from timestamps is tedious. A first-login check in your pipeline catches problems while the reference is still to hand. Fresh accounts are new and unwarmed, so heavy activity straight after purchase is the usual cause of early failures.
Related pages
Buying at volume?
Live stock, prices from $0.004, credentials returned in the purchase response.
Open the store →