Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
version: '1.0'
title: B2B Asynchronous (Batch) API
description: 'The B2B API provides access to endpoints for searching, retrieving, and matching company and contact data.
It includes support for:
- **Company records:** Firmographic details, news, technologies, and more.
- **Contact records:** Current role, employment history, and professional details.
- **Demandbase Person profiles:** Persistent identities tied to individuals across multiple roles or companies.
- **Subscriptions:** Monitoring updates to companies and DB Person records.
## Authentication
All requests to the B2B API must be authenticated using a valid API token. If authentication fails, the API will respond with a `401 Unauthorized` status code.
### Obtaining an API Token
For instructions on generating API tokens, see the [Generate and Manage API Key Set](https://support.demandbase.com/hc/en-us/articles/38999526296603-Generate-and-Manage-API-Key-Set) article at the Demandbase Help Center.
### Authorization Header
Include your API token in the `Authorization` header of each request using the Bearer token scheme. Also set the `Content-Type` header to `application/json` when sending JSON payloads.
#### Example
```
Authorization: Bearer YOUR_API_KEY_HERE
Content-Type: application/json
```
> **Note:** Tokens should be treated as sensitive credentials. Do not expose them in public code repositories or client-side applications.'
contact:
name: Support
url: https://www.demandbase.com/
email: support@demandbase.com
servers:
- url: https://uapi.demandbase.com/data/b2b/v1
description: Server URL in Production environment
security:
- bearerAuth: []
tags:
- name: Asynchronous (Batch) API
description: Asynchronous bulk jobs for high-volume data retrieval and matching.
paths:
/job/{jobId}:
get:
tags:
- Asynchronous (Batch) API
summary: Get Bulk Job Status
description: 'Check the status of a bulk job using its unique job ID. This endpoint supports all bulk job types, including Company Fetch, Contact Fetch, and Match. Once the job completes successfully, the response will contain a signed `resultsUrl` for downloading the results.
Important notes:
- The `resultsUrl` is included **only when the job status is `finished`**
- The URL remains valid for **24 hours**
- If the job fails, an `errorMessage` field will be present in the response explaining the reason
**CSV Results Format:**
- The `resultsUrl` points to a CSV file containing the requested data
- CSV column headers correspond exactly to the field names specified in your job request
- For detailed information about available fields and their descriptions, refer to the field documentation in the <a href="https://demandbase.stoplight.io/docs/3p-api/zsbobfus3ok0w-create-a-bulk-data-retrieval-job" target="_blank">Create a Bulk Data Retrieval Job</a> endpoint
- Array fields (like `titles`, `jobFunctions`) are represented as pipe-separated values (e.g., "VP|Director|Manager")
'
operationId: getBulkJobStatus
parameters:
- name: jobId
in: path
description: Unique identifier of the bulk job.
required: true
schema:
type: string
responses:
'200':
description: Bulk job status fetched successfully. Results URL is present only for finished jobs.
content:
application/json:
schema:
$ref: '#/components/schemas/BulkJobStatusDTO'
examples:
Finished Bulk Job:
summary: A finished bulk job with results URL.
description: Finished Bulk Job
value:
jobName: jobNameTest
jobStatus: finished
jobType: contactfetch
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
resultsUrl: https://uapi-results.db-data-api-dev.demandbase.com/bulkjobs/companyfetch/0ab5c350-c6d2-4dcc-a9cd-dbba521f468d/response/c1ebe044-0c93-4643-b4bf-9ab1ea9b4ee3.csv?Policy=...
Processing Bulk Job:
summary: A bulk job that is still processing.
description: Processing Bulk Job
value:
jobName: jobNameTest
jobStatus: processing
jobType: companyfetch
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
Failed Bulk Job:
summary: A bulk job that failed with an error message.
description: Failed Bulk Job
value:
jobName: jobNameTest
jobStatus: failed
jobType: match
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
message: Error processing job. Please try again later.
application/xml:
schema:
$ref: '#/components/schemas/BulkJobStatusDTO'
examples:
Finished Bulk Job XML:
summary: A finished bulk job with results URL (XML).
description: Finished Bulk Job XML
value:
jobName: jobNameTest
jobStatus: finished
jobType: contactfetch
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
resultsUrl: https://uapi-results.db-data-api-dev.demandbase.com/bulkjobs/companyfetch/0ab5c350-c6d2-4dcc-a9cd-dbba521f468d/response/c1ebe044-0c93-4643-b4bf-9ab1ea9b4ee3.csv?Policy=...
Processing Bulk Job XML:
summary: A bulk job that is still processing (XML).
description: Processing Bulk Job XML
value:
jobName: jobNameTest
jobStatus: processing
jobType: companyfetch
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
Failed Bulk Job XML:
summary: A bulk job that failed with an error message (XML).
description: Failed Bulk Job XML
value:
jobName: jobNameTest
jobStatus: failed
jobType: match
jobId: f546c341-2dc3-4797-b43d-59ac0d334346
createdAt: '2024-09-16T04:46:21.684Z'
updatedAt: '2024-09-02T06:07:44.550Z'
message: Error processing job. Please try again later.
'400':
description: Bad request. For example, job id is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Bad Request:
summary: Job Id should not be empty.
description: Bad Request
value:
errorCode: 400-139
errorMessage: Job Id should not be empty.
diagnosticCode: 15d8774c-f2a1-4352-ba65-386bf8d04ecf
application/xml:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Bad Request XML:
summary: Job Id should not be empty (XML).
description: Bad Request XML
value:
errorCode: 400-139
errorMessage: Job Id should not be empty.
diagnosticCode: 15d8774c-f2a1-4352-ba65-386bf8d04ecf
'401':
description: Unauthorized - Missing or invalid tenant ID
content:
application/json:
examples:
Unauthorized Response:
summary: Authentication Failed - Unauthorized.
description: Unauthorized Response
value:
status: Authentication Failed - Unauthorized.
'404':
description: Job not found. Invalid job id.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Not Found:
summary: Invalid job ID, job not found.
description: Not Found
value:
errorCode: 404-101
errorMessage: Invalid job ID, job not found.
diagnosticCode: 92ce43d0-a861-4394-b44d-420d114dcfcb
application/xml:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Not Found XML:
summary: Invalid job ID, job not found (XML).
description: Not Found XML
value:
errorCode: 404-101
errorMessage: Invalid job ID, job not found.
diagnosticCode: 92ce43d0-a861-4394-b44d-420d114dcfcb
'500':
description: Internal server error.
content:
application/json:
examples:
Internal Server Error:
summary: Internal server exception occurred.
description: Internal Server Error
value:
errorCode: '500'
errorMessage: Internal server exception occurred.
diagnosticCode: 15d8774c-f2a1-4352-ba65-386bf8d04ecf
application/xml:
examples:
Internal Server Error XML:
summary: Internal server exception occurred (XML).
description: Internal Server Error XML
value: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n <error>\n <errorCode>500</errorCode>\n <errorMessage>Internal server exception occurred.</errorMessage>\n <diagnosticCode>15d8774c-f2a1-4352-ba65-386bf8d04ecf</diagnosticCode>\n </error>\n"
security:
- bearerAuth: []
servers:
- url: https://uapi.demandbase.com/data/b2b/v1
description: Server URL in Production environment
/match/job:
post:
tags:
- Asynchronous (Batch) API
summary: Match Companies and Contacts in Bulk
description: 'Use this endpoint to enrich company and contact records in bulk using a CSV file upload. Each row in the file represents one enrichment request and must match the supported field structure. This endpoint supports up to 10,000 records per job.
**CSV Results Format:**
The completed job will return a CSV file with the following structure:
- Input columns from your uploaded CSV are preserved
- Additional columns are added for matched company data (companyId, name, city, state, country, matchScore, etc.)
- Additional columns are added for matched contact data (contactId, firstName, lastName, title, email, matchScore, etc.)
- Multiple matches are returned as separate rows with the same input ID
- If no matches are found, the row will contain only the input data with empty match columns'
operationId: match
parameters:
- name: jobName
in: query
description: Job name for the match job
required: true
schema:
type: string
requestBody:
description: ''
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
examples:
SampleCSV:
description: SampleCSV
value: 'id,city,companyName,country,email,firstName,lastName,state,street,ticker,title,url,zip,minimumMatchScore,isContactRequired,isPhoneRequired,isEmailRequired,fullName,contactMatching,executiveLinkedInHandle,phone
row2,MOUNTAIN VIEW,Alphabet Inc,USA,ashishk@google.com,Ashish,Kumar,CA,1600 Amphitheatre Parkway,GOOG,Director,https://abc.xyz/,94301,.50,,True,,,all,https://linkedin.com/in/johndoe,123-456-7890'
text/plain:
schema:
type: string
examples:
SampleText:
description: SampleText
value: 'id,city,companyName,country,email,firstName,lastName,state,street,ticker,title,url,zip,minimumMatchScore,isContactRequired,isPhoneRequired,isEmailRequired,fullName,contactMatching,executiveLinkedInHandle,phone
row2,MOUNTAIN VIEW,Alphabet Inc,USA,ashishk@google.com,Ashish,Kumar,CA,1600 Amphitheatre Parkway,GOOG,Director,https://abc.xyz/,94301,.50,,True,,,all,https://linkedin.com/in/johndoe,123-456-7890'
responses:
'202':
description: 'Successful submission of match job
Response File (CSV Output)
Upon job completion, the downloadable results file will include:
| Field Name | Description |
| ----------------------- | ----------------------------------------------------------------------- |
| `ID` | Row-level identifier submitted in the request CSV |
| `City` | Matched company''s city |
| `Company ID` | Unique identifier of the matched company |
| `Country` | Matched company''s country |
| `Company Name` | Name of the matched company |
| `State` | Matched company''s state or region |
| `Employment ID` | Matched employment/contact ID |
| `First Name` | Matched contact''s first name |
| `Last Name` | Matched contact''s last name |
| `Job Titles` | List of job titles associated with the contact |
| `Match Score` | Confidence score for the matched record |
| `DB Person ID` | Unique Demandbase person identifier |
| `Employment Status` | Indicates if the contact is currently employed (`current` or `past`) |
| `Job Levels` | Job level(s) associated with the contact (e.g., `C Level`, `Manager`) |
| `Job Functions` | Job function(s) associated with the contact (e.g., `Marketing`, `IT`) |
| `Contact Quality Score` | Contact quality rating (e.g., `A+`, `B`) |
| `DB Person Country` | Contact''s country based on person-level data |
| `DB Person State` | Contact''s state based on person-level data |
| `DB Person City` | Contact''s city based on person-level data |
| `Street` | Street address for the company |
'
content:
application/json:
schema:
$ref: '#/components/schemas/BulkJobStatusDTO'
examples:
SuccessResponse:
description: SuccessResponse
value:
jobName: Hello2
jobStatus: accepted
jobType: match
jobId: ac6f75e1-84c3-47f8-a64f-5bf90459da7b
createdAt: '2025-06-02T20:31:35.063Z'
application/xml:
schema:
$ref: '#/components/schemas/BulkJobStatusDTO'
examples:
SuccessResponseXml:
description: SuccessResponseXml
value:
jobName: Hello2
jobStatus: accepted
jobType: match
jobId: ac6f75e1-84c3-47f8-a64f-5bf90459da7b
createdAt: '2025-06-02T20:31:35.063Z'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
InputFileTooManyLinesErrorResponse:
description: InputFileTooManyLinesErrorResponse
value:
errorCode: 400-186
errorMessage: Input file exceeds the maximum allowed number of lines (10000).
diagnosticCode: 110f32ef-9c50-4564-8533-c9d5f05b5ee8
JobNameRequiredErrorResponse:
description: JobNameRequiredErrorResponse
value:
errorCode: 400-190
errorMessage: jobName is required and cannot be empty.
diagnosticCode: 66f362a8-2840-4830-91fa-0e0971c39b08
IncorrectFieldsInLineErrorResponse:
description: IncorrectFieldsInLineErrorResponse
value:
errorCode: 400-188
errorMessage: 'Incorrect number of fields at line number: 2'
diagnosticCode: a24ae602-ee56-49b2-a43d-f641096acf5b
JobLimitExceededErrorResponse:
description: JobLimitExceededErrorResponse
value:
errorCode: 400-184
errorMessage: 'Job limit exceeded: A maximum of 2 jobs can run at the same time.'
diagnosticCode: b9a2947a-cb5b-41c5-81e4-ea2a3ed15811
InputFileTooLargeErrorResponse:
description: InputFileTooLargeErrorResponse
value:
errorCode: 400-185
errorMessage: Input file size exceeds the maximum allowed limit of 10 MB.
diagnosticCode: 6b5d2113-dd57-4f69-b408-4fd2e6750460
MissingRequiredHeaderIdErrorResponse:
description: MissingRequiredHeaderIdErrorResponse
value:
errorCode: 400-191
errorMessage: 'Missing required header: id'
diagnosticCode: 99a3097a-b328-4f2b-a6bc-02faf0c7e2ed
UnknownHeaderErrorResponse:
description: UnknownHeaderErrorResponse
value:
errorCode: 400-192
errorMessage: 'Unknown header: header-1'
diagnosticCode: 62bdf6db-5607-4506-9395-89bdc00c19b6
IdCannotBeEmptyErrorResponse:
description: IdCannotBeEmptyErrorResponse
value:
errorCode: 400-187
errorMessage: 'ID cannot be empty at line number: 1'
diagnosticCode: 71410e6f-bd77-41d4-9d91-a8ff9bf11301
InvalidContactMatchingErrorResponse:
description: InvalidContactMatchingErrorResponse
value:
errorCode: 400-206
errorMessage: 'Invalid value for ''contactMatching'' at line number: 1. Allowed values: active, all, or empty.'
diagnosticCode: b7a299b1-6ac5-44b9-89d2-af94c341e5f6
InvalidBooleanIsEmailRequiredErrorResponse:
description: InvalidBooleanIsEmailRequiredErrorResponse
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isEmailRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: f4412b32-5b17-4a90-b7b9-9716580683b2
InvalidBooleanIsPhoneRequiredErrorResponse:
description: InvalidBooleanIsPhoneRequiredErrorResponse
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isPhoneRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: 357b9683-b539-4864-96c9-ab6d4f5b9dec
InvalidBooleanIsContactRequiredErrorResponse:
description: InvalidBooleanIsContactRequiredErrorResponse
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isContactRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: 4650b191-f6ae-400b-895e-68b1749c787e
InvalidMinimumMatchScoreRangeErrorResponse:
description: InvalidMinimumMatchScoreRangeErrorResponse
value:
errorCode: 400-207
errorMessage: 'Invalid value for ''minimumMatchScore'' at line number: 1. Allowed range: 0 to 1 (inclusive), or empty.'
diagnosticCode: 6fb2da1b-4ddc-4512-b47e-dd4398e16974
MissingRequiredAnyHeaderErrorResponse:
description: MissingRequiredAnyHeaderErrorResponse
value:
errorCode: 400-204
errorMessage: 'At least one of the following headers must be present: [email, companyName, url, executiveLinkedInHandle]'
diagnosticCode: c713a41f-c5c4-45a4-a2aa-bbd99fd58aba
InvalidMinimumMatchScoreNotNumberErrorResponse:
description: InvalidMinimumMatchScoreNotNumberErrorResponse
value:
errorCode: 400-208
errorMessage: 'Invalid value for ''minimumMatchScore'' at line number: 1. Must be a number between 0 and 1, or empty.'
diagnosticCode: f5c0b967-3917-4f4c-8382-a950c9d92284
RowMustHaveAnyHeaderErrorResponse:
description: RowMustHaveAnyHeaderErrorResponse
value:
errorCode: 400-209
errorMessage: 'A row must have a non-empty value for one of: [email, companyName, url, executiveLinkedInHandle]'
diagnosticCode: 0c857928-ca5d-4820-b90e-8de5ead9c575
application/xml:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
InputFileTooManyLinesErrorResponseXML:
description: InputFileTooManyLinesErrorResponseXML
value:
errorCode: 400-186
errorMessage: Input file exceeds the maximum allowed number of lines (10000).
diagnosticCode: 110f32ef-9c50-4564-8533-c9d5f05b5ee8
JobNameRequiredErrorResponseXML:
description: JobNameRequiredErrorResponseXML
value:
errorCode: 400-190
errorMessage: jobName is required and cannot be empty.
diagnosticCode: 66f362a8-2840-4830-91fa-0e0971c39b08
IncorrectFieldsInLineErrorResponseXML:
description: IncorrectFieldsInLineErrorResponseXML
value:
errorCode: 400-188
errorMessage: 'Incorrect number of fields at line number: 2'
diagnosticCode: a24ae602-ee56-49b2-a43d-f641096acf5b
JobLimitExceededErrorResponseXML:
description: JobLimitExceededErrorResponseXML
value:
errorCode: 400-184
errorMessage: 'Job limit exceeded: A maximum of 2 jobs can run at the same time.'
diagnosticCode: b9a2947a-cb5b-41c5-81e4-ea2a3ed15811
InputFileTooLargeErrorResponseXML:
description: InputFileTooLargeErrorResponseXML
value:
errorCode: 400-185
errorMessage: Input file size exceeds the maximum allowed limit of 10 MB.
diagnosticCode: 6b5d2113-dd57-4f69-b408-4fd2e6750460
MissingRequiredHeaderIdErrorResponseXML:
description: MissingRequiredHeaderIdErrorResponseXML
value:
errorCode: 400-191
errorMessage: 'Missing required header: id'
diagnosticCode: 99a3097a-b328-4f2b-a6bc-02faf0c7e2ed
UnknownHeaderErrorResponseXML:
description: UnknownHeaderErrorResponseXML
value:
errorCode: 400-192
errorMessage: 'Unknown header: header-1'
diagnosticCode: 62bdf6db-5607-4506-9395-89bdc00c19b6
IdCannotBeEmptyErrorResponseXML:
description: IdCannotBeEmptyErrorResponseXML
value:
errorCode: 400-187
errorMessage: 'ID cannot be empty at line number: 1'
diagnosticCode: 71410e6f-bd77-41d4-9d91-a8ff9bf11301
InvalidContactMatchingErrorResponseXML:
description: InvalidContactMatchingErrorResponseXML
value:
errorCode: 400-206
errorMessage: 'Invalid value for ''contactMatching'' at line number: 1. Allowed values: active, all, or empty.'
diagnosticCode: b7a299b1-6ac5-44b9-89d2-af94c341e5f6
InvalidBooleanIsEmailRequiredErrorResponseXML:
description: InvalidBooleanIsEmailRequiredErrorResponseXML
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isEmailRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: f4412b32-5b17-4a90-b7b9-9716580683b2
InvalidBooleanIsPhoneRequiredErrorResponseXML:
description: InvalidBooleanIsPhoneRequiredErrorResponseXML
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isPhoneRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: 357b9683-b539-4864-96c9-ab6d4f5b9dec
InvalidBooleanIsContactRequiredErrorResponseXML:
description: InvalidBooleanIsContactRequiredErrorResponseXML
value:
errorCode: 400-205
errorMessage: 'Invalid boolean value for ''isContactRequired'' at line number: 1. Allowed values: True, False, or empty.'
diagnosticCode: 4650b191-f6ae-400b-895e-68b1749c787e
InvalidMinimumMatchScoreRangeErrorResponseXML:
description: InvalidMinimumMatchScoreRangeErrorResponseXML
value:
errorCode: 400-207
errorMessage: 'Invalid value for ''minimumMatchScore'' at line number: 1. Allowed range: 0 to 1 (inclusive), or empty.'
diagnosticCode: 6fb2da1b-4ddc-4512-b47e-dd4398e16974
MissingRequiredAnyHeaderErrorResponseXML:
description: MissingRequiredAnyHeaderErrorResponseXML
value:
errorCode: 400-204
errorMessage: 'At least one of the following headers must be present: [email, companyName, url, executiveLinkedInHandle]'
diagnosticCode: c713a41f-c5c4-45a4-a2aa-bbd99fd58aba
InvalidMinimumMatchScoreNotNumberErrorResponseXML:
description: InvalidMinimumMatchScoreNotNumberErrorResponseXML
value:
errorCode: 400-208
errorMessage: 'Invalid value for ''minimumMatchScore'' at line number: 1. Must be a number between 0 and 1, or empty.'
diagnosticCode: f5c0b967-3917-4f4c-8382-a950c9d92284
RowMustHaveAnyHeaderErrorResponseXML:
description: RowMustHaveAnyHeaderErrorResponseXML
value:
errorCode: 400-209
errorMessage: 'A row must have a non-empty value for one of: [email, companyName, url, executiveLinkedInHandle]'
diagnosticCode: 0c857928-ca5d-4820-b90e-8de5ead9c575
'401':
description: Unauthorized because the user is not authenticated.
content:
application/json:
examples:
UnauthorizedResponse:
description: UnauthorizedResponse
value:
status: Authentication Failed - Unauthorized.
security:
- bearerAuth: []
servers:
- url: https://uapi.demandbase.com/data/b2b/v1
description: Server URL in Production environment
/job:
post:
tags:
- Asynchronous (Batch) API
summary: Create a Bulk Data Retrieval Job
description: '# Overview
Create and run asynchronous bulk jobs to retrieve company or contact data using entity IDs or search filters. This API is ideal for large data exports with a file-based CSV output.
You can submit up to **10,000 entity IDs** in a single request. The API initiates an asynchronous job and returns a `jobId` to track its status and retrieve results using the <a href="https://developer.demandbase.com/docs/3p-api/3nstx7v40nc9k-get-bulk-job-status" target="_blank">Job Status</a> API.
'
operationId: createBulkJob
requestBody:
description: "**NOTE:** You may submit up to 10,000 IDs or filter values per request\n\n### Filter Fields\n<details>\n <summary><strong>Company Search</strong> (click to expand)</summary>\n\n- `areaCodes`\n- `businessStructure`\n- `businessTypes`\n- `categoryIds`\n- `cities`\n- `companyStatus`\n- `companyType`\n- `country`\n- `dbe`\n- `disabled`\n- `ethnicity`\n- `fiscalYearEnd`\n- `fortuneRanking`\n- `gender`\n- `hasPhone`\n- `hasWebsite`\n- `industries`\n- `keywords`\n- `lgbt`\n- `maxEmployees`\n- `maxRevenue`\n- `mbe`\n- `minEmployees`\n- `minRevenue`\n- `naics`\n- `newsCategories`\n- `newsDuration`\n- `primaryIndustryOnly`\n- `primaryNAICSOnly`\n- `primarySICOnly`\n- `productIds`\n- `regions`\n- `sicCodes`\n- `state`\n- `street`\n- `subCategoryIds`\n- `subIndustries`\n- `ticker`\n- `vbe`\n- `website`\n- `wbe`\n- `zipCodes`\n</details>\n\n<details>\n <summary><strong>Contact Search</strong> (click to expand)</summary>\n\n- `active`\n- `companyCity`\n- `companyCountry`\n- `companyIdsToInclude`\n- `companyName`\n- `companyState`\n- `companyWebsite`\n- `contactCity`\n- `contactCountry`\n- `contactState`\n- `email`\n- `emailRequired`\n- `emailValidationStatus`\n- `firstName`\n- `industries`\n- `jobFunctions`\n- `jobLevels`\n- `lastName`\n- `maxEmployees`\n- `minContactQualityScore`\n- `minEmployees`\n- `phoneRequired`\n- `phoneType`\n- `primaryIndustryOnly`\n- `subIndustries`\n- `titles`\n\n</details>\n\n### Available Output Fields by Job Type\n<details>\n <summary>Output Fields for <strong>companyFetch</strong> (click to expand)</summary>\n\n- `britishSics`\n- `businessStructure`\n- `city`\n- `companyBlogProfile`\n- `companyId`\n- `companyLinkedInProfile`\n- `companyStatus`\n- `companyTwitterProfile`\n- `companyType`\n- `currentCompanyId`\n- `description`\n- `employees`\n- `fiscalYearEnd`\n- `fortuneRanking`\n- `industry`\n- `industryCode`\n- `latitude`\n- `longitude`\n- `naics`\n- `naicsDescription`\n- `name`\n- `phone`\n- `revenue`\n- `revenueCurrency`\n- `sic`\n- `sicDescription`\n- `siteCount`\n- `siteLocationCount`\n- `siteType`\n- `state`\n- `street`\n- `subIndustry`\n- `subIndustryCode`\n- `subsidiary`\n- `ticker`\n- `website`\n- `ye
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/demandbase/refs/heads/main/openapi/demandbase-asynchronous-batch-api-api-openapi.yml