Skip to main content

Lookup API (Alpha)

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.

Not an enrichment API

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):

MethodExample
Authorization headerAuthorization: Bearer sk_live_...
x-syft-secret-key headerx-syft-secret-key: sk_live_...
secretKey body parameter{ "secretKey": "sk_live_..." }

Endpoint

POST https://app.syftdata.com/api/syft/lookup

Parameters

ParameterTypeRequiredDescription
emailstringOne of email or domain requiredEmail address to look up. Syft finds the matching contact.
domainstringOne of email or domain requiredCompany domain to look up directly (e.g. acme.com). Returns the company and up to 10 known contacts.
includeActivitybooleanNo (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:

FieldDescription
active_timeTime spent on site in seconds
start_timeSession start timestamp (ISO 8601)
end_timeSession end timestamp (ISO 8601)
pages_visitedArray of page paths visited
signalsMatched intent signals
referrerTraffic referrer
intentPurchase intent level (low, medium, high, very_high)
city, state, countryVisitor 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

StatusBodyDescription
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 includeActivity is enabled, ordered by most recent first.