Test your agents against APIs that behave like the real thing.

A sandboxed Resend twin for testing email workflows. Describe the state you need, get a live URL, and point Resend’s own SDK at it.

Sandboxes

A working copy of someone else's API, in about a minute.

Pick a provider, say what state you want it in, and you get a hostname of your own. Nothing to install, nothing to reset between runs, and nothing shared with anyone else.

A private URL

Every sandbox gets its own hostname. Nothing is shared with another run, another test, or another team.

resend-a1c93f.semva.run
State from a sentence

Describe the situation you need to test and the seeder writes the records it implies. Or start from a template.

scenario → records
Keys in the provider's format

The sandbox issues a credential shaped like the real one, so your key handling and auth errors get exercised too.

re_semva_9f2a…
Editable records

Change anything after seeding, from the dashboard or through the API. Whatever your code writes, the sandbox keeps.

read · write · reset
A full request log

Every call your agent made, with its body, status and latency, so you can see what it actually did.

method · status · ms
Coming nextQ3

Import production data into a sandbox, and a full recording of every provider call, response and state change across an agent run. Waitlist teams vote on the order and get them first.

Why it works

A mock that lies is worse than no mock.

A test double that happily returns a plausible body for a call the real API would reject gives you a green build on broken code. Everything here exists so the twin fails where production would fail.

  • Hand-written mocks+A validated twin

    =Tests that fail for real reasons

  • Vendor test mode+A private sandbox

    =No shared state, no rate limits

  • Recorded fixtures+Live seeded state

    =Writes that actually persist

  • One staging account+A URL per test run

    =Parallel runs that never collide

  • Setup scripts+A plain-language scenario

    =The state you need in seconds

  • Hoping the mock is right+The vendor's SDK in CI

    =Proof the twin still matches

The catalog

Hand-built where it matters, generated everywhere else.

Behavioural twins are written by hand for the providers agents lean on hardest, and every one of them has to pass the vendor's official SDK before it ships. Everything else comes from a specification, and says so.

Resend
Email

Models email delivery lifecycles, scheduled sends, domains, contacts, segments, broadcasts, pagination, idempotency, and API-key permissions.

Replaces A live sending domain, hand-written email mocks

resend-pythonconformance passing

How it works

Describe the state. Get a URL.

A sandbox is rows in a database rather than a container, so it exists the moment you ask for it, costs nothing while it sits idle, and has no cold start when your suite comes back to it.

01

Pick an API

Choose the available Resend twin. Its code-defined behavior is verified against the official SDK.

02

Describe the state

Start from a template, or write a sentence: a customer with three failed payments and a subscription about to lapse. The seeder writes the records that scenario implies.

03

Point your SDK at it

You get a hostname and a key in the provider's own format. Change the base URL and run the code you already have — nothing else moves.

sandboxes
  • Newsletter to a customer segment with one hard bounce

    resend-a1c93f · Resend · 2 minutes ago

Ready · SDK verified
Newsletter to a customer segment with one hard bounce

Resend sandbox log

  1. 1Seeded one segment with delivered and hard-bounce recipients.
  2. 2The Resend SDK created and sent a broadcast to that segment.
  3. 3Advancing the sandbox produced deterministic delivery events.

What a twin will never do

  • Invent a response for a route it does not model.
  • Return a 404 for an endpoint that exists but is unmodelled.
  • Claim behavioural fidelity without the vendor's SDK passing in CI.
  • Share state with another sandbox, or with anyone else.

Developers

Point the SDK somewhere else. Change nothing else.

Create a sandbox in the Semva web app, then use its base URL and provider-shaped key with the SDK you already have.

  • One line of config: the base URL your SDK already supports.
  • Credentials in the provider's own format, so key handling is exercised too.
  • Every request logged with its body, status and latency.

Or open the dashboard and pressKto describe a sandbox in plain language.

semva · sandbox

you

Create a Resend sandbox with a segment containing one hard-bounce recipient.

semva

Created and seeded the sandbox from the web app.

  • twin selected resend · behavioural
  • scenario seeded segment · hard-bounce recipient
  • credential issued re_semva_9f2a… (shown once)
  • ready https://resend-a1c93f.semva.run

you

Will the official Resend SDK work against it?

semva

Yes. The pinned resend-python conformance suite runs against this twin in CI.

FAQ

What engineers ask us first.

Anything else, email hello@semva.dev and a human will answer.

Private beta · Waitlist open

Give your agents an API worth testing against.

Behavioural twins for the providers your agents lean on hardest, shape twins for everything else. Semva is free for academic researchers.

Join the waitlist

One email when your slot opens, and nothing else.