Skip to main content
POST
Call a tool

Authentication

Pass an Outlit API key in the Authorization header as Bearer ok_....

Request body

tool is a public tool name. The table below lists the main tools; Integration tools also documents two compatibility handoff tools. input is the tool-specific object, validated against the shared @outlit/tools contract before the tool runs.

Supported tools

Customers and people

Identity

Attention

Access

Timeline and sources

Analytics

Features

Configuration

Feedback

outlit_submit_feedback accepts body (required, trimmed, non-empty, at most 20,000 characters), optional area (trimmed, non-empty, at most 100 characters), and optional context (a JSON object of at most 16 KiB serialized, for diagnostics such as the surface or client version — never secrets or unnecessary customer data). It returns the recorded feedback id and createdAt timestamp. Submissions require authentication and are rate limited under a dedicated quota; they do not consume paid plan API-call quota. Feedback is product intake, not a support ticket, and does not guarantee a reply. For schema-driven clients, @outlit/tools publishes tool input schemas as publicToolContracts.

TypeScript client

Use @outlit/tools when you want the same tool names and input contracts that power the CLI, Pi package, and public tool gateway:
The package also exports publicToolContracts, publicToolNames, server-defined consumerToolPolicies, defaultToolNames, analyticalToolNames, piToolNames, cliToolNames, allPublicToolNames, publicOpenApiTransports, toolGatewayTransport, apiKeyValidationTransport, toolGatewayErrorCodes, toolGatewayErrorSchema, ingestTransport, and enum lists such as customerSourceTypes. OPPORTUNITY is the canonical CRM opportunity source type; CRM and CRM_OPPORTUNITY are accepted input aliases.

Examples

List paying customers

Get customer details

Search customer context

Omit customer to search across all customers. The top-level customer is the customer you scoped to, or null for a search across customers. Each source and fact result also carries a customer (id, name, domain) naming the customer it belongs to. A result’s customer is null when it can’t be attributed to exactly one customer you can read. Servers that predate the field omit it, so treat a missing customer like null.
Example response with two source results:

List active contact transition facts

Open one source record

Read exact source content

Exact lookup can include a contentPage with bounded content segments. The default page size is 10 segments, with a maximum of 100. Pass the returned contentPage.page.nextCursor with the same source type and ID when contentPage.page.hasMore is true. Check contentPage.completeness before treating the content as complete.
Example response with complete content:

Follow person profile evidence

When a fact or search result references a PERSON_PROFILE source, use its source ID for exact lookup. Replace the example ID with the ID from that reference.

Read customer features

Feature usage is factual historical evidence. A feature can report complete or partial counts, no matches in the requested window, or unavailable source evidence. Unavailable evidence is not converted to zero. Archive is the available self-service lifecycle action. Creating a Feature also creates the supporting weekly event-count and active-days metrics inside Outlit; those metrics are not separate public resources.

Submit product feedback

Returns { "id": "10000000-0000-4000-8000-000000000004", "createdAt": "2026-09-28T12:00:00.000Z" }. See Feedback for input limits. Feedback is product intake, not a support ticket.

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. Search returns grouped artifact-level source and fact results, not raw vector chunks. Fact results include provenance fields such as sourceType, sourceId, sourceOccurredAt, sourceQuote, and permalink when available. Money amounts such as currentMrr, lifetimeRevenue, and accountImportance.arrCents are in the billing provider’s units for the currency they were billed in. For USD, EUR, GBP, and CAD these are cents: divide by 100 (for example, 1234500 is 12,345inUSD).Othercurrenciesfollowtheprovider′samountrules(see[Stripe′scurrencydocs](https://docs.stripe.com/currencies)),sodon′tassumeadivisorforthem.Attentionitemsreturnthecurrencyalongside‘arrCents‘;customerresultsdon′tnameit.ARRis12בcurrentMrr‘inthesameunits.TheexamplebelowisforacustomerbilledinUSD,so‘"currentMrr":25000‘is12,345 in USD). Other currencies follow the provider's amount rules (see [Stripe's currency docs](https://docs.stripe.com/currencies)), so don't assume a divisor for them. Attention items return the currency alongside `arrCents`; customer results don't name it. ARR is 12 × `currentMrr` in the same units. The example below is for a customer billed in USD, so `"currentMrr": 25000` is 250 MRR. Example list response:

Error responses

Invalid JSON, unknown tool names, or invalid tool inputs return 400:
Invalid credentials return 401. Plan API-call limits can return 402 or 429 with a stable billing code.

Authorizations

Authorization
string
header
required

Outlit API key (ok_...).

Body

application/json
tool
string
required
Allowed value: "outlit_list_customers"
input
object

Response

Capability output

items
object[]
required
pagination
object
required