Lookup API (Alpha)
This API is currently in alpha and available to select customers. The interface may change as we iterate based on feedback. Contact us if you'd like access.
The Lookup API lets you query Syft data programmatically via REST. Use it to look up company and contact information by email or domain, and optionally retrieve per-contact activity (site sessions and LinkedIn engagement).
This is useful for building custom internal tools, powering workflows, or pulling Syft intelligence into your own systems.
The Lookup API only returns companies and contacts that Syft has already observed visiting your site or engaging with your LinkedIn ads. It will not enrich arbitrary emails or domains. If Syft hasn't seen the contact or company, the API returns a 404.
Authentication
All requests must be authenticated using your Server Secret Key (starts with sk_live_). You can find this in your Syft settings.
Pass the key in one of the following ways (in order of preference):
| Method | Example |
|---|---|
Authorization header | Authorization: Bearer sk_live_... |
x-syft-secret-key header | x-syft-secret-key: sk_live_... |
secretKey body parameter | { "secretKey": "sk_live_..." } |
Endpoint
POST https://app.syftdata.com/api/syft/lookup
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | One of email or domain required | Email address to look up. Syft finds the matching contact. |
domain | string | One of email or domain required | Company domain to look up directly (e.g. acme.com). Returns the company and up to 10 known contacts. |
includeActivity | boolean | No (default: false) | When true, includes site_activity and linkedin_activity arrays on each contact. |
When both email and domain are provided, email takes precedence.
Examples
Look up a contact by email
curl -X POST https://app.syftdata.com/api/syft/lookup \
-H "Authorization: Bearer sk_live_YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "john@acme.com",
"includeActivity": true
}'
Look up an account by domain
curl -X POST https://app.syftdata.com/api/syft/lookup \
-H "Authorization: Bearer sk_live_YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "acme.com",
"includeActivity": true
}'
Response
The response contains a company object and a contacts array. When includeActivity is true, each contact includes site_activity and linkedin_activity arrays.
{
"company": {
"domain": "acme.com",
"name": "Acme Inc",
"industry": "Software",
"syft_sessions": 42,
"syft_visitors": 12,
"syft_first_seen": "2025-09-15T08:00:00.000Z",
"syft_last_seen": "2026-02-18T14:30:00.000Z",
"syft_purchase_intent": "high"
},
"contacts": [
{
"email": "john@acme.com",
"name": "John Doe",
"title": "VP Engineering",
"syft_sessions": 8,
"syft_first_seen": "2025-11-01T10:00:00.000Z",
"syft_last_seen": "2026-02-18T10:05:00.000Z",
"site_activity": [
{
"active_time": 120,
"start_time": "2026-02-18T10:00:00.000Z",
"end_time": "2026-02-18T10:05:00.000Z",
"pages_visited": ["/pricing", "/demo"],
"signals": ["High Intent - Pricing Page"],
"referrer": "google.com",
"intent": "high",
"city": "San Francisco",
"state": "California",
"country": "US"
}
],
"linkedin_activity": [
{
"start_time": "2026-02-17T15:00:00.000Z",
"linkedin_impressions": 5
}
]
}
]
}
Company Object
The company object contains firmographic data and aggregated visit metrics. The fields match the Webhook Company Object.
Contact Object
Each contact contains identity and enrichment data, plus aggregated visit metrics. The fields match the Webhook Lead Object.
Site Activity
When includeActivity is true, each contact includes a site_activity array with up to 10 most recent website sessions. Each entry contains:
| Field | Description |
|---|---|
active_time | Time spent on site in seconds |
start_time | Session start timestamp (ISO 8601) |
end_time | Session end timestamp (ISO 8601) |
pages_visited | Array of page paths visited |
signals | Matched intent signals |
referrer | Traffic referrer |
intent | Purchase intent level (low, medium, high, very_high) |
city, state, country | Visitor geo-location |
These fields match the Webhook Session Object.
LinkedIn Activity
When includeActivity is true, each contact also includes a linkedin_activity array with recent LinkedIn engagement sessions. These fields match the Webhook LinkedIn Object.
Error Responses
| Status | Body | Description |
|---|---|---|
400 | { "error": "Invalid input" } | Missing both email and domain |
401 | { "error": "Unauthorized" } | Invalid or missing secret key |
404 | { "error": "Not found" } | No matching company or contact found |
Limits
- Up to 10 contacts are returned per company (domain) lookup, ordered by most recently seen.
- Up to 10 sessions are returned per contact when
includeActivityis enabled, ordered by most recent first.