Agent Signup

Updated:

An AI agent can create its own Unified.to workspace with one API call, without a human signing up first. The agent gets a workspace API key and Sandbox integrations with mock data straight away. A human claims the workspace later to own it and upgrade it.

For agents: this page is also available as Markdown at https://docs.unified.to/mcp/agent-signup.md.

How it works

  1. The agent calls POST /agent/signup. No body and no credentials are needed.
  2. The response contains a workspace API key, the MCP URL and a claim link. Save the key immediately; it is shown only once.
  3. The agent connects to the Core MCP server with the key and starts building against Sandbox integrations.
  4. When a human should take over, the agent shows them the claim link. The human signs in with a work email and becomes the workspace owner.

The workspace is on the Test plan. It runs for 30 days from signup, whether or not anyone claims it. To keep it running after that, a human must claim it and upgrade it.

1. Sign up

curl -X POST https://api.unified.to/agent/signup

Each region is separate. Sign up on the host for the region where the data should live, and use that region's hosts afterwards:

RegionSignup URL
UShttps://api.unified.to/agent/signup
EUhttps://api-eu.unified.to/agent/signup
AUhttps://api-au.unified.to/agent/signup

A successful call returns 201 Created:

{
    "api_key": "eyJhbGciOi...",
    "workspace_id": "66f1c2...",
    "region": "us",
    "api_url": "https://api.unified.to",
    "mcp_url": "https://api.unified.to/mcp",
    "sandbox_integrations": ["hubspot", "greenhouse", "bamboohr", "quickbooks", "slack"],
    "claim_url": "https://app.unified.to/claim?token=...",
    "claim_expires_at": "2026-11-13T18:04:11.000Z",
    "trial_ends_at": "2026-11-13T18:04:11.000Z",
    "next_step": "Save api_key now; it is shown once. ..."
}
FieldDescription
api_keyWorkspace API key. Send it as Authorization: Bearer <api_key>. Shown only once: store it in a secret or .env file.
workspace_idThe new workspace's ID.
regionThe region that holds the workspace (us, eu or au).
api_urlBase URL for the REST API in that region.
mcp_urlThe Core MCP server URL for that region.
sandbox_integrationsIntegrations already active in the Sandbox environment, with mock data.
claim_urlLink a human opens to take ownership of the workspace.
claim_expires_atWhen the claim link stops working. This is the same as trial_ends_at.
trial_ends_atWhen the 30-day Test plan ends.
next_stepA one-line instruction for the agent.

The API key has the same access as any workspace API key: it can manage every connection, webhook and setting in the workspace. Never commit it or put it in a shareable URL.

2. Connect to the MCP server

Add the Core MCP server with the key in the Authorization header:

{
    "mcpServers": {
        "unified-core": {
            "type": "http",
            "url": "https://api.unified.to/mcp",
            "headers": { "Authorization": "Bearer ${UNIFIED_API_KEY}" }
        }
    }
}

Use the mcp_url from the signup response; it already points at the right region. See Core MCP Server for the tools it provides, and Client configuration for other clients.

Signing up from an MCP client

An agent that only speaks MCP can sign up without leaving its MCP client. Connect to the MCP server with no credential and ?signup=true:

{
    "mcpServers": {
        "unified-signup": {
            "type": "http",
            "url": "https://api.unified.to/mcp?signup=true"
        }
    }
}

The server lists the Core tools plus signup_unified_workspace, the one tool that can be called without a credential. Calling it returns the same fields as POST /agent/signup above, and has the same per-IP limit. The server's instructions tell the model to call it, then reconnect to the returned mcp_url with Authorization: Bearer <api_key>. Until it reconnects, the other tools return an error asking it to authenticate.

Over the REST tool API, POST /tools/signup_unified_workspace/call does the same without a credential.

signup_unified_workspace is never offered once the client presents a credential.

3. Build against the Sandbox

The Sandbox returns mock data and accepts any credentials (see Sandbox). To create a connection, call the create_unified_connection tool, or the REST API:

curl -X POST https://api.unified.to/unified/connection \
  -H "Authorization: Bearer $UNIFIED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"integration_type": "hubspot", "environment": "Sandbox", "categories": ["crm"], "permissions": ["crm_contact_read"], "auth": {}}'

Then read data with the returned connection ID, for example GET https://api.unified.to/crm/{connection_id}/contact.

4. Hand the workspace to a human

Show claim_url to a human when they should own the workspace. Opening the link, they:

  1. Sign in to app.unified.to with a work email. Personal email domains such as Gmail are not accepted.
  2. Become an admin and the billing owner of the workspace.
  3. Can upgrade the plan, activate Production integrations, and copy the workspace secret (used to verify webhook signatures) from Settings → API Keys.

The agent's API key keeps working after the workspace is claimed.

Expiry

The workspace follows the Test plan's 30-day trial, counted from signup. Claiming it does not restart the 30 days. If the workspace has not been upgraded when the trial ends, its connections and webhooks are paused. A workspace that nobody claimed cannot be upgraded.

Limits

  • Signup is rate-limited per IP address. Too many calls return 429 Too Many Requests.
  • Each call creates a new workspace with its own key. Before signing up again, check whether you already saved a key.
Are we missing anything? Let us know
Was this page helpful?