Build Revenue Workflows Directly Into Your Stack
Connect Outtricks to your own applications, CRM, internal tools, and revenue workflows through a stable, versioned API built for reliable automation.
curl -X POST https://api.outtricks.com/api/v1/leads/search \
-H "Authorization: Bearer otk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"jobTitle": ["VP Sales", "Head of Growth"],
"seniority": ["VP", "DIRECTOR"],
"employeeBands": ["250-999", "1000-9999"],
"technologies": ["Salesforce"],
"country": ["United States"],
"emailConfidence": "exclude_known_bad"
},
"limit": 10
}'{
"data": {
"records": [
{
"id": "b7c1f2e0-5a8d-4c31-9f02-2e6a1d4b8c77",
"firstName": "Sarah",
"lastName": "Jenkins",
"jobTitle": "VP of Sales",
"companyName": "Fernpath Logistics",
"companyDomain": "fernpath.example",
"location": "Austin, TX",
"country": "United States",
"email": "•••",
"phone": "•••",
"emailVerification": "UNKNOWN"
}
],
"total": 1284,
"totalCapped": false,
"alreadyImported": [],
"importedLeadIds": {}
},
"meta": {
"nextCursor": "b7c1f2e0-5a8d-4c31-9f02-2e6a1d4b8c77",
"hasMore": true
}
}Everything You Can Do in the UI, Available via API
Build custom prospecting workflows, automate outreach cadences, and sync pipeline directly into your tech stack.
Lead & Contact Data
Query 200M+ B2B profiles, import the records you want as Leads, then verify and enrich them — each step its own endpoint with its own credit line.
Campaign Automation
Enroll prospects into multi-inbox email sequences and LinkedIn campaigns, with one explicit verdict returned per recipient.
CRM & Pipeline
Read and write Contacts, Companies, Deals, Tasks and Notes, with the unified Contact timeline behind a single GET.
Workflow Triggers
Start a workflow run from your own code, or point a WEBHOOK-triggered workflow at your system and let your events start it.
Clean, Predictable REST Endpoints
Click an endpoint below to inspect request payloads and standardized JSON responses.
Search the shared B2B pool by title, seniority, headcount band, technology and country. Contact fields come back masked until the record is unlocked through POST /api/v1/leads/import — a search result is not a Contact and is never billed as one. The match count is exact up to 10,000: past that `total` is the cap and `totalCapped` is true. Send `includeTotal: false` to get the rows without waiting for a count, and ask POST /api/v1/leads/count for the number.
curl -X POST https://api.outtricks.com/api/v1/leads/search \
-H "Authorization: Bearer otk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"jobTitle": ["VP Sales", "Head of Growth"],
"seniority": ["VP", "DIRECTOR"],
"employeeBands": ["250-999", "1000-9999"],
"technologies": ["Salesforce"],
"country": ["United States"],
"emailConfidence": "exclude_known_bad"
},
"limit": 10
}'{
"data": {
"records": [
{
"id": "b7c1f2e0-5a8d-4c31-9f02-2e6a1d4b8c77",
"firstName": "Sarah",
"lastName": "Jenkins",
"jobTitle": "VP of Sales",
"companyName": "Fernpath Logistics",
"companyDomain": "fernpath.example",
"location": "Austin, TX",
"country": "United States",
"email": "•••",
"phone": "•••",
"emailVerification": "UNKNOWN"
}
],
"total": 1284,
"totalCapped": false,
"alreadyImported": [],
"importedLeadIds": {}
},
"meta": {
"nextCursor": "b7c1f2e0-5a8d-4c31-9f02-2e6a1d4b8c77",
"hasMore": true
}
}Engineered for Production Reliability
One versioned REST surface, one response envelope, and signed outbound webhooks for everything that happens asynchronously.
Versioned Endpoints
Every route lives under /api/v1/. A major version is a new path segment, so a breaking change ships as /api/v2/ rather than as a silent edit to the routes you already call.
Predictable Responses
One envelope everywhere: { data } on success, with { meta } carrying the cursor on a paged read, and { error: { code, message } } plus a requestId on failure.
Secure Authentication
Bearer keys prefixed otk_live_ (sandbox keys: otk_test_), stored only as a hash. Scopes are permission codes, a key can never hold one its creator lacks, and any key can carry an expiry and be revoked.
Reliable Webhooks
X-Outtricks-Signature: sha256=<hmac> over the raw body, and a signed X-Outtricks-Timestamp (X-Outtricks-Signature-V2) so you can reject replayed requests. Five delivery attempts with exponential backoff from 30 seconds: write your handler to be idempotent.
Standard Error Codes
Ordinary HTTP statuses (200, 201, 400, 401, 403, 404, 429, 500), each paired with a stable error.code to branch on and an x-request-id to quote at support.
Tenant Isolation
A key reads only the Organization it belongs to. Tenancy is enforced in PostgreSQL by row-level security, not by a WHERE clause an endpoint could forget.
How Data Flows Into Your Stack
A continuous loop connecting your internal applications, Outtricks revenue engines, and your CRM.
Connect Outtricks to the Tools You Already Use
Mint a scoped key in Settings → API Access and call the same endpoints the product itself runs on. One response envelope, cursor pagination, and signed webhooks for everything asynchronous.