Skip to content

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.

  • 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.
  • wait holds 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.

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.1
Host: api.waridex.com
Authorization: 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).

  1. 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.
  2. 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:create and inbox:delete.
  3. Follow the curl quickstart: create an inbox, wait for a message and clean up, in four calls.