Connect any API as a tool — no code
Give the model access to your internal APIs, third-party services, or any REST endpoint by describing what it does and declaring a parameter schema. The model decides when to call it and fills in the parameters automatically.
How it works
Define once, call automatically
Three steps turn any REST endpoint into a model-callable tool. No deployment, no code changes — just a name, a description, and a schema.
Describe the endpoint
Give the tool a clear name and a plain-English description of what it does. The model uses this description to decide when the tool is relevant — precision here pays off.
- Name and description drive zero-shot selection
- Include the HTTP method and base URL
- Add per-tool authentication headers
Declare a parameter schema
Define the parameters your endpoint accepts using a standard JSON Schema object. The model fills in values at runtime based on the conversation — required fields are enforced automatically.
- Full JSON Schema type support
- Required vs. optional fields enforced
- Enum constraints and default values
Let the model call it
Once saved, the tool is available in any chat or agent where you enable it. The model selects and invokes it automatically — the call and its result stream inline in the thread.
- Zero-shot tool selection by the model
- Inputs and outputs visible in-thread
- Enable per chat, per agent, or globally
Tool builder
What the tool builder produces
Fill in the form — name, description, method, URL, and parameter schema — and the builder generates this definition. The model receives the schema at runtime, decides when the tool is relevant, and fills in the parameters from context.
{
"name": "search_products",
"description": "Search the product catalogue by keyword. Returns matching product names, prices, and current stock levels.",
"method": "GET",
"url": "https://api.acme.example/v1/products?q={query}&limit={limit}",
"headers": {
"Authorization": "Bearer {{env.ACME_API_KEY}}"
},
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The keyword or phrase to search for in the product catalogue."
},
"limit": {
"type": "integer",
"description": "Maximum number of products to return.",
"default": 10
}
},
"required": ["query"]
}
}The {{env.ACME_API_KEY}} placeholder is resolved server-side from the secrets you save in Settings — it never reaches the model or the browser.
Use cases
Any API, any workflow
Teams use dynamic tools to close the gap between the model and the systems they already run — without building a custom integration layer.
Internal data lookup
Expose read-only queries against your own databases or data warehouses. Let teammates ask natural-language questions and get live answers pulled from the source of truth.
- Query internal APIs without writing SQL
- Scope access with API-key permissions
- Works with any REST-wrapped data store
CRM & ticketing actions
Let the model create tickets, update contact records, or look up account details in Salesforce, HubSpot, Jira, or any CRM with a REST API — mid-conversation, automatically.
- Create, update, and query CRM records
- Open and triage support tickets in-thread
- Map conversation context to API fields
Search & retrieval
Connect vector databases, search APIs, or knowledge bases so the model can pull relevant documents and ground its answers in your own content.
- Retrieval-augmented generation (RAG) ready
- Works with Pinecone, Weaviate, Elasticsearch
- Pass filters and metadata in the schema
Webhooks & automations
Trigger downstream workflows — send a Slack message, kick off a CI pipeline, publish to a queue — whenever the model determines the action is appropriate based on the conversation.
- Fire-and-forget or wait-for-response modes
- Carry conversation context into the payload
- Chain multiple tool calls in a single turn
Security by design
Dynamic tools can only call endpoints you explicitly configure. The model cannot construct or invoke arbitrary URLs — every request goes through a validated allowlist of your own tool definitions. Secrets are stored encrypted and resolved server-side; they are never sent to the model or exposed to the browser.Connect your first API in minutes
Open the tool builder, paste your endpoint URL, describe what it does, and you're live. No code, no redeploy.