openapi: 3.2.0
info:
version: '1.0'
title: Data Export Create Export Job API
description: "Export data in bulk from the Demandbase platform.
Authenticate using a bearer token. Pass a header like: `Authorization: Bearer v334asfsdfo3241ERqwefe`
The part after 'Bearer' is your API token. \nFor 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"
servers:
- url: https://uapi.demandbase.com/data/export
security:
- token: []
tags:
- name: Create Export Job
paths:
/v1/job:
post:
tags:
- Create Export Job
summary: Create export job (Account, Opportunity, Person, Activity, Campaign, and Creative)
description: Creates a data export job for any supported entity type.
operationId: createExportJob
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobRequestBody'
examples:
account:
value:
entityType: account
jobName: AccountExportJob
fields:
- '{Account}.name'
- '{Account}.industry'
format: CSV
responses:
'202':
description: Returns job metadata including jobId.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDetails'
'400':
$ref: '#/components/responses/400errorDescriptionsForAllApi'
'401':
$ref: '#/components/responses/401errorDescriptionsForAllApi'
'403':
$ref: '#/components/responses/403errorDescriptionsForAllApi'
'429':
$ref: '#/components/responses/429errorDescriptionsForAllApi'
'500':
$ref: '#/components/responses/500errorDescriptionsForAllApi'
security:
- token: []
/v1/accountList/job:
post:
tags:
- Create Export Job
summary: Create account list export job
operationId: fetchAccountListJob
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AccountListExportJob'
responses:
'202':
description: Returns the Job ID of the newly-created job.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDetails'
'400':
$ref: '#/components/responses/400errorDescriptionsForAllApi'
'401':
$ref: '#/components/responses/401errorDescriptionsForAllApi'
'403':
$ref: '#/components/responses/403errorDescriptionsForAllApi'
'429':
$ref: '#/components/responses/429errorDescriptionsForAllApi'
'500':
$ref: '#/components/responses/500errorDescriptionsForAllApi'
security:
- token: []
/v1/personList/job:
post:
tags:
- Create Export Job
summary: Create person list export job
operationId: fetchPersonListJob
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PersonListExportJob'
responses:
'202':
description: Returns the jobId of the newly-created job.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDetails'
'400':
$ref: '#/components/responses/400errorDescriptionsForAllApi'
'401':
$ref: '#/components/responses/401errorDescriptionsForAllApi'
'403':
$ref: '#/components/responses/403errorDescriptionsForAllApi'
'429':
$ref: '#/components/responses/429errorDescriptionsForAllApi'
'500':
$ref: '#/components/responses/500errorDescriptionsForAllApi'
security:
- token: []
components:
responses:
429errorDescriptionsForAllApi:
description: An endpoint request limit, concurrent-job limit, or export quota was exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
example:
errorCode: 429-100
errorMessage: Rate limit exceeded.
diagnosticCode: ce0fc1770e0d425b88892df4f663bf07
500errorDescriptionsForAllApi:
description: An unexpected internal service error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
example:
errorCode: 500-100
errorMessage: Error while communicating with internal service.
diagnosticCode: de0fc1770e0d425b88892df4f663bf07
400errorDescriptionsForAllApi:
description: The request body, path parameter, or query parameter is invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
401errorDescriptionsForAllApi:
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
example:
errorCode: 401-100
errorMessage: Authentication credentials are missing or invalid.
diagnosticCode: 1e0fc1770e0d425b88892df4f663bf07
403errorDescriptionsForAllApi:
description: The authenticated user does not have permission to access this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
example:
errorCode: 403-100
errorMessage: The authenticated user does not have permission to access this resource.
diagnosticCode: 3e0fc1770e0d425b88892df4f663bf07
schemas:
JobRequestBody:
type: object
required:
- entityType
- jobName
properties:
entityType:
type: string
enum:
- account
- accountBuyingGroup
- personBuyingGroupMember
- opportunity
- person
- activity
- campaign
- creative
jobName:
type: string
fromDate:
type: string
format: date
example: '2023-01-01'
toDate:
type: string
format: date
example: '2023-01-31'
fields:
type: array
items:
type: string
filters:
type: array
items:
$ref: '#/components/schemas/Filter'
source:
type: array
items:
type: string
description: 'Optional (Required for campaign and creative). Source of ad data: demandbase, google, linkedin, or all.'
adReportType:
type: string
accountListIds:
type: array
items:
type: integer
personListIds:
type: array
items:
type: integer
format:
type: string
Filter:
type: object
properties:
field:
type: string
values:
type: array
items:
type: string
operator:
type: string
description: One of Equals, Does Not Equal, Contains, Does Not Contain, Begins With, Does Not Begin With, Ends With, Does Not End With, Greater Than, Greater Than or Equal To, Less Than, Less Than or Equal To, Between, Exists, Does Not Exist, In, Not In
ErrorDto:
type: object
properties:
errorCode:
type: string
diagnosticCode:
type: string
errorMessage:
type: string
PersonListExportJob:
type: object
properties:
jobName:
type: string
personListIds:
type: array
items:
type: integer
JobDetails:
type: object
required:
- jobStatus
- createdAt
- jobId
- entityType
- jobName
properties:
jobStatus:
type: string
createdAt:
type: string
format: date-time
jobId:
type: string
entityType:
type: string
jobName:
type: string
AccountListExportJob:
type: object
properties:
jobName:
type: string
accountListId:
type: integer
accountListIds:
type: array
items:
type: integer
securitySchemes:
token:
type: http
scheme: bearer