Skip to content

Service twin · API only

Unified

Test integration agents built against Unified.to across multiple connected providers.

API onlydocs-transcribedREST · MCP · CLI
Terminal
$ uv tool install --with "blobfish-sdk @ https://blobfish.ai/sdk/blobfish_sdk-0.6.2-py3-none-any.whl" "blobfish-cli @ https://blobfish.ai/sdk/blobfish_cli-0.1.13-py3-none-any.whl"
$ blobfish login
$ blobfish twin-runs create --twins unified --ttl 60 --wait

What’s inside

A deterministic, seeded, resettable replica: every operation below executes real state transitions against the twin’s own SQLite state — reads are hash-invariant, writes produce inspectable diffs, and reset restores the seed baseline.

Operations28
Reads12
Writes16
Entities6
Lifecycles2

Seeded entities

EntityTableFieldsAbout
connectionconnections8A customer's linked provider account through which unified domain objects are reached.
integrationintegrations7A provider available in the Unified.to catalog that a workspace can connect.
crm_contactcrm_contacts7Unified CRM contact read through a specific provider connection.
crm_dealcrm_deals8Unified CRM deal read through a specific provider connection.
hris_employeehris_employees8Unified HRIS employee read through a specific provider connection.
ticketing_ticketticketing_tickets7Unified ticketing ticket read through a specific provider connection.

Guarded lifecycles

These state machines are enforced, not decorative: an action whose from state doesn’t match is rejected the way the production service rejects it.

connection.auth_status

authorized → disconnected → revoked
  • disconnect: authorized → disconnected
  • reauthorize: disconnected → authorized

ticketing_ticket.status

open → in_progress → closed
  • start: open → in_progress
  • close: open|in_progress → closed

Three surfaces, one state

Mount Unified in a twin environment and the same seeded state serves vendor-shaped REST operations, an MCP endpoint for tool calling, and a generated bf-twin CLI — with copy-on-write sessions per rollout and a one-call reset to the seed baseline. Prefer raw HTTP? The same create works with curl:

API
$ curl -sS -X POST https://blobfish.ai/api/v1/twin/environments \
    -H "X-API-Key: $BLOBFISH_API_KEY" -H "Content-Type: application/json" \
    -d '{"services":["unified"],"ttl_minutes":60}'

Known limitations

  • transcribed from https://docs.unified.to/api; parameter and response schemas simplified
  • synthetic seeded values
  • connection categories simplified to a single category string
  • disconnect/reauthorize modeled as explicit lifecycle actions on the connection