REST APIs integration

Connect any REST API to an AI agent

Most integrations are an HTTP request with the right credential. AgentRow's HTTP API tool describes that request once, with templates the model fills from a JSON Schema, and turns it into a capability the agent can call under limits you set.

Tool type
HTTP API
Auth type
none, api_key, bearer_token, basic, oauth2, custom_header, connection or end_user_token
Safety level
safe_read to destructive, declared per tool

What you can build

Read-only lookups against internal services: order status, account details, inventory, ticket state.

Actions behind approval: create a ticket, schedule a callback, update a record.

Chains of calls where the model uses one result to fill the next request, all visible in the trace.

How to connect REST APIs

  1. 01Create a tool of type HTTP API. Write the description for the model: what the endpoint does, what it needs, what it returns and when to use it.
  2. 02Set the method and URL; use {{placeholders}} in the URL, query parameters, headers and body template. Each placeholder becomes a field the model must supply, described in the input schema.
  3. 03Pick the auth type: API key, bearer token, basic, OAuth2, a custom header, a stored connection, or end user token to act as the signed-in user.
  4. 04Restrict allowed domains, set the expected status codes, a timeout and a retry policy, and declare the safety level. Mark writes as requiring approval if a human must confirm them.
  5. 05Test the tool from the toolbox, attach it to an agent and check the call in the run trace.

Example tool definition

The shape a tool takes in the AgentRow builder API. Credentials are stored on the tool's auth settings, not in its configuration, so they never reach a prompt. Placeholders in double braces are filled by the model from the input schema.

{
  "name": "get_order_status",
  "type": "http_api",
  "description": "Look up an order by id and return its status, items and delivery estimate. Use when the user asks about an order.",
  "auth_type": "api_key",
  "safety_level": "safe_read",
  "is_readonly": true,
  "timeout_ms": 8000,
  "config": {
    "method": "GET",
    "url": "https://api.example.com/v1/orders/{{order_id}}",
    "query_params": { "expand": "items" },
    "allowed_domains": ["api.example.com"],
    "expected_status_codes": [200, 404]
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "order_id": { "type": "string", "description": "The order id, for example ORD-10422" }
    },
    "required": ["order_id"]
  }
}

What the run trace shows

Every call appears in the run trace with the rendered request, the response status and body, timing, retries and errors, plus what the model was shown of the result. If the model never called the tool, the toolbox step shows whether it was bound for that model call and why.

Frequently asked questions

Can the model set arbitrary headers or query parameters?

Only when the tool allows it. Runtime-supplied headers, query parameters and JSON bodies are off unless the tool config enables them, and unsafe headers are blocked.

How do large responses reach the model?

The model receives a preview plus a handle; the full response is stored and can be read in parts with the built-in tool_history tool. Responses are also capped by a maximum size.

Can one tool act as the signed-in end user?

Yes. With the end user token auth type the signed-in end user's own token is forwarded as the credential, and the tool binds only when a run has a signed-in user.

Connect REST APIs to your first agent

Join the waitlist for early access. Tell us which systems you need to connect and we will point you at the right tool definitions.