---
name: "admin_make_bridge"
area: "admin"
title: "Make a bridge to a system behind the firewall"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/admin_make_bridge"
mcp_server: "https://api.conecto.chat/mcp/admin"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/admin/admin_make_bridge"
---

# Make a bridge to a system behind the firewall (`admin_make_bridge`)

A new bridge for systems behind the company's firewall, with its token (shown once) and the steps for IT.

A new bridge for systems inside the company's network, like an ERP or an internal API. Its token comes back once, with the program for IT to run and the steps. The bridge connects out to Conecto, so nothing opens inbound, and makes only the calls its own config allows. Then connect_add with bridge and system reaches a system through it.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

A system the agent should reach is only on the company's own network, like an ERP or an internal API.

- For a system with a public https address, use [connect_add](https://conecto.chat/tools/connect/connect_add.md).

## Say this to your agent

> Our SAP only works inside the office network. Set up what IT needs so you can read orders from it.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | yes | Lowercase letters, digits and dashes, like office-hamburg. 2 to 40 characters. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `admin_make_bridge` on the MCP server `https://api.conecto.chat/mcp/admin` with these arguments:

```json
{
  "name": "office-hamburg"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/admin_make_bridge \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "office-hamburg"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "admin_make_bridge",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "bridge": {
      "name": "office-hamburg",
      "online": false,
      "version": null,
      "last_seen_at": null,
      "systems": [],
      "token_last4": "qBKg",
      "created_at": "2026-10-14T08:00:00+00:00",
      "revoked": false
    },
    "token": "conecto_br_wzkEERB5PI1aJPNowEjZcE60cNXA9V3cDpblJSbqBKg",
    "program": {
      "url": "https://api.conecto.chat/bridge/conecto_bridge.py",
      "sha256": "8bee8c0a44f3e789fb801a33caeb26c000b5676e0e7ad917c5e0c20f9669f388"
    },
    "config_example": {
      "systems": {
        "erp": {
          "base_url": "https://erp.internal.example:8443/api",
          "headers": {
            "Authorization": "${ERP_AUTH}"
          },
          "allow": [
            "GET /orders*"
          ]
        }
      }
    },
    "steps_for_it": [
      "Download the program from https://api.conecto.chat/bridge/conecto_bridge.py and check its SHA-256: 8bee8c0a44f3e789fb801a33caeb26c000b5676e0e7ad917c5e0c20f9669f388.",
      "On a machine that reaches the system and https://api.conecto.chat, set CONECTO_BRIDGE_TOKEN to the token, and the variables the config's headers name."
    ]
  }
}
```

`result`: bridge, token (shown once), program (download address and SHA-256), config_example and steps_for_it.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `invalid_input` | 400 | The name is not 2 to 40 lowercase letters, digits and dashes. | Use a name like office-hamburg. |
| `conflict` | 409 | A bridge with that name runs already. | Pick another name, or stop the old one. |
| `limit_reached` | 409 | The account has 10 bridges. | Stop one it no longer runs. |
| `owner_required` | 403 | The key is not one that runs the account: it works for one team, has limits, or is a member's assistant. | Use a key of the company-wide team without limits, or ask the owner (account_owner_link). |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [admin_overview](https://conecto.chat/tools/admin/admin_overview.md): The account page's Home in one read: balance, spending, limits, teams, people, keys, systems and rentals. Free up to 1,000,000 reads a month.
- [admin_save_setup](https://conecto.chat/tools/admin/admin_save_setup.md): Saves the answers to the first questions: the AI the business uses, the jobs to hand over, the systems it runs and its size. Free.
- [admin_list_people](https://conecto.chat/tools/admin/admin_list_people.md): Who besides the owner can open the account, with role, teams, areas and end of access, and the requests to join waiting. Free up to 1,000,000 reads a month.
- [admin_save_person](https://conecto.chat/tools/admin/admin_save_person.md): Adds a person as a member or auditor, or changes their name, teams, areas or end of access. $0.001 a call.
- [admin_remove_person](https://conecto.chat/tools/admin/admin_remove_person.md): Takes a person's access away at once, with their own assistants. Free.
- [admin_list_domains](https://conecto.chat/tools/admin/admin_list_domains.md): The company's email domains on the account: proved or not, how people on them join, and the TXT record that proves each. Free up to 1,000,000 reads a month.
- [admin_save_domain](https://conecto.chat/tools/admin/admin_save_domain.md): Adds the company's email domain, proves it with a TXT record, and sets how people on it join. $0.001 a call.
- [admin_remove_domain](https://conecto.chat/tools/admin/admin_remove_domain.md): Takes a domain off the account; people who joined with it stay. Free.
- [admin_decide_join_request](https://conecto.chat/tools/admin/admin_decide_join_request.md): Approves someone who asked to join, as a member in their domain's team, or declines them. $0.001 a call.
- [admin_list_join_codes](https://conecto.chat/tools/admin/admin_list_join_codes.md): The one-time codes made for other bots to join, with their team, areas, expiry and the bot that used each. Free up to 1,000,000 reads a month.
- [admin_make_join_code](https://conecto.chat/tools/admin/admin_make_join_code.md): A one-time code another bot uses to join this account, for one team and its areas. $0.001 a call.
- [admin_revoke_join_code](https://conecto.chat/tools/admin/admin_revoke_join_code.md): Withdraws a join code no bot used yet. Free.
- [admin_list_bridges](https://conecto.chat/tools/admin/admin_list_bridges.md): The bridges inside the company's network: online or not, last check-in, version and the systems each serves. Free up to 1,000,000 reads a month.
- [admin_revoke_bridge](https://conecto.chat/tools/admin/admin_revoke_bridge.md): Stops a bridge at once; calls waiting for it fail at no cost. Free.
