Training environments for agents that use real-world APIs.
Give your agents isolated, stateful versions of the APIs they depend on. Set the starting state, let them act through the real SDK, and evaluate every outcome without touching production.
From scenario to evaluated run
01
Set the starting state
Describe the account your agent should encounter: an aged ticket queue or 400 paid orders. Reuse those starting records for every attempt. Set up conditions such as a spent rate limit separately, with a directive on each environment.
02
Let the agent act
Your agent uses the same SDK and API calls it will use in production. The twin keeps every write and advances through provider-specific state changes.
03
Grade the outcome
Define what must happen and what must never happen. Twinbay grades the captured traffic and returns the evidence behind each verdict.
Stateful versions of the APIs agents use in the real world. Early teams vote on which twin ships next.
- AttioLive
- BILLLive
- BrexLive
- GitHubLive
- HubSpotLive
- KlaviyoLive
- LinearLive
- MercuryLive
- NetSuiteLive
- NotionLive
- PlaidLive
- QuickBooksLive
- ResendLive
- ShopifyLive
- SlackLive
- StripeLive
- TallyLive
- WebEDILive
- XeroLive
- ZendeskLive
- Twiliosoon
Agent environments
An environment brings one or more API twins together behind private hostnames. Choose the starting data, steer conditions as the run unfolds, and inspect every request and state change. Each attempt is isolated, so parallel runs cannot overwrite one another.
A private URL for every attempt.
Reusable starting state built from seeds.
Credentials in the provider's own format.
- An isolated environment
resend-a1c93f.twinbay.run - A starting state you control
records · directives - Credentials your SDK accepts
re_twinbay_9f2a… - State that persists
read · write · reset - The complete action history
method · status · ms
Connected twins
Attio
BILL
Brex
GitHub
HubSpot
Klaviyo
Linear
Mercury
NetSuite
Notion
Provider behavior, reproduced
A twin reproduces the provider’s state machine, pagination, idempotency, and error taxonomy. Agent actions update its records and trigger provider-specific side effects.
Hand-built around each provider's behavior.
Checked against the vendor's own SDK in CI.
Unmodelled routes fail explicitly instead of inventing an answer.
Bring your agent stack
Create an environment from your terminal and point your existing SDK at it. The Twinbay CLI returns a private URL and a credential in the provider’s format, then gives you the action history after the run.
- Provision an environment and every twin in it with one command.
- Keep your existing SDK calls; change the base URL and key.
- Inspect each request, body, status, and latency from the CLI.
Install it with the one-line script or go install. Every command is listed in the CLI reference.
$ twinbay environments create --name=support-run \
--twins='[{"twin":"resend"}]'
✓ twin provisioned resend · behavioural
✓ ready https://resend-a1c93f.twinbay.run
$ twinbay environment-twins collect-credential --environment-id=$ENVIRONMENT \
--environment-twin-id=$TWIN
✓ re_twinbay_9f2a… readable while it runs
$ twinbay environment-logs list --environment-id=$ENVIRONMENT
POST /broadcasts 202 41ms
POST /broadcasts/:id/send 202 38ms
GET /emails?page=2 200 12msPoint the agent you already have at an environment. Change the config, then run, inspect, and evaluate.
- of config to point your existing SDK at an environment
- 1 line
- from choosing a scenario to a live URL your agent can call
- Seconds
- state shared between environments, attempts, or teams
- 0
- of behavioral twins checked against the vendor's SDK in CI
- 100%
Frequently asked questions
Anything else, email hello@twinbay.ai and a human will answer.