Check out an account from the pool
const url = 'https://api.proxymail.qa/v1/addresses/checkout';const options = { method: 'POST', headers: { 'Proxy-Mail-QA-Test': 'sign-up%20%E2%80%BA%20sends%20one%20code', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"tags":["example"],"country":"example","min_age":1,"max_age":1,"has_password":true,"search":"example","site":"example","environment":"example","minutes":10}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.proxymail.qa/v1/addresses/checkout \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Proxy-Mail-QA-Test: sign-up%20%E2%80%BA%20sends%20one%20code' \ --data '{ "tags": [ "example" ], "country": "example", "min_age": 1, "max_age": 1, "has_password": true, "search": "example", "site": "example", "environment": "example", "minutes": 10 }'An account in the project that matches every filter given, that nobody else has checked out, and that lives past the hold: the least recently used first. It’s yours for minutes (default 10, at most 60): nobody else can check it out until you return it or the time runs out, which frees it on its own. Use the checkout.token to extend or return it. 409 when every matching account is checked out (saying when the first comes free), 404 when none match. Tag accounts with their state (verified, premium…) to make pools.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”A run’s id (POST /v1/runs): adds what this call saw to the run. If it can’t be added (the run finished, or isn’t in this project), the call still works and the Proxy-Mail-QA-Run-Warning response header says why.
With Proxy-Mail-QA-Run: the test this call belongs to, percent-encoded (encodeURIComponent), up to 200 characters once decoded. The run’s report shows it beside what the call saw.
Example
sign-up%20%E2%80%BA%20sends%20one%20codeRequest Body
Section titled “Request Body”object
Every one of these tags.
ISO 3166-1 alpha-2, such as DE.
Part of the address, label, notes, name or username.
Used on this site: a host or page URL.
Used in this environment, such as staging.
Responses
Section titled “Responses”The account, held for you
object
object
Present only when the address has one.
ISO 3166-1 alpha-2 code, such as GB. Present only when the address has one.
Only in the response to creating it with password: true.
Where it is used: the host of the app under test. Present only when set.
Which environment it is used in, such as staging. Present only when set.
The newest code or link, like Match.
Only while someone has it checked out of the pool.
object
Example generated
{ "address": "example", "label": "example", "created_at": "2026-04-15T12:00:00Z", "expires_at": "2026-04-15T12:00:00Z", "persona": { "first_name": "example", "last_name": "example", "username": "example", "date_of_birth": "2026-04-15", "country": "example" }, "notes": "example", "tags": [ "example" ], "has_password": true, "password": "example", "site": "example", "environment": "example", "email_count": 1, "latest": "example", "checked_out_until": "2026-04-15T12:00:00Z", "checkout": { "token": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "until": "2026-04-15T12:00:00Z" }}An error
object
Example generated
{ "error": "example", "message": "example"}An error
object
Example generated
{ "error": "example", "message": "example"}An error
object
Example generated
{ "error": "example", "message": "example"}