Integrations4 min readBeta

Connecting a Custom API

Connect any system with a REST API to Symbi — your agents call the endpoints you allow, and the system can post to the agent's own webhook URL.

What Custom API Enables

Custom API is the generic connector for any system that has its own REST API and no dedicated Symbi pack — an internal tool, a smaller SaaS product, anything with a base URL and some endpoints. Each system you connect ("BookIt", "Our Warehouse API") gets its own tile, shown as "<name> · Custom API" — Custom API is not one connection, it is one tile per system you add.

A Custom API connection does two things once it is wired into an agent:

  • Outbound calls — an agent can call specific endpoints you define, each becoming a tool named http_<slug>
  • Inbound webhook — the connected system can post to the agent's own secret URL, and each post becomes a task for the agent to handle

Both halves are set up through the agent builder chat, not a settings form — the chat asks for exactly the connection to use, then builds the tool or webhook from what you describe.

Connect Your System

  1. Open Settings → Connectors and click the Custom API tile
  2. Click Configure Custom API
  3. Enter:
    • System name — shown on the tile, e.g. "BookIt"
    • Base URL — e.g. https://api.bookit.no/v2. Agents can only call this host; addresses on your own private network cannot be reached
    • How Symbi signs in — one of:
      • API key in a header — you also name the header (e.g. X-Api-Key)
      • Bearer token
      • Username and password
      • No key — for a public API that needs no credential
  4. Click Connect

Only Owner and Admin users can configure connectors. The key, token, or password is stored encrypted; agents never see it directly.

Add Endpoints Through the Agent Builder Chat

A fresh connection has no endpoints yet — connecting only stores the base URL and credential. To give an agent a specific call, describe it to the agent builder chat: which connection, a short slug (the tool becomes http_<slug>), what the call does, the HTTP method (GET, POST, PUT, PATCH, or DELETE), the path after the base URL (e.g. /bookings/{bookingId}, with {name} marking a path parameter), and the parameters the agent may fill in — each one as a path, query, or body value. Anything not declared this way cannot be sent.

Each endpoint gets a review group — how carefully Symbi treats calls to it. You can state one, or leave it to the default: a GET call defaults to read, and any other method defaults to produce, which is held for review unless the agent is set to a more autonomous mode.

The endpoint takes effect the next time the agent is published.

Set Up an Incoming Webhook

The same chat can give the agent a generic incoming webhook: a secret URL that the connected system posts to, with each post becoming a task. Describe to the chat which connection is sending, what the agent should do with each delivery (the posted body is its input), and optionally:

  • a field in the payload that identifies a delivery (e.g. booking.id), so a repeated post with the same value is treated as the same task rather than a new one
  • an HMAC signature header the sender adds, if the sending system supports signing

The chat never shows you or the model the webhook URL or its signing secret directly. Once set up, both appear on the connection's own page (Settings → Connectors → Custom API → <system>), under Incoming webhooks — masked by default, with Show and Copy buttons, and a Rotate URL button that invalidates the current URL at once (paste the new one into the sending system afterwards). The webhook starts accepting posts once the agent is published and live; a draft or paused agent's webhook URL exists but takes no deliveries yet.

Limitations

  • Beta — Custom API is still being extended; expect its connect flow and endpoint tooling to change
  • Not a trigger through bindings — a Custom API connection cannot be bound to an agent as an input/output/human-in-the-loop resource. The two ways it reaches an agent are the http_ tools described above and the agent's own webhook URL
  • No auto-discovery — there is nothing to "find more resources" on; every endpoint is defined explicitly through the chat
  • Company integration — not available for the Personal Assistant

What's Next?