openapi: 3.0.1 info: version: '1.0' title: B2B 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 paths: /contacts: post: tags: - Sync API summary: Search contacts description: "Use this endpoint to search for individuals at specific companies. \n\nYou can filter contacts by details\ \ such as first name, last name, email, location, job title, job level, and job function. Company-level filters include\ \ company name, website, location, industry, size, and more. Additional parameters allow you to filter by quality\ \ score, email validation status, and phone requirements.\n\nSorting and pagination are supported. You can sort results\ \ by fields such as `companyName`, and control the number of results returned using `page` and `perPage`.\n\nYou must\ \ include at least one parameter (excluding sorting and pagination) to perform a search." operationId: contactSearch_1 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactSearchRequestDTO' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ContactSearchRequestDTO' responses: '200': description: Successful operation or No contacts found for query. content: application/json: schema: $ref: '#/components/schemas/ContactSearchResponseDTO' examples: SuccessResponse: description: SuccessResponse value: contactResults: - dbPersonDetails: dbPersonId: 15568398 firstName: Jamie lastName: Taylor country: United States city: Seattle employmentDetails: contactId: 17864319 companyId: 731691 companyName: Example Corp titles: - Senior Security Officer jobLevels: - id: '3' name: Vice President jobFunctions: - id: '9' name: Information Technology active: true hasPhone: true hasEmail: true contactQualityScore: A - dbPersonDetails: dbPersonId: 124458755 firstName: Morgan lastName: Lee country: Canada city: Toronto employmentDetails: contactId: 171412410 companyId: 990700 companyName: Sample Industries titles: - Senior Director, Technology jobLevels: - id: '2' name: Senior Executive - id: '4' name: Director jobFunctions: - id: '9' name: Information Technology active: true hasPhone: false hasEmail: true contactQualityScore: C totalCount: 233 pageNo: 1 pageSize: 10 EmptyCompaniesResponse: description: EmptyCompaniesResponse value: contactResults: [] totalCount: 0 pageNo: 1 pageSize: 10 application/xml: schema: $ref: '#/components/schemas/ContactSearchResponseDTO' examples: SuccessResponseXml: description: SuccessResponseXml value: contactResults: - dbPersonDetails: dbPersonId: 15568398 firstName: Jamie lastName: Taylor country: United States city: Seattle employmentDetails: contactId: 17864319 companyId: 731691 companyName: Example Corp titles: - Senior Security Officer jobLevels: - id: '3' name: Vice President jobFunctions: - id: '9' name: Information Technology active: true hasPhone: true hasEmail: true contactQualityScore: A totalCount: 233 pageNo: 1 pageSize: 10 EmptyCompaniesResponseXml: description: EmptyCompaniesResponseXml value: contactResults: [] totalCount: 0 pageNo: 1 pageSize: 10 '400': description: Bad Request because required query params are missing, perPage must be greater than 0 and less than equal to 50, or page number must be greater than or equal to 1. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponse: description: BadRequestResponse value: errorCode: 400-107 errorMessage: At least one parameter must be provided. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortByParam: description: InvalidSortByParam value: errorCode: 400-108 errorMessage: Sorting is allowed only on active, title and companyName. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortOrder: description: InvalidSortOrder value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidCompanyCountryId: description: InvalidCompanyCountryId value: errorCode: 400-111 errorMessage: Invalid companyCountry. Please enter valid country ID in companyCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidContactCountryId: description: InvalidContactCountryId value: errorCode: 400-110 errorMessage: Invalid contactCountry. Please enter valid country ID in contactCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidJobLevels: description: InvalidJobLevels value: errorCode: 400-124 errorMessage: 'jobLevel must be an integer. ' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 InvalidMinContactQualityScore: description: InvalidMinContactQualityScore value: errorCode: 400-123 errorMessage: 'minContactQualityScore must one of: [A+, A, B, C]' diagnosticCode: 467e469f-2146-4af8-ac0f-5fb487fbba02 InvalidFunction: description: InvalidFunction value: errorCode: 400-125 errorMessage: 'jobFunction must be an integer. ' diagnosticCode: 3640f569-4d90-40cd-b0c6-2c72f671ab72 InvalidPhoneType: description: InvalidPhoneType value: errorCode: 400-137 errorMessage: 'phoneType must be one of: [DIRECT, CORP, MOBILE, ANY, DIRECTORCORP]' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 InvalidEmployeeRange: description: InvalidEmployeeRange value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe InvalidIndustries: description: InvalidIndustries value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidMaxEmployees: description: InvalidMaxEmployees value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinEmployees: description: InvalidMinEmployees value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidEmailValidationStatus: description: InvalidEmailValidationStatus value: errorCode: 400-138 errorMessage: 'emailValidationStatus must be one of: [ValidEmail, ValidDomain]' diagnosticCode: e32c6e5e-29cb-40c0-a37a-2c8e8213a477 InvalidCompanyId: description: InvalidCompanyId value: errorCode: 400-122 errorMessage: Invalid companyId in companyIdsInclude. companyId must be an integer. diagnosticCode: ffa69cf0-b316-4a12-84d5-e4afb6bb23ee application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponseXml: description: BadRequestResponseXml value: errorCode: 400-107 errorMessage: At least one parameter must be provided. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortByParam: description: InvalidSortByParam value: errorCode: 400-108 errorMessage: Sorting is allowed only on active, title and companyName. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortOrder: description: InvalidSortOrder value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidCompanyCountryId: description: InvalidCompanyCountryId value: errorCode: 400-111 errorMessage: Invalid companyCountry. Please enter valid country ID in companyCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidContactCountryId: description: InvalidContactCountryId value: errorCode: 400-110 errorMessage: Invalid contactCountry. Please enter valid country ID in contactCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponseXml: description: ResultsPerPageErrorResponseXml value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponseXml: description: PageNumberErrorResponseXml value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidJobLevels: description: InvalidJobLevels value: errorCode: 400-124 errorMessage: 'jobLevel must be an integer. ' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 InvalidMinContactQualityScore: description: InvalidMinContactQualityScore value: errorCode: 400-123 errorMessage: 'minContactQualityScore must one of: [A+, A, B, C]' diagnosticCode: 467e469f-2146-4af8-ac0f-5fb487fbba02 InvalidFunction: description: InvalidFunction value: errorCode: 400-125 errorMessage: 'jobFunction must be an integer. ' diagnosticCode: 3640f569-4d90-40cd-b0c6-2c72f671ab72 InvalidPhoneType: description: InvalidPhoneType value: errorCode: 400-137 errorMessage: 'phoneType must be one of: [DIRECT, CORP, MOBILE, ANY, DIRECTORCORP]' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 InvalidEmployeeRange: description: InvalidEmployeeRange value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe InvalidIndustries: description: InvalidIndustries value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidMaxEmployees: description: InvalidMaxEmployees value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinEmployees: description: InvalidMinEmployees value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidEmailValidationStatus: description: InvalidEmailValidationStatus value: errorCode: 400-138 errorMessage: 'emailValidationStatus must be one of: [ValidEmail, ValidDomain]' diagnosticCode: e32c6e5e-29cb-40c0-a37a-2c8e8213a477 InvalidCompanyId: description: InvalidCompanyId value: errorCode: 400-122 errorMessage: Invalid companyId in companyIdsInclude. companyId must be an integer. diagnosticCode: ffa69cf0-b316-4a12-84d5-e4afb6bb23ee '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 /companies: post: tags: - Sync API summary: Search companies description: "Use this endpoint to search for companies based on a variety of attributes.\n\nYou can search companies\ \ by name, website, ticker, location (city, state, country, ZIP), industry classification (NAICS, SIC), or attributes\ \ like fiscal year end, business structure, and fortune ranking. \n\nAdditional filters let you set employee or revenue\ \ ranges, include only primary industry or SIC classifications, and apply diversity criteria (e.g., minority-owned\ \ or women-owned businesses). \n\nSorting and pagination are supported. You can sort results by fields such as `companyRevenue`\ \ and more, and control the number of results returned using `page` and `perPage`." operationId: companySearch_1 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompanySearchRequestDTO' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompanySearchRequestDTO' responses: '200': description: Successful operation or No companies found for query. content: application/json: schema: $ref: '#/components/schemas/CompanySearchResponseDTO' examples: SuccessResponse: description: SuccessResponse value: companies: - name: Northgate Logistics LLC city: New Plymouth state: ID country: US companyId: 406321 - name: Blue Ridge Transport Inc. city: Walcott state: IA country: US companyId: 1013683 - name: Horizon Freight Services city: North Baltimore state: OH country: US companyId: 8664201 - name: Summit Distribution Co. city: Johnstown state: CO country: US companyId: 9557195 - name: Granite Commerce Group city: New Plymouth state: ID country: US companyId: 284576424 - name: Lakeside Operations LLC city: Oak Grove state: MO country: US companyId: 8679793 - name: Pioneer Mobility Partners city: Mineral Wells state: WV country: US companyId: 6242601 - name: Meridian Media Group city: New York state: NY country: US companyId: 8108950 - name: Redwood Industrial Supply city: Pine Bluffs state: WY country: US companyId: 5914035 - name: Willow Creek Services city: Calhoun City state: MS country: US companyId: 6632012 totalCount: 165 pageNo: 1 pageSize: 10 EmptyCompaniesResponse: description: EmptyCompaniesResponse value: companies: [] totalCount: 0 pageNo: 1 pageSize: 10 application/xml: schema: $ref: '#/components/schemas/CompanySearchResponseDTO' examples: SuccessResponseXml: description: SuccessResponseXml value: companies: - name: Northgate Logistics LLC city: New Plymouth state: ID country: US companyId: 406321 - name: Blue Ridge Transport Inc. city: Walcott state: IA country: US companyId: 1013683 totalCount: 165 pageNo: 1 pageSize: 10 EmptyCompaniesResponseXml: description: EmptyCompaniesResponseXml value: companies: [] totalCount: 0 pageNo: 1 pageSize: 10 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponse: description: BadRequestResponse value: errorCode: 400-102 errorMessage: At least one parameter must be provided for company search. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortByParam: description: InvalidSortByParam value: errorCode: 400-135 errorMessage: Sorting is allowed only on employeeCount, businessType, companyRevenue and location diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortOrder: description: InvalidSortOrder value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidCompanyCountryId: description: InvalidCompanyCountryId value: errorCode: 400-214 errorMessage: Invalid country. Please enter valid country ID in country. diagnosticCode: 2ec12de8-1000-4620-8757-6091a1cffab7 InvalidNewsCategories: description: InvalidNewsCategories value: errorCode: 400-112 errorMessage: 'Invalid newsCategories. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidNewsDuration: description: InvalidNewsDuration value: errorCode: 400-113 errorMessage: Invalid newsDuration. Valid values are between 1 and 30 diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidIndustry: description: InvalidIndustry value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidMaxEmployees: description: InvalidMaxEmployees value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinEmployees: description: InvalidMinEmployees value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMaxRevenue: description: InvalidMaxRevenue value: errorCode: 400-119 errorMessage: maxRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinRevenue: description: InvalidMinRevenue value: errorCode: 400-118 errorMessage: minRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidBusinessStructure: description: InvalidBusinessStructure value: errorCode: 400-128 errorMessage: 'Invalid businessStructure. Valid values are: uncategorized, globalParent, subsidiary, group, branch, independent' diagnosticCode: cebdea29-25ac-40e5-af41-0626e34e6f46 InvalidBusinessType: description: InvalidBusinessType value: errorCode: 400-129 errorMessage: 'Invalid businessType. Valid values are: public, private, school, government, organization' diagnosticCode: 2b7cd799-e532-46a4-bc4e-e967b0a40f4b InvalidCompanyStatus: description: InvalidCompanyStatus value: errorCode: 400-130 errorMessage: 'Invalid companyStatus. Valid values are: unassigned, operating, non-operating, acquired, liquidating, outOfBusiness' diagnosticCode: bb841d37-ed8f-4a82-a5c5-fd11ea6d8e3d InvalidFiscalYearEnd: description: InvalidFiscalYearEnd value: errorCode: 400-131 errorMessage: Invalid fiscalYearEnd. fiscalYearEnd should be a valid month name. diagnosticCode: 67521433-a92b-49ee-9d21-21d4007f8486 InvalidFortuneRanking: description: InvalidFortuneRanking value: errorCode: 400-132 errorMessage: 'Invalid fortuneRanking. Valid values are: fortune500, fortune1000' diagnosticCode: 1921c127-a8e6-4685-aaa0-1f6bce967a18 InvalidEmployeeRange: description: InvalidEmployeeRange value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe InvalidRevenueRange: description: InvalidRevenueRange value: errorCode: 400-127 errorMessage: minRevenue must be less than or equal to minRevenue. diagnosticCode: cbc2bbd0-a801-41c1-a546-be6ea0e75797 InvalidRegions: description: InvalidRegions value: errorCode: 400-133 errorMessage: 'Invalid region. Valid values are: Africa, Asia, Europe, MiddleEast, NorthAmerica, Oceania, SouthAmerica' diagnosticCode: 88d76e2d-6f09-4018-97fe-b41c64f5ac67 InvalidCompanyType: description: InvalidCompanyType value: errorCode: 400-134 errorMessage: 'Invalid companyType. Valid values are: unknown, public, private, government, organization' diagnosticCode: ed1cfeb5-a7bf-4621-a4f3-51b1e8f106ae InvalidGender: description: InvalidGender value: errorCode: 400-117 errorMessage: Invalid gender. Valid values are male and female diagnosticCode: fa7db512-d0ef-4c9d-aa8b-6e6bc21a61bc InvalidEthnicity: description: InvalidEthnicity value: errorCode: 400-136 errorMessage: Invalid Ethnicity Ids. Ethnicity Ids should be between 1 and 7 diagnosticCode: 126df328-b3d1-4d62-9464-e435aa706805 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponseXml: description: BadRequestResponseXml value: errorCode: 400-102 errorMessage: At least one parameter must be provided for company search. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponseXml: description: ResultsPerPageErrorResponseXml value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponseXml: description: PageNumberErrorResponseXml value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortByParam: description: InvalidSortByParam value: errorCode: 400-135 errorMessage: Sorting is allowed only on employeeCount, businessType, companyRevenue and location diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidSortOrder: description: InvalidSortOrder value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidCompanyCountryId: description: InvalidCompanyCountryId value: errorCode: 400-214 errorMessage: Invalid country. Please enter valid country ID in country. diagnosticCode: 2ec12de8-1000-4620-8757-6091a1cffab7 InvalidNewsCategories: description: InvalidNewsCategories value: errorCode: 400-112 errorMessage: 'Invalid newsCategories. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidNewsDuration: description: InvalidNewsDuration value: errorCode: 400-113 errorMessage: Invalid newsDuration. Valid values are between 1 and 30 diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidIndustry: description: InvalidIndustry value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidMaxEmployees: description: InvalidMaxEmployees value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinEmployees: description: InvalidMinEmployees value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMaxRevenue: description: InvalidMaxRevenue value: errorCode: 400-119 errorMessage: maxRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidMinRevenue: description: InvalidMinRevenue value: errorCode: 400-118 errorMessage: minRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 InvalidBusinessStructure: description: InvalidBusinessStructure value: errorCode: 400-128 errorMessage: 'Invalid businessStructure. Valid values are: uncategorized, globalParent, subsidiary, group, branch, independent' diagnosticCode: cebdea29-25ac-40e5-af41-0626e34e6f46 InvalidBusinessType: description: InvalidBusinessType value: errorCode: 400-129 errorMessage: 'Invalid businessType. Valid values are: public, private, school, government, organization' diagnosticCode: 2b7cd799-e532-46a4-bc4e-e967b0a40f4b InvalidCompanyStatus: description: InvalidCompanyStatus value: errorCode: 400-130 errorMessage: 'Invalid companyStatus. Valid values are: unassigned, operating, non-operating, acquired, liquidating, outOfBusiness' diagnosticCode: bb841d37-ed8f-4a82-a5c5-fd11ea6d8e3d InvalidFiscalYearEnd: description: InvalidFiscalYearEnd value: errorCode: 400-131 errorMessage: Invalid fiscalYearEnd. fiscalYearEnd should be a valid month name. diagnosticCode: 67521433-a92b-49ee-9d21-21d4007f8486 InvalidFortuneRanking: description: InvalidFortuneRanking value: errorCode: 400-132 errorMessage: 'Invalid fortuneRanking. Valid values are: fortune500, fortune1000' diagnosticCode: 1921c127-a8e6-4685-aaa0-1f6bce967a18 InvalidEmployeeRange: description: InvalidEmployeeRange value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe InvalidRevenueRange: description: InvalidRevenueRange value: errorCode: 400-127 errorMessage: minRevenue must be less than or equal to minRevenue. diagnosticCode: cbc2bbd0-a801-41c1-a546-be6ea0e75797 InvalidRegions: description: InvalidRegions value: errorCode: 400-133 errorMessage: 'Invalid region. Valid values are: Africa, Asia, Europe, MiddleEast, NorthAmerica, Oceania, SouthAmerica' diagnosticCode: 88d76e2d-6f09-4018-97fe-b41c64f5ac67 InvalidCompanyType: description: InvalidCompanyType value: errorCode: 400-134 errorMessage: 'Invalid companyType. Valid values are: unknown, public, private, government, organization' diagnosticCode: ed1cfeb5-a7bf-4621-a4f3-51b1e8f106ae InvalidGender: description: InvalidGender value: errorCode: 400-117 errorMessage: Invalid gender. Valid values are male and female diagnosticCode: fa7db512-d0ef-4c9d-aa8b-6e6bc21a61bc InvalidEthnicity: description: InvalidEthnicity value: errorCode: 400-136 errorMessage: Invalid Ethnicity Ids. Ethnicity Ids should be between 1 and 7 diagnosticCode: 126df328-b3d1-4d62-9464-e435aa706805 '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 /contact/{contactId}: get: tags: - Sync API summary: Fetch contact details description: 'Use this endpoint to fetch detailed employment and personal information for a specific contact. Retrieve data such as job titles, phone numbers, job levels, salary ranges, social profiles, and education history. You can control the response using query parameters to include specific fields or additional related data.' operationId: contactFetch parameters: - name: include in: query description: Additional data to include in the response, e.g., other employment required: false schema: type: string enum: - other_employments example: other_employments - name: contactId in: path description: Contact ID required: true schema: type: string example: '725771' - name: contactFields in: query description: Comma-separated contact fields to return. required: false schema: type: string - name: peopleFields in: query description: Comma-separated person fields to return. required: false schema: type: string responses: '200': description: Contact details fetched successfully content: application/json: schema: $ref: '#/components/schemas/ContactFetchResponseDTO' examples: Success Response: description: Success Response value: dbPersonDetails: firstName: Darren lastName: Jackson age: 68 educationList: - degree: Masters of Business Administration university: Wharton School of Business at the University of Pennsylvania - degree: Bachelors university: Indian Institute of Technology - degree: Master of Science major: Materials Science and Engineering university: Stanford University socialHandles: twitter: http://twitter.com/andyhongim address: {} mobileNumber: +1 425 707 0564 employmentDetails: contactId: 215 companyId: 734887 companyName: Advance Auto Parts, Inc. contactQualityScore: A+ description: Mr. Darren R. Jackson is Chief Executive Officer, Director of Advance Auto Parts Inc. Since January 2008, Mr. Jackson has continuously served as our Chief Executive Officer. During that time period, Mr. Jackson also served as President from January 2008 to January 2009 and from January 1, 2012 to April 21, 2013, when George E. Sherman became our President. Prior to becoming our Chief Executive Officer, Mr. Jackson served in various executive positions with Best Buy Co., Inc., a specialty retailer of consumer electronics, office products, appliances and software, ultimately serving from July 2007 to December 2007 as Executive Vice President of Customer Operating Groups. He joined Best Buy in 2000 and was appointed as its Executive Vice President-Finance and Chief Financial Officer in February of 2001. Prior to 2000, he served as Vice President and Chief Financial Officer of Nordstrom, Inc., Full-line Stores, a fashion specialty retailer, and held various senior positions, including Chief Financial Officer of Carson Pirie Scott & Company, a regional department store company. He began his career at KPMG. Mr. Jackson has served as a director of Fastenal Company, which sells industrial and construction supplies, since July 2012. Mr. Jackson has served as a member of our Board for over ten years and as the Company's Chief Executive Officer for over seven years. startDate: N/A salary: '930' salaryCurrency: USD phoneNumbers: directNumber: +1 540 362 4911 corporateNumber: +1 425 882 8080 emails: - email: djackson@advanceautoparts.com validationStatus: VALID lastValidatedDate: Aug 15, 2019 jobLevels: - id: '1' name: C Level - id: '3' name: Vice President jobFunctions: - id: '22' name: Others titles: - Chief Executive Officer and President application/xml: schema: $ref: '#/components/schemas/ContactFetchResponseDTO' examples: Success Response: description: Success Response value: dbPersonDetails: firstName: Darren lastName: Jackson age: 68 educationList: - degree: Masters of Business Administration university: Wharton School of Business at the University of Pennsylvania - degree: Bachelors university: Indian Institute of Technology - degree: Master of Science major: Materials Science and Engineering university: Stanford University socialHandles: twitter: http://twitter.com/andyhongim address: {} mobileNumber: +1 425 707 0564 employmentDetails: contactId: 215 companyId: 734887 companyName: Advance Auto Parts, Inc. contactQualityScore: A+ description: Mr. Darren R. Jackson is Chief Executive Officer, Director of Advance Auto Parts Inc. Since January 2008, Mr. Jackson has continuously served as our Chief Executive Officer. During that time period, Mr. Jackson also served as President from January 2008 to January 2009 and from January 1, 2012 to April 21, 2013, when George E. Sherman became our President. Prior to becoming our Chief Executive Officer, Mr. Jackson served in various executive positions with Best Buy Co., Inc., a specialty retailer of consumer electronics, office products, appliances and software, ultimately serving from July 2007 to December 2007 as Executive Vice President of Customer Operating Groups. He joined Best Buy in 2000 and was appointed as its Executive Vice President-Finance and Chief Financial Officer in February of 2001. Prior to 2000, he served as Vice President and Chief Financial Officer of Nordstrom, Inc., Full-line Stores, a fashion specialty retailer, and held various senior positions, including Chief Financial Officer of Carson Pirie Scott & Company, a regional department store company. He began his career at KPMG. Mr. Jackson has served as a director of Fastenal Company, which sells industrial and construction supplies, since July 2012. Mr. Jackson has served as a member of our Board for over ten years and as the Company's Chief Executive Officer for over seven years. startDate: N/A salary: '930' salaryCurrency: USD phoneNumbers: directNumber: +1 540 362 4911 corporateNumber: +1 425 882 8080 emails: - email: djackson@advanceautoparts.com validationStatus: VALID lastValidatedDate: Aug 15, 2019 jobLevels: - id: '1' name: C Level - id: '3' name: Vice President jobFunctions: - id: '22' name: Others titles: - Chief Executive Officer and President '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidContactIdResponse: description: InvalidContactIdResponse value: errorCode: 400-104 errorMessage: ContactId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidFieldResponse: description: InvalidFieldResponse value: errorCode: 400-106 errorMessage: Invalid field name. diagnosticCode: ab24b1a4-1cd0-41ab-bcfa-018f13fc6707 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidContactIdResponseXml: description: InvalidContactIdResponseXml value: errorCode: 400-104 errorMessage: ContactId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidFieldResponseXml: description: InvalidFieldResponseXml value: errorCode: 400-106 errorMessage: Invalid field name. diagnosticCode: ab24b1a4-1cd0-41ab-bcfa-018f13fc6707 '401': description: Unauthorized because the user is not authenticated. content: application/json: examples: UnauthorizedResponse: description: UnauthorizedResponse value: status: Authentication Failed - Unauthorized. '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ContactNotFoundErrorResponse: description: ContactNotFoundErrorResponse value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: ContactNotFoundErrorResponseXml: description: ContactNotFoundErrorResponseXml value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /company/{companyId}: get: tags: - Sync API summary: Fetch company details description: 'Use this endpoint to fetch detailed information about a single company, including name, location, phone number, revenue, employee count, industry classification, and social media links. You can optionally expand the response to include related data such as the company''s family tree, competitors, installed technologies, and logos. Installed technologies are returned under `techUsed`, grouped by category, subcategory, and product. The response includes taxonomy identifiers and display names; it does not include confidence, observation dates, vendor, or product descriptions.' operationId: companyFetch parameters: - name: fields in: query description: Comma-separated related-data expansions. Use `installedtech` to include technographics under `techUsed`. required: false style: form explode: false schema: type: array items: type: string enum: - familytree - competitors - logos - installedtech example: - familytree - competitors - name: sortBy in: query description: Sort order for family tree results. required: false schema: type: string enum: - popularity - name: companyFields in: query description: Comma-separated company fields to retrieve. required: false schema: type: string - name: companyId in: path description: Company ID required: true schema: type: string example: '725771' responses: '200': description: Company details fetched successfully content: application/json: schema: $ref: '#/components/schemas/CompanyFetchResponseDTO' examples: Company Details Response: $ref: '#/components/examples/CompanyDetailsResponse' Company Family Tree Response: $ref: '#/components/examples/CompanyFamilyTreeResponse' Company Competitors Response: $ref: '#/components/examples/CompanyCompetitorsResponse' Company Installed Tech Response: $ref: '#/components/examples/CompanyInstalledTechResponse' Company Logos Response: $ref: '#/components/examples/CompanyLogosResponse' application/xml: schema: $ref: '#/components/schemas/CompanyFetchResponseDTO' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidCompanyIdErrorResponse: description: InvalidCompanyIdErrorResponse value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidFieldErrorResponse: description: InvalidFieldErrorResponse value: errorCode: 400-106 errorMessage: Invalid field name. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidCompanyIdErrorResponseXml: description: InvalidCompanyIdErrorResponseXml value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidFieldErrorResponseXml: description: InvalidFieldErrorResponseXml value: errorCode: 400-106 errorMessage: Invalid field name. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 '401': description: Unauthorized because the user is not authenticated. content: application/json: examples: UnauthorizedResponse: description: UnauthorizedResponse value: status: Authentication Failed - Unauthorized. '404': description: Bad request because the company does not exist. content: application/json: examples: CompanyNotFoundErrorResponse: description: CompanyNotFoundErrorResponse value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: type: object title: error format: xml examples: CompanyNotFoundErrorResponseXml: description: CompanyNotFoundErrorResponseXml value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /company/{companyId}/news: get: tags: - Sync API summary: Fetch company news by category description: 'Use this endpoint to fetch recent news articles related to a specific company. You can filter articles by one or more news categories, such as acquisitions or leadership changes. Pagination is supported to control the number of results per request.' operationId: companyNewsCategoryFetch parameters: - name: newsCategories in: query description: Allowed Values required: true schema: type: string example: LEADERSHIP_CHANGES - name: page in: query description: Page number required: false schema: type: string example: '1' - name: perPage in: query description: Results per page required: false schema: type: string example: '10' - name: companyId in: path description: Company ID required: true schema: type: string example: '725771' responses: '200': description: Company news fetched successfully content: application/json: schema: $ref: '#/components/schemas/CompanyNewsResponseDTO' examples: Success Response: description: Success Response value: companyNews: - title: 'Virtual Reality in Gaming Market: Global Size, Share, Status, Analysis & Forecast to 2030- Report By Introspective Market Research' url: http://ct.moreover.com/?a=51894730831&p=1l3&v=1&x=jT7RQPStyxrE2tvW4y9p6g source: PrSync.com pageNo: 1 pageSize: 1 totalCount: 4 companyId: '726263' application/xml: schema: $ref: '#/components/schemas/CompanyNewsResponseDTO' examples: Success Response: description: Success Response value: companyNews: - title: 'Virtual Reality in Gaming Market: Global Size, Share, Status, Analysis & Forecast to 2030- Report By Introspective Market Research' url: http://ct.moreover.com/?a=51894730831&p=1l3&v=1&x=jT7RQPStyxrE2tvW4y9p6g source: PrSync.com pageNo: 1 pageSize: 1 totalCount: 4 companyId: '726263' '400': description: Bad Request because required query params are missing, perPage must be greater than 0 and less than equal to 50, or page number must be greater than or equal to 1. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponse: description: BadRequestResponse value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidNewsCategoryErrorResponse: description: InvalidNewsCategoryErrorResponse value: errorCode: 400-112 errorMessage: 'Invalid news category. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges.' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponseXml: description: BadRequestResponseXml value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidNewsCategoryErrorResponse: description: InvalidNewsCategoryErrorResponse value: errorCode: 400-112 errorMessage: 'Invalid news category. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges.' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 '401': description: Unauthorized because the user is not authenticated. content: application/json: examples: UnauthorizedResponse: description: UnauthorizedResponse value: status: Authentication Failed - Unauthorized. '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: CompanyNotFoundErrorResponse: description: CompanyNotFoundErrorResponse value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: CompanyNotFoundErrorResponseXml: description: CompanyNotFoundErrorResponseXml value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /company/{companyId}/newsFeed: get: tags: - Sync API summary: Fetch company news feed description: 'Use this endpoint to return a paginated list of recent news articles for a specific company. Unlike the `/news` endpoint, this feed does not require specifying news categories. It provides a general stream of company-related articles.' operationId: companyNewsFetch parameters: - name: page in: query description: Page number required: false schema: type: string example: '1' - name: perPage in: query description: Results per page required: false schema: type: string example: '10' - name: companyId in: path description: Company ID required: true schema: type: string example: '725771' responses: '200': description: Company news fetched successfully content: application/json: schema: $ref: '#/components/schemas/CompanyNewsResponseDTO' examples: Success Response: description: Success Response value: companyNews: - title: 'Virtual Reality in Gaming Market: Global Size, Share, Status, Analysis & Forecast to 2030- Report By Introspective Market Research' url: http://ct.moreover.com/?a=51894730831&p=1l3&v=1&x=jT7RQPStyxrE2tvW4y9p6g source: PrSync.com pageNo: 1 pageSize: 1 totalCount: 4 companyId: '726263' application/xml: schema: $ref: '#/components/schemas/CompanyNewsResponseDTO' examples: Success Response: description: Success Response value: companyNews: - title: 'Virtual Reality in Gaming Market: Global Size, Share, Status, Analysis & Forecast to 2030- Report By Introspective Market Research' url: http://ct.moreover.com/?a=51894730831&p=1l3&v=1&x=jT7RQPStyxrE2tvW4y9p6g source: PrSync.com pageNo: 1 pageSize: 1 totalCount: 4 companyId: '726263' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponse: description: BadRequestResponse value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestResponseXml: description: BadRequestResponseXml value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 ResultsPerPageErrorResponse: description: ResultsPerPageErrorResponse value: errorCode: 400-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 PageNumberErrorResponse: description: PageNumberErrorResponse value: errorCode: 400-100 errorMessage: page number must be greater than or equal to 1. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 '401': description: Unauthorized because the user is not authenticated. content: application/json: examples: UnauthorizedResponse: description: UnauthorizedResponse value: status: Authentication Failed - Unauthorized. '404': description: Not Found content: application/json: examples: CompanyNotFoundErrorResponse: description: CompanyNotFoundErrorResponse value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: type: object title: error format: xml examples: CompanyNotFoundErrorResponseXml: description: CompanyNotFoundErrorResponseXml value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /company/{companyId}/logos/{logoSize}: get: tags: - Sync API summary: Fetch company logo description: 'Use this endpoint to fetch a company''s logo in PNG format at the requested size. Supported sizes are 100, 200, or 400 pixels. If a logo in the specified size is not available, the API returns an error response.' operationId: companyLogoFetch parameters: - name: companyId in: path description: Company ID required: true schema: type: string example: '725771' - name: logoSize in: path description: Logo Size required: true schema: type: string example: '100' responses: '200': description: A png image of the company logo is returned. content: image/png: schema: type: string format: binary '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidCompanyIdErrorResponse: description: InvalidCompanyIdErrorResponse value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidLogoSizeErrorResponse: description: InvalidLogoSizeErrorResponse value: errorCode: 400-108 errorMessage: Invalid value for size. Should be among {100,200,400} diagnosticCode: 0fb42a2c-65c3-4e11-93d0-ba973503bd3d LogoNotFoundErrorResponse: description: LogoNotFoundErrorResponse value: errorCode: 404-103 errorMessage: Company logo for the given company ID is not present. diagnosticCode: ebdfc380-0241-4be4-b801-bde781cbbfe1 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidCompanyIdErrorResponseXml: description: InvalidCompanyIdErrorResponseXml value: errorCode: 400-103 errorMessage: companyId must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 InvalidLogoSizeErrorResponseXml: description: InvalidLogoSizeErrorResponseXml value: errorCode: 400-108 errorMessage: Invalid value for size. Should be among {100,200,400} diagnosticCode: 0fb42a2c-65c3-4e11-93d0-ba973503bd3d LogoNotFoundErrorResponseXml: description: LogoNotFoundErrorResponseXml value: errorCode: 404-103 errorMessage: Company logo for the given company ID is not present. diagnosticCode: ebdfc380-0241-4be4-b801-bde781cbbfe1 '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 /match: post: tags: - Sync API summary: Match companies and contact description: 'This endpoint matches companies and contacts against Demandbase''s database based on provided firmographic and contact details. This endpoint supports batch matching by accepting an array of match requests. Each object in the requests array must include a unique id and a useful combination of attributes for matching. At a minimum, at least one of the following company identifiers is required: - `name` - `websites` - `email` - `executiveLinkedInHandle`' operationId: match_1 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MatchRequestDTO' responses: '200': description: Successful operation or No companies found for query. content: application/json: schema: $ref: '#/components/schemas/MatchResponseDTO' examples: SuccessResponse: description: SuccessResponse value: matches: - id: id companyMatches: - company: companyId: 726263 companyName: Microsoft Corporation address: street: 1 Microsoft Way city: Redmond state: WA country: United States contactMatches: - contact: dbPersonDetails: dbPersonId: 243908534 firstName: Satya lastName: Nadella employmentDetails: contactId: 310227204 companyId: 726263 companyName: Microsoft Corporation titles: - Chairman and CEO contactQualityScore: A+ EmptyCompaniesResponse: description: EmptyCompaniesResponse value: matches: - id: '2' companyMatches: [] contactMatches: [] application/xml: schema: $ref: '#/components/schemas/MatchResponseDTO' examples: SuccessResponseXml: description: SuccessResponseXml value: matches: - id: '1' companyMatches: - company: companyId: 7573216 companyName: Google LLC address: city: Mountain View state: CA country: United States contactMatches: - contact: dbPersonDetails: dbPersonId: 50823422 firstName: Stefano lastName: Gessati employmentDetails: contactId: 96208084 companyId: 7573216 companyName: Google LLC titles: - IT Resident - id: '2' companyMatches: - company: companyId: 724468 companyName: Apple Inc. address: city: Cupertino state: CA country: United States contactMatches: - contact: dbPersonDetails: dbPersonId: 215 firstName: Tim lastName: Cook employmentDetails: contactId: 317995637 companyId: 724468 companyName: Apple Inc. titles: - CEO contactQualityScore: A+ EmptyCompaniesResponseXml: description: EmptyCompaniesResponseXml value: matches: - id: '2' companyMatches: [] contactMatches: [] '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidRequestsErrorResponse: description: InvalidRequestsErrorResponse value: errorCode: 400-165 errorMessage: The match request should have non empty requests list. diagnosticCode: 88c27a04-bd7c-43d6-b133-b0990572e0d2 InvalidRequestBodyErrorResponse: description: InvalidRequestBodyErrorResponse value: errorCode: 400-166 errorMessage: The request cannot be null. diagnosticCode: 58d73e23-2ade-48de-bab1-8bb91f8593eb RequiredParamMissingErrorResponse: description: RequiredParamMissingErrorResponse value: errorCode: 400-164 errorMessage: 'At least one of the following parameters: name, website, email or ticker must be provided for a match.' diagnosticCode: 8a780506-a4ea-47c0-9837-3ae20d5f8849 InvalidRequestIdErrorResponse: description: InvalidRequestIdErrorResponse value: errorCode: 400-167 errorMessage: Each request should have a unique ID. diagnosticCode: cca619c0-6f2c-476d-bf9e-916c7e33e90e InvalidRequestsSizeErrorResponse: description: InvalidRequestsSizeErrorResponse value: errorCode: 400-168 errorMessage: The match request size should be less than or equal to 30. diagnosticCode: a9f35a64-5d7c-40d9-949d-6b3d440732f4 InvalidFieldNameErrorResponse: description: InvalidFieldNameErrorResponse value: errorCode: 400-106 errorMessage: '{invalidFieldName} Invalid field name.' diagnosticCode: 3295f2e8-b794-4646-a805-b573e69d43fb InvalidMinMatchScoreErrorResponse: description: InvalidMinMatchScoreErrorResponse value: errorCode: 400-170 errorMessage: The minimumMatchScore should be between 0 and 1. diagnosticCode: b823b5fe-0862-4ea5-bb18-cee2d8a69782 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidRequestsErrorResponseXML: description: InvalidRequestsErrorResponseXML value: errorCode: 400-165 errorMessage: The match request should have non empty requests list. diagnosticCode: 88c27a04-bd7c-43d6-b133-b0990572e0d2 InvalidRequestBodyErrorResponseXML: description: InvalidRequestBodyErrorResponseXML value: errorCode: 400-166 errorMessage: The request cannot be null. diagnosticCode: 58d73e23-2ade-48de-bab1-8bb91f8593eb RequiredParamMissingErrorResponseXML: description: RequiredParamMissingErrorResponseXML value: errorCode: 400-164 errorMessage: 'At least one of the following parameters: name, website, email or ticker must be provided for a match.' diagnosticCode: 8a780506-a4ea-47c0-9837-3ae20d5f8849 InvalidRequestIdErrorResponseXML: description: InvalidRequestIdErrorResponseXML value: errorCode: 400-167 errorMessage: Each request should have a unique ID. diagnosticCode: cca619c0-6f2c-476d-bf9e-916c7e33e90e InvalidRequestsSizeErrorResponseXML: description: InvalidRequestsSizeErrorResponseXML value: errorCode: 400-168 errorMessage: The match request size should be less than or equal to 30. diagnosticCode: a9f35a64-5d7c-40d9-949d-6b3d440732f4 InvalidFieldNameErrorResponseXML: description: InvalidFieldNameErrorResponseXML value: errorCode: 400-106 errorMessage: '{invalidFieldName} Invalid field name.' diagnosticCode: 3295f2e8-b794-4646-a805-b573e69d43fb InvalidMinMatchScoreErrorResponseXML: description: InvalidMinMatchScoreErrorResponseXML value: errorCode: 400-170 errorMessage: The minimumMatchScore should be between 0 and 1. diagnosticCode: b823b5fe-0862-4ea5-bb18-cee2d8a69782 '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/{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 Create a Bulk Data Retrieval Job 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 \n 500\n Internal\ \ server exception occurred.\n 15d8774c-f2a1-4352-ba65-386bf8d04ecf\n\ \ \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 Job Status API. ' operationId: createBulkJob requestBody: description: "**NOTE:** You may submit up to 10,000 IDs or filter values per request\n\n### Filter Fields\n
\n\ \ Company Search (click to expand)\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
\n\n
\n Contact Search (click to\ \ expand)\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
\n\n### Available Output Fields by Job Type\n
\n Output Fields for companyFetch\ \ (click to expand)\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- `yearFounded`\n- `zip`\n\n
\n
\n\ \ Output Fields for contactFetch (click to expand)\n\n- `active`\n- `age`\n\ - `companyId`\n- `companyName`\n- `contactId`\n- `corporatePhone`\n- `dbPersonArea`\n- `dbPersonCity`\n- `dbPersonCountry`\n\ - `dbPersonCountryCode`\n- `dbPersonId`\n- `dbPersonLatitude`\n- `dbPersonLongitude`\n- `dbPersonState`\n- `dbPersonStateCode`\n\ - `dbPersonStreet`\n- `dbPersonZip`\n- `description`\n- `directPhone`\n- `education`\n- `email`\n- `facebookHandle`\n\ - `firstName`\n- `imageUrl`\n- `jobFunctions`\n- `jobLevels`\n- `lastName`\n- `lastValidatedDate`\n- `linkedinHandle`\n\ - `contactQualityScore`\n- `middleName`\n- `mobileNumber`\n- `salary`\n- `salaryCurrency`\n- `startDate`\n- `titles`\n\ - `twitterHandle`\n\n
\n
\n Output Fields for companySearch (click to\ \ expand)\n\n- `city`\n- `companyId`\n- `country`\n- `name`\n- `state`\n\n
\n\n
\n Output\ \ Fields for contactSearch (click to expand)\n\n- `active`\n- `companyId`\n- `companyName`\n\ - `contactId`\n- `contactQualityScore`\n- `dbPersonId`\n- `firstName`\n- `jobFunctions`\n- `jobLevels`\n- `lastName`\n\ - `titles`\n\n
\n\nNote: Use \"all\" to include all available fields in the response.\n

**Example:**\n\ ```\n{ \n \"jobname\": \"TestJob\",\n \"jobType\": \"contactSearch\",\n \"filters\": [...]\n \"fields\": [\"\ all\"], ← Will return ALL available fields\n}\n```\n\n### Request Body" required: true content: application/json: schema: $ref: '#/components/schemas/JobRequestDTO' examples: Company Fetch Request Example: description: Company Fetch Request Example value: jobName: Company Fetch Bulk Job jobType: companyFetch fields: - companyId - name filters: - field: companyId values: - '1' - '2' - '3' Contact Fetch Request Example: description: Contact Fetch Request Example value: jobName: Contact Fetch Bulk Job jobType: contactFetch fields: - contactId - firstName - lastName - titles filters: - field: contactId values: - '1' - '2' - '3' Company Search Request Example: description: Company Search Request Example value: jobName: Sample Bulk Job jobType: companySearch fields: - all filters: - field: website values: - demandbase.com sortBy: companyRevenue sortOrder: asc Contact Search Request Example: description: Contact Search Request Example value: jobName: Sample Contact Search Bulk Job jobType: contactSearch fields: - dbPersonId - firstName - lastName - contactId - companyId - companyName - titles - jobLevels - jobFunctions - active - contactQualityScore filters: - field: firstName values: - Sahil - field: titles values: - CMO - CTO - field: jobLevels values: - '1' - '2' sortBy: title sortOrder: asc responses: '202': description: Bulk job created successfully content: application/json: schema: $ref: '#/components/schemas/BulkJobStatusDTO' examples: Company Fetch Success Response: description: Company Fetch Success Response value: jobName: Sample Bulk Job 2 jobStatus: accepted jobType: companyFetch jobId: 3984c704-6c13-40de-bed4-84ba62b7fddd createdAt: '2025-06-09T20:39:51.431Z' Contact Fetch Success Response: description: Contact Fetch Success Response value: jobName: Test Contact Fetch Job jobStatus: accepted jobType: contactFetch jobId: 3984c704-6c13-40de-bed4-84ba62b7fddd createdAt: '2025-06-09T20:39:51.431Z' Company Search Success Response: description: Company Search Success Response value: jobName: Sample Bulk Job jobStatus: accepted jobType: companySearch jobId: 4bff3abb-3f69-4b01-bed5-96868e7e253e createdAt: '2025-07-24T16:46:52.699Z' Contact Search Success Response: description: Contact Search Success Response value: jobName: Sample Bulk Job jobStatus: accepted jobType: contactSearch jobId: 5bff4abb-3f69-4b01-bed5-96868e7e253e createdAt: '2025-07-31T16:46:52.699Z' application/xml: schema: $ref: '#/components/schemas/BulkJobStatusDTO' examples: Company Fetch Success Response: description: Company Fetch Success Response value: jobName: Sample Bulk Job 2 jobStatus: accepted jobType: companyFetch jobId: 3984c704-6c13-40de-bed4-84ba62b7fddd createdAt: '2025-06-09T20:39:51.431Z' Contact Fetch Success Response: description: Contact Fetch Success Response value: jobName: Test Contact Fetch Job jobStatus: accepted jobType: contactFetch jobId: 3984c704-6c13-40de-bed4-84ba62b7fddd createdAt: '2025-06-09T20:39:51.431Z' Company Search Success Response: description: Company Search Success Response value: jobName: Sample Bulk Job jobStatus: accepted jobType: companySearch jobId: 4bff3abb-3f69-4b01-bed5-96868e7e253e createdAt: '2025-07-24T16:46:52.699Z' Contact Search Success Response: description: Contact Search Success Response value: jobName: Sample Bulk Job jobStatus: accepted jobType: contactSearch jobId: 5bff4abb-3f69-4b01-bed5-96868e7e253e createdAt: '2025-07-31T16:46:52.699Z' '400': description: Bad Request - Invalid input parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Missing Fields: description: When required fields are missing value: errorCode: 400-194 errorMessage: fields list must not be empty in job request diagnosticCode: e85284b5-5330-40c0-aa39-392a8afd6681 Invalid Job Type: description: When job type is invalid or not supported value: errorCode: 400-195 errorMessage: 'jobType must be one of: companyFetch, contactFetch, companySearch, contactSearch' diagnosticCode: abcd Missing Job Name: description: When job name is missing or blank value: errorCode: 400-190 errorMessage: jobName is required and cannot be empty. diagnosticCode: abcd Job Name Too Long: description: When job name exceeds 50 characters value: errorCode: 400-196 errorMessage: jobName must be at most 50 characters diagnosticCode: abcd Invalid Field Name: description: When field names are not valid value: errorCode: 400-106 errorMessage: 'Invalid field name: invalidField1, invalidField2' diagnosticCode: abcd Multiple Filters: description: When more than one filter is provided value: errorCode: 400-201 errorMessage: Maximum 1 filter can be applied at a time. diagnosticCode: abcd Invalid Filter Field for Company Fetch: description: When filter field is not supported value: errorCode: 400-200 errorMessage: Filter can only be applied on field 'companyId' for given jobType. diagnosticCode: abcd Invalid Filter Field for Contact Fetch: description: When filter field is not supported value: errorCode: 400-212 errorMessage: Filter can only be applied on field 'contactId' for given jobType. diagnosticCode: abcd Values Limit Exceeded: description: When filter values exceed the limit value: errorCode: 400-203 errorMessage: The number of values in the filter exceeds the limit of 10000. diagnosticCode: 2fe6b569-ff5b-4889-8dc1-653907134ffe No Filters: description: When no filters are provided value: errorCode: 400-202 errorMessage: At least one filter must be provided. diagnosticCode: abcd No Filter values present: description: When no filter values are provided value: errorCode: 400-198 errorMessage: Filter values must not be empty diagnosticCode: 0835ea59-38e1-4cfd-bb4d-37573d5b028f Filter field missing: description: When filter field is provided value: errorCode: 400-197 errorMessage: Filter field is required diagnosticCode: ea4c0465-672e-4fba-a5b7-020e30bf3b6a jobType missing: description: When jobType is not provided value: errorCode: 400-199 errorMessage: jobType is required and cannot be empty. diagnosticCode: 8e787f3c-c1a2-4875-8223-12ef79d6c239 Invalid SortBy Param for Company Search: description: When invalid SortBy Param is provided value: errorCode: 400-135 errorMessage: Sorting is allowed only on employeeCount, businessType, companyRevenue and location diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid SortOrder Param: description: When invalid SortOrder Param is provided value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Company Country Id: description: When invalid Company Country Id is provided value: errorCode: 400-214 errorMessage: Invalid country. Please enter valid country ID in country. diagnosticCode: 2ec12de8-1000-4620-8757-6091a1cffab7 Invalid News Categories: description: When invalid News Categories are provided value: errorCode: 400-112 errorMessage: 'Invalid newsCategories. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid News Duration: description: When an invalid News Duration is provided value: errorCode: 400-113 errorMessage: Invalid newsDuration. Valid values are between 1 and 30 diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Industry: description: When an invalid Industry is provided value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Max Employees: description: When an invalid Max Employees value is provided value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Min Employees: description: When an invalid Min Employees value is provided value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Max Revenue: description: When an invalid Max Revenue value is provided value: errorCode: 400-119 errorMessage: maxRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Min Revenue: description: When an invalid Min Revenue value is provided value: errorCode: 400-118 errorMessage: minRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Business Structure: description: When an invalid Business Structure is provided value: errorCode: 400-128 errorMessage: 'Invalid businessStructure. Valid values are: uncategorized, globalParent, subsidiary, group, branch, independent' diagnosticCode: cebdea29-25ac-40e5-af41-0626e34e6f46 Invalid Business Type: description: When an invalid Business Type is provided value: errorCode: 400-129 errorMessage: 'Invalid businessType. Valid values are: public, private, school, government, organization' diagnosticCode: 2b7cd799-e532-46a4-bc4e-e967b0a40f4b Invalid Company Status: description: When an invalid Company Status is provided value: errorCode: 400-130 errorMessage: 'Invalid companyStatus. Valid values are: unassigned, operating, non-operating, acquired, liquidating, outOfBusiness' diagnosticCode: bb841d37-ed8f-4a82-a5c5-fd11ea6d8e3d Invalid Fiscal Year End: description: When an invalid Fiscal Year End is provided value: errorCode: 400-131 errorMessage: Invalid fiscalYearEnd. fiscalYearEnd should be a valid month name. diagnosticCode: 67521433-a92b-49ee-9d21-21d4007f8486 Invalid Fortune Ranking: description: When an invalid Fortune Ranking is provided value: errorCode: 400-132 errorMessage: 'Invalid fortuneRanking. Valid values are: fortune500, fortune1000' diagnosticCode: 1921c127-a8e6-4685-aaa0-1f6bce967a18 Invalid Employee Range: description: When an invalid Employee Range is provided value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe Invalid Revenue Range: description: When an invalid Revenue Range is provided value: errorCode: 400-127 errorMessage: minRevenue must be less than or equal to minRevenue. diagnosticCode: cbc2bbd0-a801-41c1-a546-be6ea0e75797 Invalid Regions: description: When invalid Regions are provided value: errorCode: 400-133 errorMessage: 'Invalid region. Valid values are: Africa, Asia, Europe, MiddleEast, NorthAmerica, Oceania, SouthAmerica' diagnosticCode: 88d76e2d-6f09-4018-97fe-b41c64f5ac67 Invalid Company Type: description: When an invalid Company Type is provided value: errorCode: 400-134 errorMessage: 'Invalid companyType. Valid values are: unknown, public, private, government, organization' diagnosticCode: ed1cfeb5-a7bf-4621-a4f3-51b1e8f106ae Invalid Gender: description: When an invalid Gender is provided value: errorCode: 400-117 errorMessage: Invalid gender. Valid values are male and female diagnosticCode: fa7db512-d0ef-4c9d-aa8b-6e6bc21a61bc Invalid Ethnicity: description: When an invalid Ethnicity is provided value: errorCode: 400-136 errorMessage: Invalid Ethnicity Ids. Ethnicity Ids should be between 1 and 7 diagnosticCode: 126df328-b3d1-4d62-9464-e435aa706805 Invalid SortBy Param for Contact Search: description: When invalid SortBy Param is provided value: errorCode: 400-108 errorMessage: Sorting is allowed only on active, title and companyName. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Contact CountryId: description: When invalid Contact Country Id is provided value: errorCode: 400-110 errorMessage: Invalid contactCountry. Please enter valid country ID in contactCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Job Levels: description: When an invalid Job Level is provided value: errorCode: 400-124 errorMessage: 'jobLevel must be an integer. ' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 Invalid Min Contact Quality Score: description: When an invalid Min Contact Quality Score is provided value: errorCode: 400-123 errorMessage: 'minContactQualityScore must one of: [A+, A, B, C]' diagnosticCode: 467e469f-2146-4af8-ac0f-5fb487fbba02 Invalid Job Function: description: When an invalid Job Function is provided value: errorCode: 400-125 errorMessage: 'jobFunction must be an integer. ' diagnosticCode: 3640f569-4d90-40cd-b0c6-2c72f671ab72 Invalid Phone Type: description: When an invalid Phone Type is provided value: errorCode: 400-137 errorMessage: 'phoneType must be one of: [DIRECT, CORP, MOBILE, ANY, DIRECTORCORP]' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 Invalid Email Validation Status: description: When an invalid Email Validation Status is provided value: errorCode: 400-138 errorMessage: 'emailValidationStatus must be one of: [ValidEmail, ValidDomain]' diagnosticCode: e32c6e5e-29cb-40c0-a37a-2c8e8213a477 Invalid CompanyId: description: When an invalid CompanyId is provided value: errorCode: 400-122 errorMessage: Invalid companyId in companyIdsInclude. companyId must be an integer. diagnosticCode: ffa69cf0-b316-4a12-84d5-e4afb6bb23ee Invalid Field In Filter: description: When an invalid field is provided in filter value: errorCode: 400-213 errorMessage: 'Invalid field in filter: invalid' diagnosticCode: 581b5824-12e1-4ff6-bcfb-a733b034b7f9 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Bad Request Response: description: Bad Request Response value: errorCode: 400-194 errorMessage: fields list must not be empty in job request diagnosticCode: e85284b5-5330-40c0-aa39-392a8afd6681 Invalid Job Type Response: description: Invalid Job Type Response value: errorCode: 400-195 errorMessage: 'jobType must be one of: companyFetch, contactFetch, companySearch, contactSearch' diagnosticCode: abcd Job Name Required Response: description: Job Name Required Response value: errorCode: 400-190 errorMessage: jobName is required and cannot be empty. diagnosticCode: abcd Job Name Too Long Response: description: Job Name Too Long Response value: errorCode: 400-196 errorMessage: jobName must be at most 50 characters diagnosticCode: abcd Invalid Field Name Response: description: Invalid Field Name Response value: errorCode: 400-106 errorMessage: 'Invalid field name: invalidField1, invalidField2' diagnosticCode: abcd Invalid Filters Count Response: description: Invalid Filters Count Response value: errorCode: 400-201 errorMessage: Maximum 1 filter can be applied at a time. diagnosticCode: abcd Invalid Filter Field Response for Company Fetch: description: Invalid Filter Field Response for Company Fetch value: errorCode: 400-200 errorMessage: Filter can only be applied on field 'companyId' for given jobType. diagnosticCode: abcd Invalid Filter Field Response for Contact Fetch: description: Invalid Filter Field Response for Contact Fetch value: errorCode: 400-212 errorMessage: Filter can only be applied on field 'contactId' for given jobType. diagnosticCode: abcd Values Limit Exceeded Response: description: Values Limit Exceeded Response value: errorCode: 400-203 errorMessage: The number of values in the filter exceeds the limit of 10000. diagnosticCode: 2fe6b569-ff5b-4889-8dc1-653907134ffe No Filters Response: description: No Filters Response value: errorCode: 400-202 errorMessage: At least one filter must be provided. diagnosticCode: abcd No Filter Values Response: description: No Filter Values Response value: errorCode: 400-198 errorMessage: Filter values must not be empty diagnosticCode: 0835ea59-38e1-4cfd-bb4d-37573d5b028f Filter Field Required Response: description: Filter Field Required Response value: errorCode: 400-197 errorMessage: Filter field is required diagnosticCode: ea4c0465-672e-4fba-a5b7-020e30bf3b6a jobType Required Response: description: jobType Required Response value: errorCode: 400-199 errorMessage: jobType is required and cannot be empty. diagnosticCode: 8e787f3c-c1a2-4875-8223-12ef79d6c239 Invalid SortBy Param for Company Search: description: Invalid SortBy Param for Company Search value: errorCode: 400-135 errorMessage: Sorting is allowed only on employeeCount, businessType, companyRevenue and location diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid SortOrder: description: Invalid SortOrder value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Company Country Id: description: Invalid Company Country Id value: errorCode: 400-214 errorMessage: Invalid country. Please enter valid country ID in country. diagnosticCode: 2ec12de8-1000-4620-8757-6091a1cffab7 Invalid NewsCategories: description: Invalid NewsCategories value: errorCode: 400-112 errorMessage: 'Invalid newsCategories. Valid values are: leadership Changes, new Offerings, acquisitions, partnerships, expanding operations, cost cutting, outperforming, underperforming, company presentation, litigation, compliance, research and development, data security, funding developments, bankruptcy and restructuring, real estate: deals, real estate: construction, corporate challenges' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid NewsDuration: description: Invalid NewsDuration value: errorCode: 400-113 errorMessage: Invalid newsDuration. Valid values are between 1 and 30 diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Industry: description: Invalid Industry value: errorCode: 400-114 errorMessage: Industry Id must be an integer. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Max Employees: description: Invalid Max Employees value: errorCode: 400-121 errorMessage: maxEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Min Employees: description: Invalid Min Employees value: errorCode: 400-120 errorMessage: minEmployees must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Max Revenue: description: Invalid Max Revenue value: errorCode: 400-119 errorMessage: maxRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Min Revenue: description: Invalid Min Revenue value: errorCode: 400-118 errorMessage: minRevenue must be greater than or equal to 0. diagnosticCode: 88ea1636-3c9d-40ec-bdc4-e28d8ec1d069 Invalid Business Structure: description: Invalid Business Structure value: errorCode: 400-128 errorMessage: 'Invalid businessStructure. Valid values are: uncategorized, globalParent, subsidiary, group, branch, independent' diagnosticCode: cebdea29-25ac-40e5-af41-0626e34e6f46 Invalid Business Type: description: Invalid Business Type value: errorCode: 400-129 errorMessage: 'Invalid businessType. Valid values are: public, private, school, government, organization' diagnosticCode: 2b7cd799-e532-46a4-bc4e-e967b0a40f4b Invalid Company Status: description: Invalid Company Status value: errorCode: 400-130 errorMessage: 'Invalid companyStatus. Valid values are: unassigned, operating, non-operating, acquired, liquidating, outOfBusiness' diagnosticCode: bb841d37-ed8f-4a82-a5c5-fd11ea6d8e3d Invalid Fiscal Year End: description: Invalid Fiscal Year End value: errorCode: 400-131 errorMessage: Invalid fiscalYearEnd. fiscalYearEnd should be a valid month name. diagnosticCode: 67521433-a92b-49ee-9d21-21d4007f8486 Invalid Fortune Ranking: description: Invalid Fortune Ranking value: errorCode: 400-132 errorMessage: 'Invalid fortuneRanking. Valid values are: fortune500, fortune1000' diagnosticCode: 1921c127-a8e6-4685-aaa0-1f6bce967a18 Invalid Employee Range: description: Invalid Employee Range value: errorCode: 400-126 errorMessage: minEmployees must be less than or equal to maxEmployees. diagnosticCode: ddda8332-696c-4e74-897b-f5cc5525ddbe Invalid Revenue Range: description: Invalid Revenue Range value: errorCode: 400-127 errorMessage: minRevenue must be less than or equal to minRevenue. diagnosticCode: cbc2bbd0-a801-41c1-a546-be6ea0e75797 Invalid Regions: description: Invalid Regions value: errorCode: 400-133 errorMessage: 'Invalid region. Valid values are: Africa, Asia, Europe, MiddleEast, NorthAmerica, Oceania, SouthAmerica' diagnosticCode: 88d76e2d-6f09-4018-97fe-b41c64f5ac67 Invalid Company Type: description: Invalid Company Type value: errorCode: 400-134 errorMessage: 'Invalid companyType. Valid values are: unknown, public, private, government, organization' diagnosticCode: ed1cfeb5-a7bf-4621-a4f3-51b1e8f106ae Invalid Gender: description: Invalid Gender value: errorCode: 400-117 errorMessage: Invalid gender. Valid values are male and female diagnosticCode: fa7db512-d0ef-4c9d-aa8b-6e6bc21a61bc Invalid Ethnicity: description: Invalid Ethnicity value: errorCode: 400-136 errorMessage: Invalid Ethnicity Ids. Ethnicity Ids should be between 1 and 7 diagnosticCode: 126df328-b3d1-4d62-9464-e435aa706805 Invalid SortBy Param for Contact Search: description: Invalid SortBy Param for Contact Search value: errorCode: 400-108 errorMessage: Sorting is allowed only on active, title and companyName. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Sort Order: description: Invalid Sort Order value: errorCode: 400-109 errorMessage: Sorting order can be either asc or desc. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Contact CountryId: description: Invalid Contact CountryId value: errorCode: 400-110 errorMessage: Invalid contactCountry. Please enter valid country ID in contactCountry. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 Invalid Job Levels: description: Invalid Job Levels value: errorCode: 400-124 errorMessage: 'jobLevel must be an integer. ' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 Invalid Min Contact Quality Score: description: Invalid Min Contact Quality Score value: errorCode: 400-123 errorMessage: 'minContactQualityScore must one of: [A+, A, B, C]' diagnosticCode: 467e469f-2146-4af8-ac0f-5fb487fbba02 Invalid Function: description: Invalid Function value: errorCode: 400-125 errorMessage: 'jobFunction must be an integer. ' diagnosticCode: 3640f569-4d90-40cd-b0c6-2c72f671ab72 Invalid Phone Type: description: Invalid Phone Type value: errorCode: 400-137 errorMessage: 'phoneType must be one of: [DIRECT, CORP, MOBILE, ANY, DIRECTORCORP]' diagnosticCode: 8ee03d66-a07b-43bd-9bd0-eee448ed7a98 Invalid Email Validation Status: description: Invalid Email Validation Status value: errorCode: 400-138 errorMessage: 'emailValidationStatus must be one of: [ValidEmail, ValidDomain]' diagnosticCode: e32c6e5e-29cb-40c0-a37a-2c8e8213a477 Invalid CompanyId: description: Invalid CompanyId value: errorCode: 400-122 errorMessage: Invalid companyId in companyIdsInclude. companyId must be an integer. diagnosticCode: ffa69cf0-b316-4a12-84d5-e4afb6bb23ee Invalid Field In Filter: description: When an invalid field is provided in filter value: errorCode: 400-213 errorMessage: 'Invalid field in filter: invalid' diagnosticCode: 581b5824-12e1-4ff6-bcfb-a733b034b7f9 '401': description: Unauthorized - Missing or invalid tenant ID content: application/json: examples: Unauthorized Response: description: Unauthorized Response value: status: Authentication Failed - Unauthorized. security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/job: put: tags: - Subscription API summary: Update an Existing Subscription description: 'Use this API to update an existing subscription. You must provide both the subscriptionId and subscriptionType to identify which subscription you want to modify. This endpoint supports partial and full updates, including: - Replacing all associated entity IDs with the subscription (e.g., company IDs or dbPerson IDs). - Incrementally adding or removing entity IDs in the subscription. - Updating other subscription details such as frequency, webhook URL, signing secret, fields, or news categories. The API responds with a jobId, which can be used to check the job''s status. Once the job completes successfully, the subscription is updated accordingly. ' operationId: updateSubscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSubscriptionJobRequestDTO' examples: UpdateCompanySubscriptionRequest: description: UpdateCompanySubscriptionRequest value: subscriptionId: 2aac4dd2-d2c9-485e-b9ef-388c63e54915 companyIds: - 1 - 2 - 3 - 4 - 5 name: Updated Company Subscription description: This is an updated subscription for company updates subscriptionType: company frequency: 14d fields: - all webhook: http://www.your-domain.com/webhook-updated signingSecret: updated-secret-key UpdateCompanyNewsSubscriptionRequest: description: UpdateCompanyNewsSubscriptionRequest value: subscriptionId: 2aac4dd2-d2c9-485e-b9ef-388c63e54916 addCompanyIds: - 1 - 2 - 3 - 4 - 5 removeCompanyIds: - 6 - 7 name: Updated Company News Subscription description: This is an updated subscription for company news updates subscriptionType: companyNews frequency: 60M newsCategories: - LEADERSHIP_CHANGES - RESEARCH_DEVELOPMENT - REALESTATE_DEALS webhook: http://www.your-domain.com/webhook-updated signingSecret: updated-secret-key UpdateCompanyFamilyTreeSubscriptionRequest: description: UpdateCompanyFamilyTreeSubscriptionRequest value: subscriptionId: 2aac4dd2-d2c9-485e-b9ef-388c63e54917 addCompanyIds: - 1 - 2 - 3 - 4 - 5 removeCompanyIds: - 6 - 7 name: Updated Company FamilyTree Subscription description: This is an updated subscription for company family tree updates subscriptionType: companyFamilyTree frequency: 1w webhook: http://www.your-domain.com/webhook-updated signingSecret: updated-secret-key UpdateDbPersonSubscriptionRequest: description: UpdateDbPersonSubscriptionRequest value: subscriptionId: 2aac4dd2-d2c9-485e-b9ef-388c63e54918 addDBPersonIds: - 101 - 102 - 103 - 104 - 105 removeDBPersonIds: - 106 - 107 name: Updated DB Person Subscription description: This is an updated subscription for dbPerson updates subscriptionType: dbPerson frequency: 14d fields: - all webhook: http://www.your-domain.com/webhook-updated signingSecret: updated-secret-key responses: '202': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionJobResponseDTO' examples: SuccessResponse: description: SuccessResponse value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed jobStatus: accepted totalEntitiesProcessed: 0 jobType: notificationSubscriptionCreate subscriptionType: company createdAt: '2025-06-25T09:00:42.620Z' application/xml: schema: $ref: '#/components/schemas/SubscriptionJobResponseDTO' examples: SuccessResponseXml: description: SuccessResponseXml value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed jobStatus: accepted totalEntitiesProcessed: 0 jobType: notificationSubscriptionCreate subscriptionType: company createdAt: '2025-06-25T09:00:42.620Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidUrlResponse: description: InvalidUrlResponse value: errorCode: 400-144 errorMessage: Invalid Webhook. Url syntax is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSigningSecretResponse: description: InvalidSigningSecretResponse value: errorCode: 400-145 errorMessage: Invalid Webhook. Signing secret is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSubscriptionTypeResponse: description: InvalidSubscriptionTypeResponse value: errorCode: 400-146 errorMessage: Invalid Subscription Type. Subscription type is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidStartTimeResponse: description: InvalidStartTimeResponse value: errorCode: 400-147 errorMessage: Start time is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidFrequencyResponse: description: InvalidFrequencyResponse value: errorCode: 400-149 errorMessage: Frequency has invalid pattern. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyValueResponse: description: InvalidFrequencyValueResponse value: errorCode: 400-150 errorMessage: Frequency value is invalid. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyTypeResponse: description: InvalidFrequencyTypeResponse value: errorCode: 400-151 errorMessage: Frequency type is invalid. diagnosticCode: e8bb70af-ab52-4bb3-a2cb-538801fc9ed4 InvalidFieldResponse: description: InvalidFieldResponse value: errorCode: 400-157 errorMessage: One or more fields is invalid for provided subscription type. diagnosticCode: dd1546d9-f8c3-4b86-bcec-8acbae92998b InvalidAgentResponse: description: InvalidAgentResponse value: errorCode: 400-163 errorMessage: One or more news category is invalid for provided subscription type. diagnosticCode: cafba766-624e-40b7-8952-4acb657ada09 EmptyCompanyIdsResponse: description: EmptyCompanyIdsResponse value: errorCode: 400-158 errorMessage: At least one company ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f EmptyContactIdsResponse: description: EmptyContactIdsResponse value: errorCode: 400-159 errorMessage: At least one contact ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f CompanyIdsLimitExceededResponse: description: CompanyIdsLimitExceededResponse value: errorCode: 400-160 errorMessage: Company ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f ContactIdsLimitExceededResponse: description: ContactIdsLimitExceededResponse value: errorCode: 400-161 errorMessage: Contact ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidUrlResponseXml: description: InvalidUrlResponseXml value: errorCode: 400-144 errorMessage: Invalid Webhook. Url syntax is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSigningSecretResponseXml: description: InvalidSigningSecretResponseXml value: errorCode: 400-145 errorMessage: Invalid Webhook. Signing secret is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSubscriptionTypeResponseXml: description: InvalidSubscriptionTypeResponseXml value: errorCode: 400-146 errorMessage: Invalid Subscription Type. Subscription type is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidStartTimeResponseXml: description: InvalidStartTimeResponseXml value: errorCode: 400-147 errorMessage: Start time is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidFrequencyResponseXml: description: InvalidFrequencyResponseXml value: errorCode: 400-149 errorMessage: Frequency has invalid pattern. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyValueResponseXml: description: InvalidFrequencyValueResponseXml value: errorCode: 400-150 errorMessage: Frequency value is invalid. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyTypeResponseXml: description: InvalidFrequencyTypeResponseXml value: errorCode: 400-151 errorMessage: Frequency type is invalid. diagnosticCode: e8bb70af-ab52-4bb3-a2cb-538801fc9ed4 InvalidFieldResponseXml: description: InvalidFieldResponseXml value: errorCode: 400-157 errorMessage: One or more fields is invalid for provided subscription type. diagnosticCode: dd1546d9-f8c3-4b86-bcec-8acbae92998b EmptyCompanyIdsResponseXml: description: EmptyCompanyIdsResponseXml value: errorCode: 400-158 errorMessage: At least one company ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f EmptyContactIdsResponseXml: description: EmptyContactIdsResponseXml value: errorCode: 400-159 errorMessage: At least one contact ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f CompanyIdsLimitExceededResponseXml: description: CompanyIdsLimitExceededResponseXml value: errorCode: 400-160 errorMessage: Company ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f ContactIdsLimitExceededResponseXml: description: ContactIdsLimitExceededResponseXml value: errorCode: 400-161 errorMessage: Contact ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f '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 post: tags: - Subscription API summary: Create a New Subscription description: 'Use this endpoint to create a subscription for monitoring updates to companies or DB Person records. Subscriptions allow you to receive change alerts via webhook and access historical alerts via API. Each subscription is processed asynchronously. A jobId is returned on submission. Upon completion, the job will return a subscriptionId which can be used to fetch alerts or manage the subscription.' operationId: updateSubscription_1 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSubscriptionJobRequestDTO' examples: Company Subscription Request Example: description: Company Subscription Request Example value: companyIds: - 1 - 2 - 3 - 4 - 5 name: Company Subscription description: This is a subscription for company updates subscriptionType: company startDate: '2025-06-25' frequency: 7d fields: - all webhook: http://www.your-domain.com/webhook signingSecret: secret-key Company News Subscription Request Example: description: Company News Subscription Request Example value: companyIds: - 1 - 2 - 3 - 4 - 5 name: Company News Subscription description: This is a subscription for company news updates subscriptionType: companyNews startDate: '2025-06-25' frequency: 30M newsCategories: - LEADERSHIP_CHANGES - RESEARCH_DEVELOPMENT - REALESTATE_DEALS webhook: http://www.your-domain.com/webhook signingSecret: secret-key Company Family Tree Subscription Request Example: description: Company Family Tree Subscription Request Example value: companyIds: - 1 - 2 - 3 - 4 - 5 name: Company FamilyTree Subscription description: This is a subscription for company family tree updates subscriptionType: companyFamilyTree startDate: '2025-06-25' frequency: 2w webhook: http://www.your-domain.com/webhook signingSecret: secret-key DbPerson Subscription Request Example: description: DbPerson Subscription Request Example value: dbPersonIds: - 101 - 102 - 103 - 104 - 105 name: DB Person Subscription description: This is a subscription for dbPerson updates subscriptionType: dbPerson startDate: '2025-06-25' frequency: 7d fields: - all webhook: http://www.your-domain.com/webhook signingSecret: secret-key responses: '202': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionJobResponseDTO' examples: SuccessResponse: description: SuccessResponse value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed jobStatus: accepted totalEntitiesProcessed: 0 jobType: notificationSubscriptionCreate subscriptionType: company createdAt: '2025-06-25T09:00:42.620Z' application/xml: schema: $ref: '#/components/schemas/SubscriptionJobResponseDTO' examples: SuccessResponseXml: description: SuccessResponseXml value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed jobStatus: accepted totalEntitiesProcessed: 0 jobType: notificationSubscriptionCreate subscriptionType: company createdAt: '2025-06-25T09:00:42.620Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidUrlResponse: description: InvalidUrlResponse value: errorCode: 400-144 errorMessage: Invalid Webhook. Url syntax is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSigningSecretResponse: description: InvalidSigningSecretResponse value: errorCode: 400-145 errorMessage: Invalid Webhook. Signing secret is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSubscriptionTypeResponse: description: InvalidSubscriptionTypeResponse value: errorCode: 400-146 errorMessage: Invalid Subscription Type. Subscription type is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidStartTimeResponse: description: InvalidStartTimeResponse value: errorCode: 400-147 errorMessage: Start time is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidFrequencyResponse: description: InvalidFrequencyResponse value: errorCode: 400-149 errorMessage: Frequency has invalid pattern. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyValueResponse: description: InvalidFrequencyValueResponse value: errorCode: 400-150 errorMessage: Frequency value is invalid. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyTypeResponse: description: InvalidFrequencyTypeResponse value: errorCode: 400-151 errorMessage: Frequency type is invalid. diagnosticCode: e8bb70af-ab52-4bb3-a2cb-538801fc9ed4 InvalidFieldResponse: description: InvalidFieldResponse value: errorCode: 400-157 errorMessage: One or more fields is invalid for provided subscription type. diagnosticCode: dd1546d9-f8c3-4b86-bcec-8acbae92998b InvalidAgentResponse: description: InvalidAgentResponse value: errorCode: 400-163 errorMessage: One or more news category is invalid for provided subscription type. diagnosticCode: cafba766-624e-40b7-8952-4acb657ada09 EmptyCompanyIdsResponse: description: EmptyCompanyIdsResponse value: errorCode: 400-158 errorMessage: At least one company ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f EmptyContactIdsResponse: description: EmptyContactIdsResponse value: errorCode: 400-159 errorMessage: At least one contact ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f CompanyIdsLimitExceededResponse: description: CompanyIdsLimitExceededResponse value: errorCode: 400-160 errorMessage: Company ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f ContactIdsLimitExceededResponse: description: ContactIdsLimitExceededResponse value: errorCode: 400-161 errorMessage: Contact ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidUrlResponseXml: description: InvalidUrlResponseXml value: errorCode: 400-144 errorMessage: Invalid Webhook. Url syntax is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSigningSecretResponseXml: description: InvalidSigningSecretResponseXml value: errorCode: 400-145 errorMessage: Invalid Webhook. Signing secret is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidSubscriptionTypeResponseXml: description: InvalidSubscriptionTypeResponseXml value: errorCode: 400-146 errorMessage: Invalid Subscription Type. Subscription type is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidStartTimeResponseXml: description: InvalidStartTimeResponseXml value: errorCode: 400-147 errorMessage: Start time is invalid. diagnosticCode: 261d677a-a60e-4a2c-81a7-b55a0ae148c0 InvalidFrequencyResponseXml: description: InvalidFrequencyResponseXml value: errorCode: 400-149 errorMessage: Frequency has invalid pattern. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyValueResponseXml: description: InvalidFrequencyValueResponseXml value: errorCode: 400-150 errorMessage: Frequency value is invalid. diagnosticCode: cceddfa1-90be-4a37-9b85-896223844f04 InvalidFrequencyTypeResponseXml: description: InvalidFrequencyTypeResponseXml value: errorCode: 400-151 errorMessage: Frequency type is invalid. diagnosticCode: e8bb70af-ab52-4bb3-a2cb-538801fc9ed4 InvalidFieldResponseXml: description: InvalidFieldResponseXml value: errorCode: 400-157 errorMessage: One or more fields is invalid for provided subscription type. diagnosticCode: dd1546d9-f8c3-4b86-bcec-8acbae92998b EmptyCompanyIdsResponseXml: description: EmptyCompanyIdsResponseXml value: errorCode: 400-158 errorMessage: At least one company ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f EmptyContactIdsResponseXml: description: EmptyContactIdsResponseXml value: errorCode: 400-159 errorMessage: At least one contact ID must be provided. diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f CompanyIdsLimitExceededResponseXml: description: CompanyIdsLimitExceededResponseXml value: errorCode: 400-160 errorMessage: Company ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f ContactIdsLimitExceededResponseXml: description: ContactIdsLimitExceededResponseXml value: errorCode: 400-161 errorMessage: Contact ids exceeds the permissible limit for subscription job diagnosticCode: a5631e82-0dfc-41ea-9ce8-8089ceff022f '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 /subscriptions/{subscriptionId}/entityIds: get: tags: - Subscription API summary: Get Subscription Entity IDs description: 'Retrieve all entity IDs (company or dbPerson) associated with a given subscription. The response is paginated and depends on the type of subscription: - For "company" or "companyFamilyTree" subscriptions, it returns Company IDs. - For "dbPerson" subscriptions, it returns Demandbase Person IDs. ' operationId: getSubscriptionEntityDetails parameters: - name: page in: query description: Page number for pagination. Default is 1. required: false schema: type: integer minimum: 1 default: 1 example: 1 - name: perPage in: query description: Number of results per page. Default is 5000, maximum is 5000. required: false schema: type: integer minimum: 1 maximum: 5000 default: 5000 example: 10 - name: subscriptionId in: path description: Unique identifier for the subscription required: true schema: type: string example: 287ea0c8-99de-4f0c-addc-097f78b48ba6 responses: '200': description: Entity ID list retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/SubscriptionEntityDetailsDTO' examples: Company IDs - JSON: description: Company IDs - JSON value: companyIds: - '643462' - '1042601' - '643223' - '642023' - '26176' - '643886' - '848207' - '741359' - '643768' - '642647' pageNo: 1 totalCount: 10 pageSize: 50 totalPages: 1 DB Person IDs - JSON: description: DB Person IDs - JSON value: dbPersonIds: - '643462' - '1042601' - '643223' - '642023' - '26176' - '643886' - '848207' - '741359' - '643768' - '642647' pageNo: 1 totalCount: 10 pageSize: 50 totalPages: 1 application/xml: schema: $ref: '#/components/schemas/SubscriptionEntityDetailsDTO' examples: Company IDs - XML: description: Company IDs - XML value: companyIds: - '643462' - '1042601' - '643223' - '642023' - '26176' - '643886' - '848207' - '741359' - '643768' - '642647' pageNo: 1 totalCount: 10 pageSize: 50 totalPages: 1 DB Person IDs - XML: description: DB Person IDs - XML value: dbPersonIds: - '643462' - '1042601' - '643223' - '642023' - '26176' - '643886' - '848207' - '741359' - '643768' - '642647' pageNo: 1 totalCount: 10 pageSize: 50 totalPages: 1 '401': description: Unauthorized. Access token is missing or invalid. content: application/json: examples: Unauthorized: description: Unauthorized value: status: Authentication Failed - Unauthorized. '404': description: The subscription ID was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Subscription Not Found: description: Subscription Not Found value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Subscription Not Found - XML: description: Subscription Not Found - XML value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/{subscriptionId}/alerts/{alertId}: get: tags: - Subscription API summary: Retrieve a Specific Subscription Alert description: "Retrieve detailed alert updates for a specific subscription using its subscription ID and alert ID. Use\ \ `List Subscription Alerts` API to fetch latest alerts.\n\nThis endpoint returns the specific fields or news categories\ \ that triggered the alert, depending on the type of subscription:\n\n- **company**: Returns a list of company IDs\ \ and the fields that changed (e.g., name, address).\n- **companynews**: Returns company IDs and related news articles\ \ with timestamps.\n- **companyfamilytree**:\n - Identifies companies added to or removed from the family tree.\n\ \ - Includes migration messages if the root company itself was acquired.\n- **dbPerson**: Returns person IDs with\ \ changed fields, as well as detailed employment-level field updates per contact ID.\n\nThe response is paginated\ \ and supports high-volume results (e.g., up to 5,000 entities per page).\n" operationId: getSubscriptionAlertDetails parameters: - name: page in: query description: Page number for pagination. Default is 1. required: false schema: type: integer minimum: 1 default: 1 example: 1 examples: default: value: 1 - name: perPage in: query description: Number of results per page. Default is 5000, maximum is 5000. required: false schema: type: integer minimum: 1 maximum: 5000 default: 5000 example: 10 examples: default: value: 10 - name: subscriptionId in: path description: Unique identifier for the subscription required: true schema: type: string examples: Subscription ID Example: description: Subscription ID Example value: 287ea0c8-99de-4f0c-addc-097f78b48ba6 - name: alertId in: path description: Unique identifier for the alert required: true schema: type: string examples: Alert ID Example: description: Alert ID Example value: '1001' responses: '200': description: Alert details retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/GetAlertDefinitionDTO' examples: Company Subscription: description: Company Subscription value: companyAlertDetails: - companyId: '6265' fields: - employees - companyId: '677586' fields: - employees - companyId: '724368' fields: - companyStatusV2 - revenue - businessStructure - companyStatus - employees - companyId: '751147' fields: - employees - companyId: '25321' fields: - employees - companyId: '15191' fields: - employees - companyId: '712000' fields: - employees - companyId: '966735' fields: - employees - companyId: '2992705' fields: - companyStatusV2 - revenue - businessStructure - companyStatus - companyId: '966833' fields: - employees - companyId: '51212245' fields: - address - businessStructure - employeeRange - companyStatus - employees - companyId: '1040416' fields: - employees subscriptionType: company pageNo: 1 pageSize: 100 totalCount: 12 totalPages: 1 Company FamilyTree Subscription: description: Company FamilyTree Subscription value: companyFamilyTreeAlertDetails: - companyId: 3224482 companyFamilyTreeChanges: addedCompanies: - 13632710 - companyId: 738676 message: Subscription updated to reflect change in ultimateParentCompanyId 738676 to 728897 companyFamilyTreeChanges: addedCompanies: - 70890552 - 70691787 newUltimateParentCompanyId: 728897 - companyId: 170251 companyFamilyTreeChanges: addedCompanies: - 50218062 - 17639086 - 542141 - 228887064 - 37166 - companyId: 206558 message: Subscription updated to reflect change in ultimateParentCompanyId 206558 to 16266 companyFamilyTreeChanges: addedCompanies: - 5715422 - 3508924 - 16266 newUltimateParentCompanyId: 16266 - companyId: 9958529 companyFamilyTreeChanges: addedCompanies: - 69526170 - companyId: 27879 companyFamilyTreeChanges: addedCompanies: - 10368186 deletedCompanies: - 10368186 subscriptionType: companyfamilytree pageNo: 1 pageSize: 10 totalCount: 6 totalPages: 1 Company News Subscription: description: Company News Subscription value: companyNewsAlertDetails: - companyId: '727291' articleUrl: https://uapi-article.db-data-api-prod.demandbase.com/data/b2b/v1/article/12356799690888 timestamp: '2025-05-22T10:32:04.096+05:30' newsCategories: - RESEARCH_DEVELOPMENT - ACQUISITIONS - companyId: '811797' articleUrl: https://uapi-article.db-data-api-prod.demandbase.com/data/b2b/v1/article/56799755433 timestamp: '2025-05-22T10:38:08.040+05:30' newsCategories: - RESEARCH_DEVELOPMENT - ACQUISITIONS subscriptionType: companynews pageNo: 1 pageSize: 10 totalCount: 2 totalPages: 1 DB Person Subscription: description: DB Person Subscription value: dbPersonAlertDetails: - dbPersonId: '25243' fields: - age - dbPersonId: '87192237' employments: - contactId: '368220796' fields: - email subscriptionType: dbPerson pageNo: 3 pageSize: 2 totalCount: 55 totalPages: 28 application/xml: schema: $ref: '#/components/schemas/GetAlertDefinitionDTO' examples: Company Subscription - XML: description: Company Subscription - XML value: companyAlertDetails: - companyId: '6265' fields: - employees - companyId: '677586' fields: - employees - companyId: '724368' fields: - companyStatusV2 - revenue - businessStructure - companyStatus - employees - companyId: '751147' fields: - employees - companyId: '25321' fields: - employees - companyId: '15191' fields: - employees - companyId: '712000' fields: - employees - companyId: '966735' fields: - employees - companyId: '2992705' fields: - companyStatusV2 - revenue - businessStructure - companyStatus - companyId: '966833' fields: - employees - companyId: '51212245' fields: - address - businessStructure - employeeRange - companyStatus - employees - companyId: '1040416' fields: - employees subscriptionType: company pageNo: 1 pageSize: 100 totalCount: 12 totalPages: 1 Company FamilyTree Subscription - XML: description: Company FamilyTree Subscription - XML value: companyFamilyTreeAlertDetails: - companyId: 3224482 companyFamilyTreeChanges: addedCompanies: - 13632710 - companyId: 738676 message: Subscription updated to reflect change in ultimateParentCompanyId 738676 to 728897 companyFamilyTreeChanges: addedCompanies: - 70890552 - 70691787 newUltimateParentCompanyId: 728897 - companyId: 170251 companyFamilyTreeChanges: addedCompanies: - 50218062 - 17639086 - 542141 - 228887064 - 37166 - companyId: 206558 message: Subscription updated to reflect change in ultimateParentCompanyId 206558 to 16266 companyFamilyTreeChanges: addedCompanies: - 5715422 - 3508924 - 16266 newUltimateParentCompanyId: 16266 - companyId: 9958529 companyFamilyTreeChanges: addedCompanies: - 69526170 - companyId: 27879 companyFamilyTreeChanges: addedCompanies: - 10368186 deletedCompanies: - 10368186 subscriptionType: companyfamilytree pageNo: 1 pageSize: 10 totalCount: 6 totalPages: 1 Company News Subscription - XML: description: Company News Subscription - XML value: companyNewsAlertDetails: - companyId: '727291' articleUrl: https://uapi-article.db-data-api-prod.demandbase.com/data/b2b/v1/article/12356799690888 timestamp: '2025-05-22T10:32:04.096+05:30' newsCategories: - RESEARCH_DEVELOPMENT - ACQUISITIONS - companyId: '811797' articleUrl: https://uapi-article.db-data-api-prod.demandbase.com/data/b2b/v1/article/56799755433 timestamp: '2025-05-22T10:38:08.040+05:30' newsCategories: - RESEARCH_DEVELOPMENT - ACQUISITIONS subscriptionType: companynews pageNo: 1 pageSize: 10 totalCount: 2 totalPages: 1 DB Person Subscription - XML: description: DB Person Subscription - XML value: dbPersonAlertDetails: - dbPersonId: '25243' fields: - age - dbPersonId: '87192237' employments: - contactId: '368220796' fields: - email subscriptionType: dbPerson pageNo: 3 pageSize: 2 totalCount: 55 totalPages: 28 '401': description: Unauthorized. Authentication credentials are missing or invalid. content: application/json: examples: Unauthorized: description: Unauthorized value: status: Authentication Failed - Unauthorized. '404': description: The subscription or alert ID was not found. content: application/json: examples: Subscription Not Found: description: Subscription Not Found value: errorCode: 404-104 errorMessage: Subscription ID does not exist. diagnosticCode: e227ac59-49f8-459e-ab7d-b5b3ce398d21 Alert Not Found: description: Alert Not Found value: errorCode: 404-105 errorMessage: Alert ID does not exist. diagnosticCode: 845778f8-db95-45e3-80ec-5087191264cc application/xml: schema: type: object title: error format: xml examples: Subscription Not Found - XML: description: Subscription Not Found - XML value: errorCode: 404-104 errorMessage: Subscription ID does not exist. diagnosticCode: e227ac59-49f8-459e-ab7d-b5b3ce398d21 Alert Not Found - XML: description: Alert Not Found - XML value: errorCode: 404-105 errorMessage: Alert ID does not exist. diagnosticCode: 845778f8-db95-45e3-80ec-5087191264cc security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/{subscriptionId}/alerts: get: tags: - Subscription API summary: List Subscription Alerts description: 'Retrieve a paginated list of alerts generated for the specified subscription ID. Each alert includes: - `alertId`: unique identifier for the alert - `createdAt`: timestamp of when the alert was generated Results are sorted in descending order of `createdAt` (most recent first). ' operationId: getSubscriptionAlertsList parameters: - name: page in: query description: Page number for pagination. Default is 1. required: false schema: type: integer default: 1 example: 1 examples: default: value: 1 - name: perPage in: query description: Number of results per page. Default is 10, maximum is 50. required: false schema: type: integer default: 10 example: 10 examples: default: value: 10 - name: subscriptionId in: path description: Unique identifier for the subscription required: true schema: type: string example: 287ea0c8-99de-4f0c-addc-097f78b48ba6 examples: default: value: 287ea0c8-99de-4f0c-addc-097f78b48ba6 responses: '200': description: Subscription alert details list fetched successfully content: application/json: schema: $ref: '#/components/schemas/GetAlertsResponseDTO' examples: Success Response: description: Success Response value: alerts: - alertId: 3 createdAt: '2025-05-23T15:25:56.202+05:30' pageNo: 1 pageSize: 2 totalCount: 1 totalPages: 1 application/xml: schema: $ref: '#/components/schemas/GetAlertsResponseDTO' examples: Success Response: description: Success Response value: alerts: - alertId: 3 createdAt: '2025-05-23T15:25:56.202+05:30' pageNo: 1 pageSize: 2 totalCount: 1 totalPages: 1 '401': description: Unauthorized because the user is not authenticated. content: application/json: examples: UnauthorizedResponse: description: UnauthorizedResponse value: status: Authentication Failed - Unauthorized. '404': description: Not Found content: application/json: examples: SubscriptionNotFoundErrorResponse: description: SubscriptionNotFoundErrorResponse value: errorCode: 404-104 errorMessage: Subscription ID does not exist. diagnosticCode: e227ac59-49f8-459e-ab7d-b5b3ce398d21 application/xml: schema: type: object title: error format: xml examples: SubscriptionNotFoundErrorResponseXml: description: SubscriptionNotFoundErrorResponseXml value: errorCode: 404-104 errorMessage: Subscription ID does not exist. diagnosticCode: e227ac59-49f8-459e-ab7d-b5b3ce398d21 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/{subscriptionId}: get: tags: - Subscription API summary: Retrieve Subscription Details description: 'Fetch detailed information for a specific subscription using its subscription ID. The response includes: - Subscription type (e.g., company, dbPerson, companyNews, companyFamilyTree) - Frequency and start date - Next scheduled notification time - Webhook configuration details (if applicable) - Tracked fields or subscribed news categories, depending on the subscription type ' operationId: getSubscriptionDetails parameters: - name: subscriptionId in: path description: Unique identifier for the subscription required: true schema: type: string example: 287ea0c8-99de-4f0c-addc-097f78b48ba6 examples: default: value: 287ea0c8-99de-4f0c-addc-097f78b48ba6 responses: '200': description: Subscription details retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/SubscriptionDetailsResponse' examples: Company Subscription - JSON: description: Company Subscription - JSON value: startDate: '2025-06-25' createdAt: '2025-06-25T09:02:56.994Z' frequency: 2d fields: - revenue - phone - websites - name webhook: url: http://www.your-domain.com/webhook status: VERIFICATION_RUNNING signingSecret: secret-key subscriptionType: company name: testSubscription description: Testing Bulk Jobs nextFireTime: '2025-05-22T00:00:00.000Z' application/xml: schema: $ref: '#/components/schemas/SubscriptionDetailsResponse' examples: Company Subscription - XML: description: Company Subscription - XML value: startDate: '2025-06-25' createdAt: '2025-06-25T09:02:56.994Z' frequency: 2d fields: - revenue - phone - websites - name webhook: url: http://www.your-domain.com/webhook status: VERIFICATION_RUNNING signingSecret: secret-key subscriptionType: company name: testSubscription description: Testing Bulk Jobs nextFireTime: '2025-05-22T00:00:00.000Z' '400': description: The subscription exists but is not accessible by the current user. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized Subscription Access: description: Unauthorized Subscription Access value: errorCode: 400-140 errorMessage: Subscription belongs to a different user. You do not have access. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized Subscription Access - XML: description: Unauthorized Subscription Access - XML value: errorCode: 400-140 errorMessage: Subscription belongs to a different user. You do not have access. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 '401': description: Unauthorized. The request lacks valid authentication credentials. content: application/json: examples: Unauthorized Access: description: Unauthorized Access value: status: Authentication Failed - Unauthorized. '404': description: The subscription ID was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Subscription Not Found: description: Subscription Not Found value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Subscription Not Found - XML: description: Subscription Not Found - XML value: errorCode: 404-100 errorMessage: Invalid ID, record not found. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment delete: tags: - Subscription API summary: Delete a Subscription description: 'Permanently delete a subscription using its subscription ID. This operation removes the subscription from the system and halts all future notifications or alerts related to it. ' operationId: deleteSubscription parameters: - name: subscriptionId in: path description: Unique identifier for the subscription required: true schema: type: string example: 287ea0c8-99de-4f0c-addc-097f78b48ba6 examples: default: value: 287ea0c8-99de-4f0c-addc-097f78b48ba6 responses: '200': description: Subscription was deleted successfully. content: application/json: schema: $ref: '#/components/schemas/SubscriptionDeleteResponse' examples: Success - JSON: description: Success - JSON value: subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 message: Subscription deleted successfully application/xml: schema: $ref: '#/components/schemas/SubscriptionDeleteResponse' examples: Success - XML: description: Success - XML value: subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 message: Subscription deleted successfully '401': description: Unauthorized. The request lacks valid authentication credentials. content: application/json: examples: Unauthorized Access: description: Unauthorized Access value: status: Authentication Failed - Unauthorized. '404': description: Subscription not found or already deleted. content: application/json: examples: Subscription Not Found: description: Subscription Not Found value: errorCode: 404-104 errorMessage: Subscription ID does not exist. diagnosticCode: 7d31a7f2-6b68-45fe-bccc-0f147d8313dc application/xml: examples: Subscription Not Found - XML: description: Subscription Not Found - XML value: "\n \n 26002d98-ab9c-4803-a80c-0c5ad0685188\n\ \ 404-104\n Subscription ID does not exist.\n\ \ \n" security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/jobs: get: tags: - Subscription API summary: List Subscription Jobs description: 'Retrieve a paginated list of all subscription jobs created by your tenant. Results are returned in descending order by creation time (`createdAt`). You can apply filters based on time period, date range, job status, and job type. Period can be specified as `day`, `month`, or `year`. If `day` is selected, you can specify a range of days (e.g., 2024-09-01 to 2024-09-07). For `month`, you can specify a range of months (e.g., 2024-09 to 2024-10). For `year`, you can specify a range of years (e.g., 2024 to 2025 for the entire year). ' operationId: subscriptionJobsListFetch parameters: - name: period in: query description: 'The time period type you want to filter jobs by. Valid values: - day - month - year ' required: false schema: type: string enum: - day - month - year description: 'The time period type you want to filter jobs by. Valid values: - day - month - year ' example: month examples: default: value: month - name: start in: query description: 'Start day/month/year(inclusive) for the selected period. Start format depends on the period type: - day: YYYY-MM-DD (e.g., 2024-09-01) - month: YYYY-MM (e.g., 2024-09) - year: YYYY (e.g., 2024) ' required: false schema: type: string description: 'Start day/month/year(inclusive) for the selected period. Start format depends on the period type: - day: YYYY-MM-DD (e.g., 2024-09-01) - month: YYYY-MM (e.g., 2024-09) - year: YYYY (e.g., 2024) ' example: 2024-09 examples: default: value: 2024-09 - name: end in: query description: 'End day/month/year(inclusive) for the selected period. End format depends on the period type: - day: YYYY-MM-DD (e.g., 2024-09-30) - month: YYYY-MM (e.g., 2024-10) - year: YYYY (e.g., 2025) ' required: false schema: type: string description: 'End day/month/year(inclusive) for the selected period. End format depends on the period type: - day: YYYY-MM-DD (e.g., 2024-09-30) - month: YYYY-MM (e.g., 2024-10) - year: YYYY (e.g., 2025) ' example: 2024-10 examples: default: value: 2024-10 - name: jobStatus in: query description: 'Filter jobs by their status. Valid values: - failed - accepted - processing - finished ' required: false schema: type: string enum: - failed - accepted - processing - finished description: 'Filter jobs by their status. Valid values: - failed - accepted - processing - finished ' example: processing examples: default: value: processing - name: jobType in: query description: 'Type of subscription job to filter by. Valid values: - notificationSubscriptionCreate - notificationSubscriptionUpdate ' required: false schema: type: string enum: - notificationSubscriptionCreate - notificationSubscriptionUpdate description: 'Type of subscription job to filter by. Valid values: - notificationSubscriptionCreate - notificationSubscriptionUpdate ' example: notificationSubscriptionCreate examples: default: value: notificationSubscriptionCreate - name: page in: query description: Page number to retrieve. Must be 1 or higher. required: false schema: type: string description: Page number to retrieve. Must be 1 or higher. example: '2' examples: default: value: '2' - name: perPage in: query description: Number of results per page (max 50). required: false schema: type: string description: Number of results per page (max 50). example: '25' examples: default: value: '25' responses: '200': description: List of subscription jobs returned successfully. content: application/json: schema: $ref: '#/components/schemas/SubscriptionJobsListResponseDTO' examples: Success - JSON: summary: Successful response with job data description: Success - JSON value: subscriptionJobs: - jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 jobType: notificationSubscriptionCreate jobStatus: accepted createdAt: '2025-02-02T16:44:47.295360Z' - jobId: blpabc9bgs2273jnufj5-4e2b-4c2a-9b1a-1a2b3c4d5e6f subscriptionId: u572ptlm8hugfbmeiqh6-7c8d-4e2b-9b1a-1a2b3c4d5e6f jobType: notificationSubscriptionCreate jobStatus: finished createdAt: '2025-03-19T06:11:41.899058Z' - jobId: fsg6131mstfi0fkvsfeq-8f7e-4d2b-9b1a-1a2b3c4d5e6f subscriptionId: n39mbqc1nplo6nevgjj8-9a8b-4c2a-9b1a-1a2b3c4d5e6f jobType: notificationSubscriptionUpdate jobStatus: finished createdAt: '2025-03-19T06:13:12.787300Z' pageNo: 1 pageSize: 10 totalCount: 879 application/xml: schema: $ref: '#/components/schemas/SubscriptionJobsListResponseDTO' examples: Success - XML: description: Success - XML value: subscriptionJobs: - jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 jobType: notificationSubscriptionCreate jobStatus: accepted createdAt: '2025-02-02T16:44:47.295360Z' - jobId: blpabc9bgs2273jnufj5-4e2b-4c2a-9b1a-1a2b3c4d5e6f subscriptionId: u572ptlm8hugfbmeiqh6-7c8d-4e2b-9b1a-1a2b3c4d5e6f jobType: notificationSubscriptionCreate jobStatus: finished createdAt: '2025-03-19T06:11:41.899058Z' - jobId: fsg6131mstfi0fkvsfeq-8f7e-4d2b-9b1a-1a2b3c4d5e6f subscriptionId: n39mbqc1nplo6nevgjj8-9a8b-4c2a-9b1a-1a2b3c4d5e6f jobType: notificationSubscriptionUpdate jobStatus: finished createdAt: '2025-03-19T06:13:12.787300Z' pageNo: 1 pageSize: 10 totalCount: 879 '400': description: Invalid input or unsupported query parameters. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Missing Period: description: Missing Period value: errorCode: 400-172 errorMessage: Invalid set of period params, either send period, start and end or none of them. diagnosticCode: 29cc1814-a86a-440d-af76-5ce881fad9db Invalid Date Format: description: Invalid Date Format value: errorCode: 400-174 errorMessage: Invalid date format. diagnosticCode: 60430752-6639-46a8-acb6-1741629b654f Invalid Start Date: description: Invalid Start Date value: errorCode: 400-179 errorMessage: Invalid start date. diagnosticCode: 7f67713b-1d70-482c-acc9-823d12877891 Invalid Period: description: Invalid Period value: errorCode: 400-173 errorMessage: 'Invalid period type. Valid values are: day, month and year.' diagnosticCode: 6345d682-b017-46ee-88ca-edd051b4e790 Invalid Day Range: description: Invalid Day Range value: errorCode: 400-175 errorMessage: Difference between start date and end date should be less than 90 days. diagnosticCode: 5a5b0774-80f8-4649-ac69-8235992f676a Invalid Month Range: description: Invalid Month Range value: errorCode: 400-176 errorMessage: Difference between start date and end date should be less than 18 months. diagnosticCode: b99f789d-885c-4e62-adac-f92dbcb1d74c Invalid Job Status: description: Invalid Job Status value: errorCode: 400-177 errorMessage: 'Invalid job status. Valid values are: accepted, processing, finished and failed' diagnosticCode: 5bf08aab-850e-44bd-9cc5-93138afa99cd Invalid Job Types: description: Invalid Job Types value: errorCode: 400-178 errorMessage: 'Invalid job type. Valid values are: notificationSubscriptionCreate and notificationSubscriptionUpdate' diagnosticCode: f84010f1-2e89-4d2f-9ebe-921b4a74e0d7 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Missing Period XML: description: Missing Period XML value: errorCode: 400-172 errorMessage: Invalid set of period params, either send period, start and end or none of them. diagnosticCode: 29cc1814-a86a-440d-af76-5ce881fad9db Invalid Date Format XML: description: Invalid Date Format XML value: errorCode: 400-174 errorMessage: Invalid date format. diagnosticCode: 60430752-6639-46a8-acb6-1741629b654f Invalid Start Date XML: description: Invalid Start Date XML value: errorCode: 400-179 errorMessage: Invalid start date. diagnosticCode: 7f67713b-1d70-482c-acc9-823d12877891 Invalid Period XML: description: Invalid Period XML value: errorCode: 400-173 errorMessage: 'Invalid period type. Valid values are: day, month and year.' diagnosticCode: 6345d682-b017-46ee-88ca-edd051b4e790 Invalid Day Range XML: description: Invalid Day Range XML value: errorCode: 400-175 errorMessage: Difference between start date and end date should be less than 90 days. diagnosticCode: 5a5b0774-80f8-4649-ac69-8235992f676a Invalid Month Range XML: description: Invalid Month Range XML value: errorCode: 400-176 errorMessage: Difference between start date and end date should be less than 18 months. diagnosticCode: b99f789d-885c-4e62-adac-f92dbcb1d74c Invalid Job Status XML: description: Invalid Job Status XML value: errorCode: 400-177 errorMessage: 'Invalid job status. Valid values are: accepted, processing, finished and failed' diagnosticCode: 5bf08aab-850e-44bd-9cc5-93138afa99cd Invalid Job Types XML: description: Invalid Job Types XML value: errorCode: 400-178 errorMessage: 'Invalid job type. Valid values are: notificationSubscriptionCreate and notificationSubscriptionUpdate' diagnosticCode: f84010f1-2e89-4d2f-9ebe-921b4a74e0d7 '401': description: Authentication is required or token is invalid. content: application/json: examples: Unauthorized: description: Unauthorized value: status: Authentication Failed - Unauthorized. security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions/job/{jobId}: get: tags: - Subscription API summary: Check Subscription Job Status description: 'Retrieve the current status of a bulk subscription job using its unique job ID. After you submit a create or update subscription job request, you’ll receive a job ID. This endpoint allows you to monitor that job’s progress and determine whether it has completed successfully. If the job completes, the response will include the generated subscriptionId—which you can use to manage the subscription. If the job fails, the response will contain error details explaining what went wrong. ' operationId: getSubscriptionJobStatus parameters: - name: jobId in: path description: Job ID required: true schema: type: string example: ln63a2kv6k2cm09cubar examples: default: value: ln63a2kv6k2cm09cubar responses: '200': description: Job status retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/BulkSubscriptionJobStatusResponseDTO' examples: Success - JSON: summary: A successful response showing job status description: Success - JSON value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 jobStatus: finished totalEntitiesProcessed: 5000 jobType: notificationSubscriptionCreate subscriptionType: company application/xml: schema: $ref: '#/components/schemas/BulkSubscriptionJobStatusResponseDTO' examples: Success - XML: summary: A successful XML response description: Success - XML value: jobId: 39ddf756-c04e-465c-b8c1-8d2c2be0abed subscriptionId: 63914a27-a5ca-4fdf-80b0-ffc985f53c14 jobStatus: finished totalEntitiesProcessed: 5000 jobType: notificationSubscriptionCreate subscriptionType: company '400': description: Invalid job ID or request format. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Bad Request - Invalid Job ID: description: Bad Request - Invalid Job ID 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: description: Bad Request XML value: errorCode: 400-139 errorMessage: Job Id should not be empty. diagnosticCode: 15d8774c-f2a1-4352-ba65-386bf8d04ecf '401': description: Unauthorized. Access token missing or invalid. content: application/json: examples: Unauthorized: description: Unauthorized value: status: Authentication Failed - Unauthorized. '404': description: The specified job ID was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Job Not Found - JSON: description: Job Not Found - JSON 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: Job Not Found - XML: description: Job Not Found - XML value: errorCode: 404-101 errorMessage: Invalid job ID, job not found. diagnosticCode: 92ce43d0-a861-4394-b44d-420d114dcfcb security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /subscriptions: get: tags: - Subscription API summary: List Subscriptions description: 'Retrieve a list of all subscriptions associated with your tenant. You can filter results by one or more subscription types and paginate through the results. Results are returned in pages, with support for customizing the number of items per page. ' operationId: getAllSubscriptionsByClientID parameters: - name: subscriptionType in: query description: 'Comma-separated list of subscription types to filter the results. Valid values include: company, companyNews, dbPerson, companyFamilyTree.' required: false schema: type: string example: company,companyNews examples: default: value: company,companyNews - name: page in: query description: Page number for pagination. Default is 1. required: false schema: type: integer default: 1 example: 1 examples: default: value: 1 - name: perPage in: query description: Number of results per page. Default is 10, maximum is 50. required: false schema: type: integer default: 10 example: 10 examples: default: value: 10 responses: '200': description: List of subscriptions retrieved successfully. content: application/json: schema: $ref: '#/components/schemas/SubscriptionListResponse' examples: Success - JSON: description: Success - JSON value: subscriptions: - name: Subscription Name description: Subscription Description subscriptionType: company subscriptionId: '12345' pageNo: 1 pageSize: 10 totalCount: 1 application/xml: schema: $ref: '#/components/schemas/SubscriptionListResponse' examples: Success - XML: description: Success - XML value: subscriptions: - name: Subscription Name description: Subscription Description subscriptionType: company subscriptionId: '12345' pageNo: 1 pageSize: 10 totalCount: 1 '400': description: Results per page value is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Invalid Results Per Page: description: Invalid Results Per Page value: errorCode: 404-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 application/xml: schema: $ref: '#/components/schemas/ErrorResponse' examples: Invalid Results Per Page - XML: description: Invalid Results Per Page - XML value: errorCode: 404-101 errorMessage: perPage must be between 1 and 50. diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment /reference/{object}: get: tags: - Reference Tables summary: Get reference data for an object description: 'Returns tenant-specific reference values for the requested object. This B2B API route is backed by the Data Export API reference service and accepts B2B API credentials. Object names are case-insensitive.' operationId: getReferenceData parameters: - name: object in: path description: Reference object to retrieve. required: true schema: type: string enum: - IdealBuyingGroup - IdealBuyingGroupPersonaRole - BuyerRole - Persona - KeywordSet - KeywordSetMember - JobLevel - JobFunction - TopLevelIndustry - SubIndustry example: JobLevel responses: '200': description: Reference data fetched successfully. content: application/json: schema: $ref: '#/components/schemas/ReferenceDataResponseDTO' examples: Job Levels Response: description: Job-level reference values. value: objectType: JobLevel data: - id: 1 name: C Level '400': description: The requested reference object is invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Invalid Object Response: description: Invalid reference object. value: errorCode: 400-154 errorMessage: Path parameter 'refObj' must be one of 'IdealBuyingGroup', 'IdealBuyingGroupPersonaRole', 'BuyerRole', 'Persona', 'KeywordSet', 'KeywordSetMember', 'JobLevel', 'JobFunction', 'TopLevelIndustry' or 'SubIndustry' diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 '401': description: Unauthorized because the user is not authenticated. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedResponse' examples: Unauthorized Response: description: Authentication failed. value: status: Authentication Failed - Unauthorized. '403': description: The API key does not have permission to access this resource. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Forbidden Response: description: The API key does not include B2B API access. value: errorCode: 403-102 errorMessage: API Key does not have privilege to access the requested resource diagnosticCode: ccb84f25-236e-4bcf-be01-88b7dd673fb4 security: - bearerAuth: [] servers: - url: https://uapi.demandbase.com/data/b2b/v1 description: Server URL in Production environment tags: - name: Sync API description: Synchronous company, contact, matching, news, and logo operations. - name: Asynchronous (Batch) API description: Asynchronous bulk jobs for high-volume data retrieval and matching. - name: Subscription API description: Subscription creation, updates, status, alerts, and lifecycle operations. - name: Reference Tables description: Reference schemas and allowed values used by the B2B API. components: securitySchemes: bearerAuth: type: http description: '[How To Generate Bearer Tokens](https://developer.demandbase.com/reference/generate_access_token)' scheme: bearer examples: CompanyDetailsResponse: description: Company Details Response value: companyId: 726263 companyName: Microsoft Corporation companyType: Public companyStatus: Operating tickers: - tickerName: MSFT exchange: NASD classification: primaryBusiness: industry: Computer Software industryCode: '8' secondaryBusinesses: - industry: Computer Software industryCode: '8' subIndustry: Enterprise Resource Planning Software subIndustryCode: '8_32' address: street: One Microsoft Way city: Redmond state: WA zip: 98052-6399 country: US latitude: '47.6400493830442' longitude: '-122.129796892405' phone: +1 425 882 8080 revenue: 245122 revenueCurrency: USD employeeCount: 228000 sic: '7371' sicDescription: Services-Computer Programming Services naics: '5132' naicsDescription: Software Publishers financialYearEnd: '6' equifaxId: 049615062 companyTaxId: '911144442' britishSics: - britishSic: '58290' description: Other software publishing - britishSic: '46510' description: Wholesale of computers, computer peripheral equipment and software foundedIn: '1975' socialHandles: twitter: https://twitter.com/microsoftindia facebook: https://www.facebook.com/microsoft blog: https://news.microsoft.com/feed/ linkedIn: https://www.linkedin.com/company/microsoft siteTypes: - Uncategorized siteCount: 276 siteLocationCount: 82 businessStructure: Global Parent websites: - https://www.microsoft.com/en-us/ CompanyFamilyTreeResponse: description: Company Family Tree Response value: companyId: 726263 companyName: Microsoft Corporation companyType: Public companyStatus: Operating tickers: - tickerName: MSFT exchange: NASD classification: primaryBusiness: industry: Computer Software industryCode: '8' secondaryBusinesses: - industry: Computer Software industryCode: '8' subIndustry: Enterprise Resource Planning Software subIndustryCode: '8_32' address: street: One Microsoft Way city: Redmond state: WA zip: 98052-6399 country: US latitude: '47.6400493830442' longitude: '-122.129796892405' phone: +1 425 882 8080 revenue: 245122 revenueCurrency: USD employeeCount: 228000 sic: '7371' sicDescription: Services-Computer Programming Services naics: '5132' naicsDescription: Software Publishers financialYearEnd: '6' equifaxId: 049615062 companyTaxId: '911144442' britishSics: - britishSic: '58290' description: Other software publishing - britishSic: '46510' description: Wholesale of computers, computer peripheral equipment and software foundedIn: '1975' socialHandles: twitter: https://twitter.com/microsoftindia facebook: https://www.facebook.com/microsoft blog: https://news.microsoft.com/feed/ linkedIn: https://www.linkedin.com/company/microsoft siteTypes: - Uncategorized siteCount: 276 siteLocationCount: 82 businessStructure: Global Parent websites: - https://www.microsoft.com/en-us/ familyTree: company: companyId: 1 name: Microsoft city: Redmond state: WA country: US children: - company: companyId: 2 name: Microsoft India city: Bangalore state: KA country: IN children: - company: companyId: 3 name: Microsoft India Pvt Ltd city: Bangalore state: KA country: IN acquisitions: companies: - companyId: 2 name: Microsoft India city: Bangalore state: KA country: IN CompanyCompetitorsResponse: description: Company Competitors Response value: companyId: 726263 companyName: Microsoft Corporation companyType: Public companyStatus: Operating tickers: - tickerName: MSFT exchange: NASD classification: primaryBusiness: industry: Computer Software industryCode: '8' secondaryBusinesses: - industry: Computer Software industryCode: '8' subIndustry: Enterprise Resource Planning Software subIndustryCode: '8_32' address: street: One Microsoft Way city: Redmond state: WA zip: 98052-6399 country: US latitude: '47.6400493830442' longitude: '-122.129796892405' phone: +1 425 882 8080 revenue: 245122 revenueCurrency: USD employeeCount: 228000 sic: '7371' sicDescription: Services-Computer Programming Services naics: '5132' naicsDescription: Software Publishers financialYearEnd: '6' equifaxId: 049615062 companyTaxId: '911144442' britishSics: - britishSic: '58290' description: Other software publishing - britishSic: '46510' description: Wholesale of computers, computer peripheral equipment and software foundedIn: '1975' socialHandles: twitter: https://twitter.com/microsoftindia facebook: https://www.facebook.com/microsoft blog: https://news.microsoft.com/feed/ linkedIn: https://www.linkedin.com/company/microsoft siteTypes: - Uncategorized siteCount: 276 siteLocationCount: 82 businessStructure: Global Parent websites: - https://www.microsoft.com/en-us/ competitors: - name: Red Hat Inc city: Raleigh state: NC country: US companyId: 732237 - name: Adobe Systems Incorporated city: San Jose state: CA country: US companyId: 724292 CompanyInstalledTechResponse: description: Company Installed Tech Response value: companyId: 726263 companyName: Microsoft Corporation companyType: Public companyStatus: Operating tickers: - tickerName: MSFT exchange: NASD classification: primaryBusiness: industry: Computer Software industryCode: '8' secondaryBusinesses: - industry: Computer Software industryCode: '8' subIndustry: Enterprise Resource Planning Software subIndustryCode: '8_32' address: street: One Microsoft Way city: Redmond state: WA zip: 98052-6399 country: US latitude: '47.6400493830442' longitude: '-122.129796892405' phone: +1 425 882 8080 revenue: 245122 revenueCurrency: USD employeeCount: 228000 sic: '7371' sicDescription: Services-Computer Programming Services naics: '5132' naicsDescription: Software Publishers financialYearEnd: '6' equifaxId: 049615062 companyTaxId: '911144442' britishSics: - britishSic: '58290' description: Other software publishing - britishSic: '46510' description: Wholesale of computers, computer peripheral equipment and software - britishSic: '62011' description: Ready-made interactive leisure and entertainment software development - britishSic: '58210' description: Publishing of computer games foundedIn: '1975' socialHandles: twitter: https://twitter.com/microsoftindia facebook: https://www.facebook.com/microsoft blog: https://news.microsoft.com/feed/ linkedIn: https://www.linkedin.com/company/microsoft siteTypes: - Uncategorized siteCount: 276 siteLocationCount: 82 businessStructure: Global Parent websites: - https://www.microsoft.com/en-us/ techUsed: categories: - categoryId: '52' categoryName: AR/VR subCategories: - subCategoryId: '5000773' subCategoryName: AR/VR Wearable products: - productId: DM17112 productName: Hololens2 - productId: DM10556 productName: Oculus Rift - subCategoryId: '5000160' subCategoryName: Augmented Reality Software products: - productId: DM10598 productName: Microsoft Dynamics 365 Product Visualize - subCategoryId: '5000388' subCategoryName: Virtual Reality Software products: - productId: DM02373 productName: Cryengine - categoryId: '61' categoryName: Analytics subCategories: - subCategoryId: '5000076' subCategoryName: Business Intelligence Software products: - productId: DM01069 productName: Axio - productId: DM02743 productName: Domo - productId: DM12976 productName: Halo - productId: DM05198 productName: Kxen - productId: DM05911 productName: Microsoft Power Bi - productId: DM12721 productName: Nicepeopleatwork - productId: DM07982 productName: SAP Visual Intelligence - productId: DM09374 productName: Twitter Website Universal Tag - subCategoryId: '5000854' subCategoryName: Data Science and Machine Learning products: - productId: DM20720 productName: Google Cloud AI Platform - subCategoryId: '5000506' subCategoryName: Data Virtualization Software products: - productId: DM12093 productName: Grafana - subCategoryId: '5000020' subCategoryName: Enterprise Search Software products: - productId: DM02319 productName: Coveo - productId: DM02928 productName: Elasticsearch - productId: DM07989 productName: SAS - subCategoryId: '5000857' subCategoryName: Image and Video Analysis products: - productId: DM20735 productName: Google Cloud Translation API - subCategoryId: '5000482' subCategoryName: Information Technology Management products: - productId: DM03655 productName: Gist - subCategoryId: '5000033' subCategoryName: Other Analytics Software products: - productId: DM16925 productName: ELK Stack - productId: DM17008 productName: Google Crashlytics - productId: DM20375 productName: Microsoft Azure Data Explorer - subCategoryId: '5000078' subCategoryName: Predictive Analytics Software products: - productId: DM04367 productName: IBM Spss - productId: DM04631 productName: Innovyze - productId: DM05089 productName: Kaggle - subCategoryId: '5000232' subCategoryName: Professional Services products: - productId: DM01294 productName: Bloomberg - productId: DM09095 productName: Thomson Reuters - subCategoryId: '5000365' subCategoryName: Reporting products: - productId: DM17811 productName: Servicenow Reporting - subCategoryId: '5000552' subCategoryName: Social Media Marketing products: - productId: DM13407 productName: Socialbakers - productId: DM15002 productName: Talkwalker CompanyLogosResponse: description: Company Logos Response value: companyId: 578458 companyName: Analysis Group, Inc. companyType: Private companyStatus: Operating tickers: [] classification: primaryBusiness: industry: Corporate Services industryCode: '229' subIndustry: Management Consulting subIndustryCode: '257' secondaryBusinesses: [] address: street: 111 Huntington Avenue Tenth Floor city: Boston state: MA zip: 02199 country: US phone: +1 617 425 8000 revenue: 43.75 revenueCurrency: USD employeeCount: 500 sic: '8742' sicDescription: Services-Management Consulting Services naics: '541611' naicsDescription: Administrative Management and General Management Consulting Services equifaxId: 049615062 britishSics: - britishSic: '71122' description: Engineering related scientific and technical consulting activities - britishSic: '70229' description: Management consultancy activities other than financial management foundedIn: '1981' socialHandles: twitter: https://twitter.com/analysisgroup facebook: https://www.facebook.com/analysisgroup linkedIn: https://www.linkedin.com/company/analysis-group diversity: gender: Female ethnicity: African American certifications: wbe: true mbe: true vbe: true disabled: false dbe: true lgbt: false siteTypes: - Uncategorized businessStructure: Independent websites: - https://www.analysisgroup.com/ companyLogos: - https://uapi.demandbase.com/data/b2b/v1/company/578458/logos/100 - https://uapi.demandbase.com/data/b2b/v1/company/578458/logos/200 - https://uapi.demandbase.com/data/b2b/v1/company/578458/logos/400 schemas: ContactSearchRequestDTO: type: object properties: firstName: type: string example: John lastName: type: string example: Doe email: type: string example: john.doe@example.com contactCity: type: string example: New York contactState: type: string example: NY contactCountry: type: string description: Country Id example: '1' titles: type: array items: type: string example: - Manager - Director companyName: type: string example: Demandbase companyCity: type: string example: San Francisco companyState: type: string example: CA companyCountry: type: string description: Country Id example: '1' companyWebsite: type: string example: demandbase.com jobLevels: type: array items: type: string example: - '1' - '2' jobFunctions: type: array items: type: string example: - '1' - '2' active: type: string default: 'true' emailRequired: type: string default: 'false' phoneRequired: type: string default: 'false' phoneType: type: string enum: - direct - corp - mobile - any example: mobile emailValidationStatus: type: string example: ValidEmail minContactQualityScore: type: string example: A companyIdsToInclude: type: array items: type: string default: - '726263' example: - '726263' - '726256' contactIdsToExclude: type: array items: type: string example: - '726263' - '726256' primaryIndustryOnly: type: string default: 'false' sortBy: type: string example: companyName sortOrder: type: string enum: - asc - desc example: asc maxEmployees: type: string example: '100' minEmployees: type: string example: '10' industries: type: array items: type: string example: - '1' - '2' subIndustries: type: array items: type: string example: - '1_1' - '2_1' page: type: string default: '1' perPage: type: string default: '10' ContactSearchResponseDTO: type: object properties: contactResults: type: array items: $ref: '#/components/schemas/ContactResultsDTO' xml: name: contactResult totalCount: type: integer format: int64 pageNo: type: integer format: int64 pageSize: type: integer format: int64 xml: name: contactResults ContactResultsDTO: type: object properties: dbPersonDetails: $ref: '#/components/schemas/PersonDTO' employmentDetails: $ref: '#/components/schemas/EmploymentDTO' PersonDTO: type: object properties: dbPersonId: type: integer format: int64 firstName: type: string lastName: type: string country: type: string city: type: string EmploymentDTO: type: object properties: contactId: type: integer format: int64 companyId: type: integer format: int64 companyName: type: string titles: type: array items: type: string xml: name: title xml: wrapped: true jobLevels: type: array items: $ref: '#/components/schemas/JobLevelsV2' xml: wrapped: true jobFunctions: type: array items: $ref: '#/components/schemas/JobFunctionsV2' xml: wrapped: true active: type: boolean hasPhone: type: boolean hasEmail: type: boolean contactQualityScore: type: string JobLevelsV2: type: object properties: id: type: string name: type: string JobFunctionsV2: type: object properties: id: type: string name: type: string ErrorResponse: type: object properties: errorCode: type: string errorMessage: type: string diagnosticCode: type: string xml: name: error UnauthorizedResponse: type: object properties: status: type: string example: Authentication Failed - Unauthorized. CompanySearchRequestDTO: type: object properties: name: type: string example: Demandbase website: type: string example: demandbase.com ticker: type: string example: MSFT state: type: string example: CA areaCodes: type: array items: type: string example: - '415' - '628' cities: type: string example: San Francisco,New York businessTypes: type: array items: type: string enum: - public - private - school - government - organization example: - public - private country: type: string description: Country Id example: '1' companyStatus: type: array items: type: string enum: - unassigned - operating - non-operating - acquired - liquidating - outOfBusiness example: - unassigned - operating fiscalYearEnd: type: string example: january fortuneRanking: type: string enum: - fortune500 - fortune1000 example: fortune500 industries: type: array items: type: string example: - '1' - '2' subIndustries: type: array items: type: string example: - '1_1' - '2_1' keywords: type: array items: type: string example: - keyword1 - keyword2 minEmployees: type: string example: '10' maxEmployees: type: string example: '1000' minRevenue: type: string description: Minimum annual revenue in millions. example: '1' maxRevenue: type: string description: Maximum annual revenue in millions. example: '50' naics: type: array items: type: string example: - '511210' - 5415* sicCodes: type: array items: type: string example: - '7375' - '5678' regions: type: array items: type: string enum: - asia - africa - europe - middleeast - northamerica - oceania - southamerica example: - asia - africa street: type: array items: type: string example: - 123 Main St - 456 Elm St companyType: type: array items: type: string enum: - public - private - government - organization example: - public - private businessStructure: type: string enum: - uncategorized - globalParent - subsidiary - group - branch - independent example: globalParent zipCodes: type: array items: type: string example: - '500001' - '500002' sortBy: type: string example: companyRevenue sortOrder: type: string enum: - asc - desc example: asc primaryIndustryOnly: type: string default: 'false' primarySICOnly: type: string default: 'false' gender: type: string enum: - male - female example: male ethnicity: type: array items: type: string enum: - '1' - '2' - '3' - '4' - '5' - '6' - '7' example: - '1' - '2' wbe: type: string example: 'true' vbe: type: string example: 'true' dbe: type: string example: 'true' mbe: type: string example: 'true' lgbt: type: string example: 'true' disabled: type: string example: 'true' companyIdsToExclude: type: array items: type: string example: - '726263' - '726256' page: type: string example: '1' perPage: type: string example: '10' CompanySearchResponseDTO: type: object properties: companies: type: array items: $ref: '#/components/schemas/CompanyDTO' xml: name: company totalCount: type: integer format: int64 pageNo: type: integer format: int64 pageSize: type: integer format: int64 xml: name: companies CompanyDTO: type: object properties: name: type: string city: type: string state: type: string country: type: string companyId: type: integer format: int32 ContactFetchResponseDTO: type: object properties: dbPersonDetails: $ref: '#/components/schemas/DBPersonDetails' employmentDetails: $ref: '#/components/schemas/EmploymentDetails' employmentHistoryList: type: array items: $ref: '#/components/schemas/Employments' xml: wrapped: true xml: name: contact DBPersonDetails: type: object properties: dbPersonId: type: integer format: int32 firstName: type: string middleName: type: string lastName: type: string age: type: integer format: int32 mobileNumber: type: string educationList: type: array items: $ref: '#/components/schemas/Education' xml: wrapped: true imageUrl: type: string socialHandles: $ref: '#/components/schemas/SocialHandles' address: $ref: '#/components/schemas/AddressDTO' Education: type: object properties: degree: type: string major: type: string university: type: string SocialHandles: type: object properties: twitter: type: string facebook: type: string linkedIn: type: string AddressDTO: type: object properties: street: type: string city: type: string state: type: string stateCode: type: string zip: type: string country: type: string countryCode: type: string latitude: type: string longitude: type: string area: type: string CompanyAddressDTO: type: object description: Company address. State and country are returned as codes when available. properties: street: type: string city: type: string state: type: string description: State or province code. example: WA zip: type: string country: type: string description: ISO 3166-1 alpha-2 country code. example: US latitude: type: string longitude: type: string area: type: string EmploymentDetails: type: object properties: contactId: type: integer format: int32 companyId: type: integer format: int32 companyName: type: string contactQualityScore: type: string description: type: string startDate: type: string salary: type: string salaryCurrency: type: string active: type: string emails: type: array items: $ref: '#/components/schemas/EmailDetails' xml: wrapped: true lastValidatedDate: type: string phoneNumbers: $ref: '#/components/schemas/PhoneNumbers' jobLevels: type: array items: $ref: '#/components/schemas/JobLevels' xml: wrapped: true jobFunctions: type: array items: $ref: '#/components/schemas/JobFunctions' xml: wrapped: true titles: type: array items: type: string xml: name: title xml: wrapped: true EmailDetails: type: object properties: email: type: string validationStatus: type: string PhoneNumbers: type: object properties: directNumber: type: string corporateNumber: type: string JobLevels: type: object properties: id: type: string name: type: string JobFunctions: type: object properties: id: type: string name: type: string Employments: type: object properties: contactId: type: integer format: int32 companyId: type: integer format: int32 companyName: type: string emails: type: array items: type: string xml: name: email xml: wrapped: true phoneNumbers: $ref: '#/components/schemas/PhoneNumbers' active: type: string jobLevels: type: array items: $ref: '#/components/schemas/JobLevels' xml: wrapped: true jobFunctions: type: array items: $ref: '#/components/schemas/JobFunctions' xml: wrapped: true titles: type: array items: type: string xml: name: title xml: wrapped: true CompanyFetchResponseDTO: type: object properties: companyId: type: integer format: int32 companyName: type: string description: type: string companyType: type: string companyStatus: type: string tickers: type: array items: $ref: '#/components/schemas/TickerDTO' xml: wrapped: true classification: $ref: '#/components/schemas/ClassificationDTO' address: $ref: '#/components/schemas/CompanyAddressDTO' phone: type: string revenue: type: number format: double description: Annual revenue in millions. revenueCurrency: type: string employeeCount: type: integer format: int32 sic: type: string sicDescription: type: string naics: type: string naicsDescription: type: string financialYearEnd: type: string equifaxId: type: string companyTaxId: type: string fortuneRanking: type: string britishSics: type: array items: $ref: '#/components/schemas/BritishSicDTO' xml: wrapped: true foundedIn: type: string socialHandles: $ref: '#/components/schemas/SocialHandlesDTO' diversity: $ref: '#/components/schemas/DiversityDTO' siteTypes: type: array items: type: string xml: name: siteType xml: wrapped: true siteCount: type: integer format: int32 siteLocationCount: type: integer format: int32 businessStructure: type: string currentCompanyId: type: integer format: int32 websites: type: array items: type: string xml: name: website xml: wrapped: true companyCompetitorIds: type: array items: type: string familyTree: $ref: '#/components/schemas/FamilyTreeResultDTO' acquisitions: $ref: '#/components/schemas/AcquiredCompanyResultDTO' techUsed: $ref: '#/components/schemas/CompanyTechUsedDTO' companyLogos: type: array items: type: string xml: name: companyLogo xml: wrapped: true competitors: type: array items: $ref: '#/components/schemas/CompanyDTO' xml: wrapped: true xml: name: company TickerDTO: type: object properties: tickerName: type: string exchange: type: string ClassificationDTO: type: object properties: primaryBusiness: $ref: '#/components/schemas/BusinessDTO' secondaryBusinesses: type: array items: $ref: '#/components/schemas/BusinessDTO' xml: wrapped: true BusinessDTO: type: object properties: industry: type: string industryCode: type: string subIndustry: type: string subIndustryCode: type: string BritishSicDTO: type: object properties: britishSic: type: string description: type: string SocialHandlesDTO: type: object properties: twitter: type: string facebook: type: string blog: type: string linkedIn: type: string DiversityDTO: type: object properties: gender: type: string ethnicity: type: string certifications: $ref: '#/components/schemas/DiversityCertificationsDTO' DiversityCertificationsDTO: type: object properties: wbe: type: boolean mbe: type: boolean vbe: type: boolean disabled: type: boolean dbe: type: boolean lgbt: type: boolean FamilyTreeResultDTO: type: object properties: company: $ref: '#/components/schemas/CompanyDTO' children: type: array uniqueItems: true items: $ref: '#/components/schemas/FamilyTreeResultDTO' xml: wrapped: true AcquiredCompanyResultDTO: type: object properties: companies: type: array uniqueItems: true items: $ref: '#/components/schemas/CompanyDTO' xml: wrapped: true CompanyTechUsedDTO: type: object description: Installed technology information grouped by category and subcategory. properties: categories: type: array description: Technology categories associated with the company. items: $ref: '#/components/schemas/TechUsedCategoryDTO' xml: wrapped: true TechUsedCategoryDTO: type: object description: A technology category and its subcategories. properties: categoryId: type: string description: Demandbase identifier for the technology category. example: '61' categoryName: type: string description: Display name of the technology category. example: Analytics subCategories: type: array description: Technology subcategories within the category. items: $ref: '#/components/schemas/TechUsedSubCategoryDTO' xml: wrapped: true TechUsedSubCategoryDTO: type: object description: A technology subcategory and its detected products. properties: subCategoryId: type: string description: Demandbase identifier for the technology subcategory. example: '5000076' subCategoryName: type: string description: Display name of the technology subcategory. example: Business Intelligence Software products: type: array description: Products detected for the company within the subcategory. items: $ref: '#/components/schemas/TechUsedProductDTO' xml: wrapped: true TechUsedProductDTO: type: object description: A product detected for the company. properties: productId: type: string description: Demandbase identifier for the product. example: DM01069 productName: type: string description: Display name of the product. example: Axio CompanyNewsResponseDTO: type: object properties: companyNews: type: array items: $ref: '#/components/schemas/CompanyNewsArticle' xml: wrapped: true pageNo: type: integer format: int32 pageSize: type: integer format: int32 totalCount: type: integer format: int64 companyId: type: string xml: name: news CompanyNewsArticle: type: object properties: title: type: string url: type: string publicationDate: type: string source: type: string imageUrl: type: string newsCategory: type: string MatchRequestDTO: type: object properties: requests: type: array items: $ref: '#/components/schemas/MatchRequest' fields: type: array uniqueItems: true items: type: string example: '["name","city"]' example: - name - city limitResults: type: string example: '10' matchBranch: type: string example: 'true' minContactQualityScore: type: string example: A+ required: - requests MatchRequest: type: object properties: name: type: string example: Microsoft country: type: string example: United States state: type: string example: WA city: type: string example: Redmond street: type: string example: 1 Microsoft Way zip: type: string example: '90301' websites: type: array items: type: string example: '["www.microsoft.com"]' example: - www.microsoft.com ticker: type: string example: MSFT phone: type: string example: +1 650 253 0000 id: type: string example: id firstName: type: string example: John lastName: type: string example: Doe title: type: string example: CEO fullName: type: string example: John Doe email: type: string example: john.doe@example.com isPhoneRequired: type: boolean example: true isEmailRequired: type: boolean example: true executiveLinkedInHandle: type: string example: john-doe contactMatching: type: string example: active contactStatus: type: string example: current required: - id MatchResponseDTO: type: object properties: matches: type: array items: $ref: '#/components/schemas/MatchResponse' xml: wrapped: true xml: name: MatchResults MatchResponse: type: object properties: id: type: string companyMatches: type: array items: $ref: '#/components/schemas/CompanyMatchDTO' xml: wrapped: true contactMatches: type: array items: $ref: '#/components/schemas/ContactMatchDTO' xml: wrapped: true CompanyMatchDTO: type: object properties: company: $ref: '#/components/schemas/CompanyFetchResponseDTO' ContactMatchDTO: type: object properties: contact: $ref: '#/components/schemas/ContactFetchResponseDTO' BulkJobStatusDTO: type: object properties: jobName: type: string jobStatus: type: string jobType: type: string jobId: type: string createdAt: type: string updatedAt: type: string resultsUrl: type: string message: type: string xml: name: BulkJobStatus JobRequestDTO: type: object properties: jobType: type: string description: 'There are four supported job types: | Job Type | Description | | --------------- | ------------------------------------------------------------ | | `companyFetch` | Retrieve companies by `companyId`. | | `contactFetch` | Retrieve contacts by `contactId`. | | `companySearch` | Retrieve companies using filters (e.g., location, industry). | | `contactSearch` | Retrieve contacts using filters (e.g., name, job function). |' jobName: type: string description: Descriptive name, max 50 characters. maxLength: 50 fields: type: array description: ' List of fields to include in the output. Use "all" to fetch all available fields' items: type: string filters: type: array items: $ref: '#/components/schemas/JobFilter' sortOrder: type: string sortBy: type: string required: - jobType - jobName - fields - filters JobFilter: type: object properties: field: type: string description: 'Restrictions: ' values: type: array description: Array of string values to filter on items: type: string required: - field - values UpdateSubscriptionJobRequestDTO: type: object properties: companyIds: type: array description: Updated list of Company IDs you want to subscribe to. This replaces the existing list if provided. items: type: integer format: int32 addCompanyIds: type: array description: Company IDs to add to the current subscription (incremental update). items: type: integer format: int32 removeCompanyIds: type: array description: Company IDs to remove from the current subscription. items: type: integer format: int32 dbPersonIds: type: array description: Updated list of Demandbase Person IDs to subscribe to. This replaces the existing list if provided. items: type: integer format: int32 addDBPersonIds: type: array description: Demandbase Person IDs to add to the current subscription (incremental update). items: type: integer format: int32 removeDBPersonIds: type: array description: Demandbase Person IDs to remove from the current subscription. items: type: integer format: int32 subscriptionId: type: string description: Unique ID of the subscription you want to update. name: type: string description: Updated name for the subscription. description: type: string description: Updated description explaining the purpose of this subscription. subscriptionType: type: string enum: - company - companyNews - dbPerson - companyFamilyTree description: Type of subscription you are updating. frequency: type: string description: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n New frequency for receiving updates.\n Format options: Minutes\ \ (M), Hours (h), Days (d), Weeks (w), or Months (m)\n Example: \"7d\" for every 7 days\n" fields: type: array description: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Updated list of fields to track for changes.\n Notifications\ \ will be triggered when any of these fields value changes.\n" items: type: string newsCategories: type: array description: News categories to subscribe to (applicable only for 'companyNews'). items: type: string enum: - LEADERSHIP_CHANGES - NEW_OFFERINGS - PARTNERSHIPS - COMPANY_PRESENTATION - LITIGATION - COMPLIANCE - RESEARCH_DEVELOPMENT - DATA_SECURITY - FUNDING_DEVELOPMENTS - BANKRUPTCY_RESTRUCTURING - REALESTATE_DEALS - REALESTATE_CONSTRUCTION - CORPORATE_CHALLENGES - ACQUISITIONS - EXPANDING_OPERATIONS - COST_CUTTING - OUTPERFORMING - UNDERPERFORMING webhook: type: string description: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Updated Webhook URL where notifications should be sent.\n Example:\ \ http://www.your-domain.com/webhook\n" signingSecret: type: string description: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Updated optional shared secret used to sign webhook payloads (HmacSHA1).\n\ \ The signature will appear in the 'X-DemandbaseAPI-AlertDataSignature' header.\n Max length: 500 characters.\n" maxLength: 500 SubscriptionJobResponseDTO: type: object properties: jobId: type: string jobStatus: type: string subscriptionId: type: string totalEntitiesProcessed: type: integer format: int32 jobType: type: string subscriptionType: type: string createdAt: type: string xml: name: subscription CreateSubscriptionJobRequestDTO: type: object properties: companyIds: type: array description: 'Required when subscriptionType is "company", "companyNews", or "companyFamilyTree". For "companyFamilyTree", only Ultimate Parent Company IDs are allowed. Provide a list of Company IDs you want to track. You can include up to 1 million IDs. ' items: type: integer description: 'Required when subscriptionType is "company", "companyNews", or "companyFamilyTree". For "companyFamilyTree", only Ultimate Parent Company IDs are allowed. Provide a list of Company IDs you want to track. You can include up to 1 million IDs. ' format: int32 dbPersonIds: type: array description: 'Required when subscriptionType is "dbPerson". Provide a list of Demandbase Person IDs you want to subscribe to. You can include up to 1 million IDs in a single request. ' items: type: integer description: 'Required when subscriptionType is "dbPerson". Provide a list of Demandbase Person IDs you want to subscribe to. You can include up to 1 million IDs in a single request. ' format: int32 name: type: string description: A name for your subscription. Helps identify it later. description: type: string description: Optional description to explain what this subscription is for. subscriptionType: type: string enum: - company - companyNews - dbPerson - companyFamilyTree description: 'Type of subscription you''re creating. Choose from: "company", "companyNews", "dbPerson", or "companyFamilyTree". ' startDate: type: string description: 'The start date for your subscription in YYYY-MM-DD format. Notifications will begin from: startDate + frequency. They’ll continue at regular intervals based on the frequency. ' example: '2025-02-18' frequency: type: string description: 'How often you want to receive updates. Use one of the following formats: - Minutes (M), Hours (h), Days (d), Weeks (w), or Months (m) - Example: "7d" means every 7 days, "3w" means every 3 weeks Minimum frequency: - "company" and "dbPerson": 1 day - "companyNews": 15 minutes - "companyFamilyTree": 1 week ' fields: type: array description: 'Fields you want to track for changes. When any of these fields change, you''ll get a notification. If subscriptionType = "company": Available fields: all (default), name, activeStatus, revenue, address, employeeRange, fax, naics, sic, primaryIndsutry, phone, revenueRange, Ticker, websites, companyStatus, companyType, financialYearEnd, employees, companyId, companyStatusV2, companyTypeV2, businessStructure, siteTypes, siteCount, siteLocationCount If subscriptionType = "dbPerson": Available fields: all (default), active, name, facebookHandle, linkedInHandle, twitterHandle, education, titles, phone, email, salary, description, imageUrl, age, newEmployment, executiveMobileNo ' items: type: string description: 'Fields you want to track for changes. When any of these fields change, you''ll get a notification. If subscriptionType = "company": Available fields: all (default), name, activeStatus, revenue, address, employeeRange, fax, naics, sic, primaryIndsutry, phone, revenueRange, Ticker, websites, companyStatus, companyType, financialYearEnd, employees, companyId, companyStatusV2, companyTypeV2, businessStructure, siteTypes, siteCount, siteLocationCount If subscriptionType = "dbPerson": Available fields: all (default), active, name, facebookHandle, linkedInHandle, twitterHandle, education, titles, phone, email, salary, description, imageUrl, age, newEmployment, executiveMobileNo ' newsCategories: type: array description: 'Categories of news you want to be notified about (only relevant for "companyNews"). Options include: LEADERSHIP_CHANGES, NEW_OFFERINGS, PARTNERSHIPS, COMPANY_PRESENTATION, LITIGATION, COMPLIANCE, RESEARCH_DEVELOPMENT, DATA_SECURITY, FUNDING_DEVELOPMENTS, BANKRUPTCY_RESTRUCTURING, REALESTATE_DEALS, REALESTATE_CONSTRUCTION, CORPORATE_CHALLENGES, ACQUISITIONS, EXPANDING_OPERATIONS, COST_CUTTING, OUTPERFORMING, UNDERPERFORMING. ' items: type: string description: 'Categories of news you want to be notified about (only relevant for "companyNews"). Options include: LEADERSHIP_CHANGES, NEW_OFFERINGS, PARTNERSHIPS, COMPANY_PRESENTATION, LITIGATION, COMPLIANCE, RESEARCH_DEVELOPMENT, DATA_SECURITY, FUNDING_DEVELOPMENTS, BANKRUPTCY_RESTRUCTURING, REALESTATE_DEALS, REALESTATE_CONSTRUCTION, CORPORATE_CHALLENGES, ACQUISITIONS, EXPANDING_OPERATIONS, COST_CUTTING, OUTPERFORMING, UNDERPERFORMING. ' webhook: type: string description: 'The endpoint URL where notifications should be delivered. Example: https://yourdomain.com/webhook ' signingSecret: type: string description: 'A shared secret used to sign webhook payloads using HmacSHA1. This signature will appear in the X-DemandbaseAPI-AlertDataSignature header. Max length: 500 characters. ' maxLength: 500 SubscriptionEntityDetailsDTO: type: object properties: companyIds: type: array uniqueItems: true items: type: string dbPersonIds: type: array uniqueItems: true items: type: string pageNo: type: integer format: int32 pageSize: type: integer format: int32 totalCount: type: integer format: int32 totalPages: type: integer format: int32 GetAlertDefinitionDTO: type: object properties: companyAlertDetails: type: array uniqueItems: true items: $ref: '#/components/schemas/CompanyAlertData' companyNewsAlertDetails: type: array uniqueItems: true items: $ref: '#/components/schemas/CompanyNewsAlertData' dbPersonAlertDetails: type: array uniqueItems: true items: $ref: '#/components/schemas/ContactAlertData' companyFamilyTreeAlertDetails: type: array uniqueItems: true items: $ref: '#/components/schemas/FamilyTreeAlertData' subscriptionType: type: string enum: - company - companynews - dbPerson - companyfamilytree pageNo: type: integer format: int64 pageSize: type: integer format: int64 totalCount: type: integer format: int64 totalPages: type: integer format: int64 xml: name: alert CompanyAlertData: type: object properties: companyId: type: string fields: type: array uniqueItems: true items: type: string fieldChanges: type: array uniqueItems: true items: $ref: '#/components/schemas/FieldDTO' xml: name: company CompanyNewsAlertData: type: object properties: companyId: type: string articleUrl: type: string format: uri timestamp: type: string newsCategories: type: array items: type: string xml: name: article ContactAlertData: type: object properties: dbPersonId: type: string fields: type: array uniqueItems: true items: type: string employments: type: array uniqueItems: true items: $ref: '#/components/schemas/EmploymentAlertData' fieldChanges: type: array uniqueItems: true items: $ref: '#/components/schemas/FieldDTO' xml: name: dbPerson EmploymentAlertData: type: object properties: contactId: type: string fields: type: array uniqueItems: true items: type: string fieldChanges: type: array uniqueItems: true items: $ref: '#/components/schemas/FieldDTO' xml: name: employment FamilyTreeAlertData: type: object properties: companyId: type: integer format: int32 currentCompanyId: type: integer format: int32 message: type: string companyFamilyTreeChanges: $ref: '#/components/schemas/FamilyTreeChangeEventDTO' xml: name: familyTree FamilyTreeChangeEventDTO: type: object properties: companyId: type: integer format: int32 addedCompanies: type: array uniqueItems: true items: type: integer format: int32 deletedCompanies: type: array uniqueItems: true items: type: integer format: int32 newUltimateParentCompanyId: type: integer format: int32 currentCompanyId: type: integer format: int32 timestamp: type: integer format: int64 xml: name: familyTreeChanges FieldDTO: type: object properties: fieldName: type: string value: type: string newValue: type: string xml: name: fieldChange SubscriptionDetailsResponse: type: object properties: name: type: string description: Display name for the subscription. description: type: string description: Optional description provided by the user to describe the purpose of the subscription. nextFireTime: type: string description: Next scheduled time when the subscription will trigger an alert or data push. subscriptionType: type: string description: Type of subscription, e.g., company, companynews, dbPerson, companyfamilytree. frequency: type: string description: Subscription frequency configuration, such as daily, weekly, etc webhook: $ref: '#/components/schemas/WebhookDTO' startDate: type: string description: Start date when the subscription becomes active. createdAt: type: string description: Timestamp when the subscription was originally created. newsCategories: type: array description: Set of news categories tracked in case of a news-based subscription. uniqueItems: true items: type: string description: Set of news categories tracked in case of a news-based subscription. xml: name: newsCategory xml: name: newsCategory fields: type: array description: Set of entity fields (e.g., revenue, employee count) to track for changes in a company or person record. uniqueItems: true items: type: string description: Set of entity fields (e.g., revenue, employee count) to track for changes in a company or person record. xml: name: field xml: name: field xml: name: subscription WebhookDTO: type: object description: Webhook configuration object containing target URL, signing secret, and validation error(if any). properties: url: type: string description: Target URL where alerts will be delivered. status: type: string description: 'Current status of the webhook: VERIFICATION_PENDING (queued for verification), VERIFICATION_RUNNING (verification in progress), ACTIVE (verification succeeded), or DISABLED (verification failed or the webhook was disabled).' enum: - VERIFICATION_PENDING - VERIFICATION_RUNNING - ACTIVE - DISABLED disableReasonMessage: type: string description: Explanation provided when the webhook is disabled, such as delivery failures or configuration issues. signingSecret: type: string description: Shared secret used to generate HMAC signatures for verifying the authenticity of webhook requests. xml: name: webhook GetAlertsResponseDTO: type: object properties: alerts: type: array items: $ref: '#/components/schemas/AlertResponseDTO' xml: wrapped: true pageNo: type: integer format: int32 pageSize: type: integer format: int32 totalCount: type: integer format: int32 totalPages: type: integer format: int32 xml: name: Alert AlertResponseDTO: type: object properties: alertId: type: integer format: int32 createdAt: type: string SubscriptionDeleteResponse: type: object properties: subscriptionId: type: string message: type: string xml: name: subscription SubscriptionJobsListResponseDTO: type: object properties: subscriptionJobs: type: array items: $ref: '#/components/schemas/SubscriptionJobsListDTO' xml: name: subscriptionJobsList wrapped: true pageNo: type: integer format: int64 pageSize: type: integer format: int64 totalPages: type: integer format: int64 totalCount: type: integer format: int64 xml: name: subscriptionJobsListResponse SubscriptionJobsListDTO: type: object properties: jobId: type: string subscriptionId: type: string jobType: type: string jobStatus: type: string createdAt: type: string BulkSubscriptionJobStatusResponseDTO: type: object properties: jobId: type: string subscriptionId: type: string jobStatus: type: string totalEntitiesProcessed: type: integer format: int64 jobType: type: string invalidIds: type: array uniqueItems: true items: type: string message: type: string subscriptionType: type: string xml: name: bulkSubscriptionJobStatus SubscriptionListResponse: type: object properties: subscriptions: type: array items: $ref: '#/components/schemas/SubscriptionDetailsDTO' xml: wrapped: true pageNo: type: integer format: int32 pageSize: type: integer format: int32 totalCount: type: integer format: int64 totalPages: type: integer format: int64 xml: name: subscriptionListResponse SubscriptionDetailsDTO: type: object properties: name: type: string description: type: string subscriptionType: type: string subscriptionId: type: string createdAt: type: string ReferenceDataResponseDTO: type: object required: - objectType - data properties: objectType: type: string description: Canonical name of the requested reference object. data: type: array description: Tenant-specific reference records. Record fields depend on the requested object. items: type: object additionalProperties: true security: - bearerAuth: []