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) – Either asc or desc

🔁 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, SeniorityLevel, Gender, AgeRange, IncomeRange, NetWorth, HomeOwner, CompanyName, CompanyDomain, CompanyNaics

Supported Operators:

  • equals
  • not_equals
  • contains
  • not_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 NameTypeNullableNotes
UpIdstringNoUnique contact ID
FirstNamestringNo
LastNamestringNo
BusinessEmailstringYes
MobilePhonestringYesMay be obfuscated
LinkedInUrlstringYesURL path only (not full URL)
PersonalAddressstringYes
PersonalCitystringYes
PersonalStatestringYesUS two-letter state code
PersonalZipstringYes
JobTitlestringYes
DepartmentstringYese.g., "Sales", "Marketing"
SeniorityLevelstringYese.g., "Manager", "VP", "Director"
GenderstringYes"m" or "f"
AgeRangestringYese.g., "35-44", "65 and older"
IncomeRangestringYese.g., "$75,000 to $99,999"
NetWorthstringYese.g., "$500,000 to $749,999" or "-$2,499 to $2,499"
HomeOwnerstringYes"y" or "n"
CompanyNamestringYesEnriched field
CompanyDomainstringYese.g., "apple.com"
CompanyNaicsstringYesNAICS classification code

🛠 Error Scenarios

CodeMessage / BodyReason
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