openapi: 3.0.3 info: title: Adapt Prospect Company Search Contact Search API description: 'Adapt''s Prospect API provides programmatic access to a B2B contact and company intelligence database of 250M+ contacts and 12M+ companies. Search, enrich, and purchase verified B2B contact data with 50+ attributes including verified email addresses, direct dial phone numbers, job titles, levels, departments, technographics, firmographics, and location data. All endpoints are organized around REST. Requests and responses are JSON over HTTPS. Authentication is via two custom headers: `email` (account email) and `apiKey` (key from account settings). Default rate limit is 250 requests per minute per account. ' version: v3 contact: name: Adapt Support url: https://www.adapt.io license: name: Adapt Terms of Service url: https://www.adapt.io/terms-of-service servers: - url: https://api.adapt.io/v3 description: Adapt API v3 production base URL security: - emailAuth: [] apiKeyAuth: [] tags: - name: Contact Search description: Search the contact database using contact and company filters. paths: /contact/search: post: tags: - Contact Search summary: Search Contacts description: 'Search Adapt''s B2B contact database using a combination of contact and company filters. Returns contact metadata without email addresses; emails are revealed via the `/contact/fetch` purchase endpoint. ' operationId: searchContacts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactSearchRequest' responses: '200': description: Search results headers: x-call-credit-type: schema: type: string description: Credit types consumed by this call. search-remaining-credits: schema: type: integer description: Search credits remaining for the account. content: application/json: schema: $ref: '#/components/schemas/ContactSearchResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' components: schemas: Company: type: object properties: name: type: string website: type: string format: uri domain: type: string phoneNumber: type: string industry: type: string subIndustry: type: string headCount: type: string revenue: type: string city: type: string state: type: string country: type: string numberOfContacts: type: integer Error: type: object properties: code: type: string description: Adapt internal application code (e.g. APP-400-001). message: type: string ContactSearchRequest: type: object properties: name: type: array items: type: string firstName: type: array items: type: string lastName: type: array items: type: string title: type: array items: type: string excludeTitle: type: array items: type: string titleExactMatch: type: boolean department: type: array items: type: string enum: - Engineering - Finance - HR - IT - Marketing - Operations - Sales - Support - Other level: type: array items: type: string enum: - C-Level - VP-Level - Director-Level - Manager-Level - Staff - Other companyName: type: array items: type: string companyDomain: type: array items: type: string companyHeadCount: type: array items: type: string companyRevenue: type: array items: type: string companyIndustry: type: array items: type: string companySubIndustry: type: array items: type: string technology: type: array items: type: string locationPreference: type: string enum: - contact - company - '*' - AND city: type: array items: type: string state: type: array items: type: string country: type: array items: type: string dontDisplayOwnedContact: type: boolean minimumEmailDeliverabilityScore: type: integer enum: - 75 - 85 - 95 required: type: array items: type: string enum: - EMAIL limit: type: integer cursorMark: type: string ContactSearchResponse: type: object properties: contacts: type: array items: $ref: '#/components/schemas/Contact' cursorMark: type: string totalResults: type: integer Contact: type: object properties: id: type: string email: type: string format: email firstName: type: string lastName: type: string title: type: string department: type: string level: type: string city: type: string state: type: string country: type: string phoneNumber: type: array items: type: string emailDeliverabilityScore: type: integer linkedinURL: type: string format: uri company: $ref: '#/components/schemas/Company' responses: ServerError: description: Server error (APP-500-001). content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Invalid credentials (APP-401-001). content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Invalid request payload (APP-400-001). content: application/json: schema: $ref: '#/components/schemas/Error' Forbidden: description: 'Subscription missing (APP-403-001), API access denied (APP-403-002), or insufficient credits (APP-403-003). ' content: application/json: schema: $ref: '#/components/schemas/Error' RateLimited: description: Rate limit exceeded (APP-429-001). 250 requests per minute. headers: x-ratelimit-limit: schema: type: integer x-ratelimit-reset: schema: type: integer x-ratelimit-retry-after: schema: type: integer content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: emailAuth: type: apiKey in: header name: email description: Account email used to register with Adapt. apiKeyAuth: type: apiKey in: header name: apiKey description: API key from the Adapt account settings page.