What Waridex does
Waridex gives automated tests email inboxes they create and throw away. A test creates an inbox, makes the app under
test send its sign-up, one-time-code or password-reset email to an address under the inbox’s domain, and calls
wait. The call returns as soon as the message arrives, with the verification code or link already extracted.
The pieces
Section titled “The pieces”- An organisation is your company’s account, and it holds workspaces. Each workspace has its own inboxes, API keys, pinned patterns and plan. See organisations and workspaces.
- An inbox has a domain of its own, such as
signup-k3f9x2.waridex.email, and every address under that domain reaches it. See inboxes and their domains. - Tags label inboxes, typically with the CI run that created them, and one call deletes every inbox of a tag. See tags and the per-run purge.
waitholds a request until a matching message arrives, then returns it with the extraction result. See wait.- Extraction finds codes and links when a message arrives, by patterns you pin and by deterministic scoring. See extraction and pinned patterns.
- API keys belong to one workspace and carry the scopes that say what they may do. See API keys and scopes.
- Plans are priced per workspace and differ in the mail a workspace receives, how long it is kept, and how many patterns and authenticators it holds. See tiers, quotas and retention.
- Authenticators hold the TOTP secret an app under test shows at MFA enrolment and serve its codes. See authenticator.
- Injection puts a raw message into an inbox over HTTPS, for a fixture you control or a network that blocks port 25. See message injection.
The API
Section titled “The API”Your tests talk to the HTTP API at https://api.waridex.com. Every route is under /v1 and takes a workspace’s API
key as a bearer token:
GET /v1/inboxes HTTP/1.1Host: api.waridex.comAuthorization: Bearer wx_...Requests and responses are JSON, apart from the bodies that are mail itself: an
injected message is sent as message/rfc822, and GET /v1/messages/{id}/raw and
GET /v1/messages/{id}/attachments/{partIndex} return the stored bytes. An error is a
problem document (RFC 9457)
with a stable code and a type that links to the code’s page on this site, which says what the problem means and
what to do about it:
{ "type": "https://waridex.com/problems/wait.timeout/", "title": "Wait timed out", "status": 408, "detail": "No message matching the filter arrived at user1@signup-k3f9x2.waridex.email within 30 seconds.", "code": "wait.timeout"}Each API key may make 60 wait calls and 600 other calls a minute. Adding an
authenticator and asking it for a code count against the wait allowance, since they
too may hold. Beyond either, the API answers 429 with a Retry-After header
(rate_limit.exceeded).
Getting started
Section titled “Getting started”- Sign in to the dashboard at app.waridex.com. The first time you sign in, Waridex creates your organisation and a first workspace on the Free plan.
- Create an API key on the workspace’s API keys page. A new key starts with the scopes a test run needs:
email:read,inbox:createandinbox:delete. - Follow the curl quickstart: create an inbox, wait for a message and clean up, in four calls.