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.

See how agents connect
environment · what you get
  • An isolated environmentresend-a1c93f.twinbay.run
  • A starting state you controlrecords · directives
  • Credentials your SDK acceptsre_twinbay_9f2a…
  • State that persistsread · write · reset
  • The complete action historymethod · status · ms

Connected twins

Attio

BILL

Brex

GitHub

HubSpot

Klaviyo

Linear

Mercury

NetSuite

Notion

20twins live
292resources modelled

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.

Browse the catalog

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 · cli
$ 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   12ms

Point 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.

Give your agent somewhere real to practice.

Start Free