Get Contacts
Search and retrieve B2B contact records using filters like name, location, job title, department, and associated company attributes.
Autobound’s /filter-contacts endpoint allows you to query individual contacts based on demographic, geographic, and job-level filters. This can be used to power prospecting workflows, contact enrichment tools, or any application that needs B2C or individual-level B2B targeting.
Base URL:
https://autobound-b2b-data.daniel-1ba.workers.dev
Endpoint:
POST /filter-contacts
🔐 Authentication
You must pass your API token via one of the following:
- Header:
x-api-token: <your_token> - Query param:
?api_token=<your_token> - JSON body key:
"api_token": "<your_token>"(only used if neither header nor query param is present)
📥 Request Format
{
"Filters": [
{
"Column": "JobTitle",
"Operator": "contains",
"Value": "marketing"
}
]
}🔀 Query Parameters
-
Page(optional, default:1) – The page of results to return. -
PageSize(optional, default:10) – Number of results per page. -
SortBy(required) – Any of:UpId,FirstName,LastName,BusinessEmail,MobilePhone,LinkedInUrl,PersonalAddress,PersonalAddress2,PersonalCity,PersonalState,PersonalZip,PersonalZip4,PersonalEmails,JobTitle,ProfessionalAddress,ProfessionalCity,ProfessionalState,ProfessionalZip
-
SortDirection(optional, default:asc) – Eitherascordesc
🔁 If SortBy is not provided, Autobound’s proxy will automatically apply SortBy=LastName to prevent failure.
🔧 Supported Filters
Supported Columns:
FirstName, LastName, BusinessEmail, MobilePhone, LinkedInUrl, PersonalCity, PersonalState, PersonalZip, JobTitle, Department, Gender, AgeRange, IncomeRange, NetWorth, HomeOwner, CompanyName, CompanyDomain, CompanyNaics
Supported Operators:
equalsnot_equalscontainsnot_contains
Note: contains and not_contains require a minimum of 3 characters in the value field.
🧠 Filter Logic Behavior
- Filters are evaluated using AND logic. All conditions must be true for a result to match.
- OR conditions are not supported in a single request.
- To apply OR logic, issue multiple requests and merge the results client-side.
📦 Response Format
{
"data": [ /* matching contact records */ ],
"meta": {
"Page": 1,
"PageSize": 10,
"HasNextPage": true
}
}📘 Field Reference
| Field Name | Type | Nullable | Notes |
|---|---|---|---|
UpId | string | No | Unique contact ID |
FirstName | string | No | |
LastName | string | No | |
BusinessEmail | string | Yes | |
MobilePhone | string | Yes | May be obfuscated |
LinkedInUrl | string | Yes | URL path only (not full URL) |
PersonalAddress | string | Yes | |
PersonalCity | string | Yes | |
PersonalState | string | Yes | US two-letter state code |
PersonalZip | string | Yes | |
JobTitle | string | Yes | |
Department | string | Yes | e.g., "Sales", "Marketing" |
SeniorityLevel | string | Yes | e.g., "Manager", "VP", "Director" |
Gender | string | Yes | "m" or "f" |
AgeRange | string | Yes | e.g., "35-44", "65 and older" |
IncomeRange | string | Yes | e.g., "$75,000 to $99,999" |
NetWorth | string | Yes | e.g., "$500,000 to $749,999" or "-$2,499 to $2,499" |
HomeOwner | string | Yes | "y" or "n" |
CompanyName | string | Yes | Enriched field |
CompanyDomain | string | Yes | e.g., "apple.com" |
CompanyNaics | string | Yes | NAICS classification code |
🛠 Error Scenarios
| Code | Message / Body | Reason |
|---|---|---|
| 400 | "Filters are required" | Missing Filters array |
| 400 | "Invalid column name" | A field in Filters is not recognized |
| 401 | "Missing EchoPath token" | Token not found in request |
| 500 | "Mapping '<Field>' not found" | EchoPath does not support that filter field |
| 500 | "The value must be at least 3 characters long for the 'contains' operator." | Value passed was too short |
Updated 15 days ago
