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
Pass your server secret key in the Authorization header:
Authorization: Bearer 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": [
{
"action": "Comment",
"post_id": "7156789012345",
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7156789012345",
"syft_purchase_intent": "Medium",
"timestamp": "2026-02-17T15:00:00.000Z",
"postId": "7156789012345",
"intent": "Medium",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7156789012345",
"direction": null,
"description": "commented on a LinkedIn post",
"message_text": "Great breakdown of the funnel",
"teammate": null,
"teammate_handle": null,
"conversation_url": null,
"occurred_at": "2026-02-17T15:00:00.000Z"
}
]
}
]
}
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 Contact Fields.
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. Each entry says what happened (action, direction, description), the full DM text, your teammate on the DM and the thread link. These fields match the Webhook LinkedIn Object, which lists every LinkedIn activity type.
DMs with a teammate who has Share DM activity turned off are never returned.
Error Responses
See Errors for the shared error responses. The Lookup API also returns 400 { "error": "Invalid input" } when both email and domain are missing, and 404 { "error": "Not found" } when no matching company or contact is 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.