Endpoint
POST https://app.outlit.ai/api/tools/call
Authentication
Outlit API key using the Bearer ok_... format.
Request Body
{
"tool": "outlit_list_customers",
"input": {
"limit": 10,
"billingStatus": "PAYING"
}
}
Customer intelligence tool name. Must be one of the supported tool names below.
Tool-specific input object. The input is validated against the shared @outlit/tools contract before the tool runs.
| Tool | Purpose |
|---|
outlit_list_customers | Browse and filter customers by billing status, activity recency, revenue, traits, or name |
outlit_list_users | Browse and filter users by journey stage, activity recency, customer, traits, email, or name |
outlit_get_customer | Get full details for one customer, with optional related sections |
outlit_get_timeline | Get chronological customer activity across product, billing, support, and conversation channels |
outlit_list_facts | Browse stored customer facts and evidence |
outlit_get_fact | Retrieve one exact customer fact |
outlit_get_source | Retrieve one exact source record behind a fact or search result |
outlit_search_customer_context | Search customer context semantically |
outlit_query | Run SQL against customer intelligence tables |
outlit_schema | Inspect available SQL schema tables |
Tool input schemas are published by @outlit/tools as customerToolContracts. Use that package when building schema-driven clients or model tool definitions.
Examples
List Paying Customers
curl -X POST https://app.outlit.ai/api/tools/call \
-H "Authorization: Bearer ok_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"tool": "outlit_list_customers",
"input": {
"billingStatus": "PAYING",
"limit": 10
}
}'
Get Customer Details
{
"tool": "outlit_get_customer",
"input": {
"customer": "acme.com",
"include": ["users", "revenue", "recentTimeline"],
"timeframe": "30d"
}
}
Search Customer Context
{
"tool": "outlit_search_customer_context",
"input": {
"customer": "acme.com",
"query": "What renewal concerns came up recently?",
"topK": 5
}
}
Response
The response is the selected tool’s JSON result. List tools return paginated collections; exact lookup tools return the matched record or an error when the record cannot be found.
Example list response:
{
"items": [
{
"id": "cus_123",
"name": "Acme",
"domain": "acme.com",
"billingStatus": "PAYING",
"mrrCents": 25000,
"lastActivityAt": "2026-04-10T18:22:11.000Z"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "cursor_abc",
"total": 128
}
}
Error Responses
Invalid JSON, unknown tool names, or invalid tool inputs return 400:
{
"error": "Invalid tool input",
"details": [
{
"path": ["limit"],
"message": "Too big: expected number to be <=1000"
}
]
}
Invalid credentials return 401. Plan API-call limits can return 402 or 429 with a stable billing code.