Demandbase Data Export API

Enables bulk, asynchronous, programmatic data exports from Demandbase One, supporting extraction of records for accounts, people, opportunities, activities, campaigns, and Buying Groups with full granularity, delivered as downloadable CSVs up to 10GB per day.

OpenAPI Specification

demandbase-data-export-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Demandbase Data Export API
  description: >-
    Enables bulk, asynchronous, programmatic data exports from Demandbase One,
    supporting extraction of records for accounts, people, opportunities,
    activities, campaigns, and Buying Groups with full granularity, delivered
    as downloadable CSVs up to 10GB per day.
  version: '1.0'
  contact:
    name: Demandbase Support
    url: https://support.demandbase.com/
  termsOfService: https://www.demandbase.com/terms-of-service/
externalDocs:
  description: Demandbase Data Export API Documentation
  url: https://support.demandbase.com/hc/en-us/articles/26668967193627-Understanding-the-Demandbase-API-Suite-and-MCP
servers:
  - url: https://api.demandbase.com
    description: Demandbase Data Export API Production
tags:
  - name: Downloads
    description: Download exported data files
  - name: Export Jobs
    description: Create and manage data export jobs
security:
  - bearerAuth: []
paths:
  /export/v1/jobs:
    get:
      operationId: listExportJobs
      summary: Demandbase List export jobs
      description: >-
        Retrieve a list of data export jobs with their current status and
        metadata.
      tags:
        - Export Jobs
      parameters:
        - name: status
          in: query
          required: false
          description: Filter by job status
          schema:
            type: string
            enum:
              - pending
              - processing
              - completed
              - failed
              - cancelled
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 25
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of export jobs
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobs:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExportJob'
                  total:
                    type: integer
        '401':
          description: Unauthorized
    post:
      operationId: createExportJob
      summary: Demandbase Create an export job
      description: >-
        Create a new asynchronous data export job. Specify the entity type,
        fields to export, filters, and date range. Exported data is delivered
        as downloadable CSV files.
      tags:
        - Export Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateExportJobRequest'
      responses:
        '202':
          description: Export job created and queued for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportJob'
        '400':
          description: Invalid request - check entity type and field names
        '401':
          description: Unauthorized
        '429':
          description: Daily export quota exceeded (10GB per day limit)
  /export/v1/jobs/{jobId}:
    get:
      operationId: getExportJob
      summary: Demandbase Get export job status
      description: >-
        Retrieve the current status and details of a specific export job,
        including progress information and download URLs when complete.
      tags:
        - Export Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Export job details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportJob'
        '401':
          description: Unauthorized
        '404':
          description: Export job not found
    delete:
      operationId: cancelExportJob
      summary: Demandbase Cancel an export job
      description: Cancel a pending or processing export job.
      tags:
        - Export Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Export job cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportJob'
        '401':
          description: Unauthorized
        '404':
          description: Export job not found
        '409':
          description: Job cannot be cancelled (already completed or failed)
  /export/v1/jobs/{jobId}/download:
    get:
      operationId: downloadExportFile
      summary: Demandbase Download export file
      description: >-
        Download the exported CSV file for a completed export job. Returns
        a redirect to a pre-signed download URL.
      tags:
        - Downloads
      parameters:
        - $ref: '#/components/parameters/jobId'
        - name: part
          in: query
          required: false
          description: Part number for multi-part exports (starts at 1)
          schema:
            type: integer
            default: 1
      responses:
        '200':
          description: CSV file download
          content:
            text/csv:
              schema:
                type: string
                format: binary
        '302':
          description: Redirect to pre-signed download URL
        '401':
          description: Unauthorized
        '404':
          description: Export job not found or not yet completed
  /export/v1/entities:
    get:
      operationId: listExportableEntities
      summary: Demandbase List exportable entities
      description: >-
        Retrieve the list of entity types available for export and their
        supported fields.
      tags:
        - Export Jobs
      responses:
        '200':
          description: List of exportable entities
          content:
            application/json:
              schema:
                type: object
                properties:
                  entities:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExportableEntity'
        '401':
          description: Unauthorized
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token for API access
  parameters:
    jobId:
      name: jobId
      in: path
      required: true
      description: Export job unique identifier
      schema:
        type: string
  schemas:
    ExportJob:
      type: object
      properties:
        id:
          type: string
          description: Export job unique identifier
        entity_type:
          type: string
          enum:
            - accounts
            - people
            - opportunities
            - activities
            - campaigns
            - buying_groups
          description: Type of entity being exported
        status:
          type: string
          enum:
            - pending
            - processing
            - completed
            - failed
            - cancelled
          description: Current job status
        fields:
          type: array
          items:
            type: string
          description: Fields included in the export
        filters:
          type: object
          description: Applied filters
        record_count:
          type: integer
          description: Total number of records exported
        file_size_bytes:
          type: integer
          description: Size of the exported file in bytes
        file_parts:
          type: integer
          description: Number of file parts for large exports
        download_url:
          type: string
          format: uri
          description: URL to download the exported file (when completed)
        created_at:
          type: string
          format: date-time
          description: Job creation timestamp
        completed_at:
          type: string
          format: date-time
          description: Job completion timestamp
        expires_at:
          type: string
          format: date-time
          description: When the download URL expires
        error_message:
          type: string
          description: Error details if the job failed
    CreateExportJobRequest:
      type: object
      required:
        - entity_type
      properties:
        entity_type:
          type: string
          enum:
            - accounts
            - people
            - opportunities
            - activities
            - campaigns
            - buying_groups
          description: Type of entity to export
        fields:
          type: array
          items:
            type: string
          description: >-
            Fields to include in the export. If omitted, all available fields
            are exported.
        filters:
          type: object
          description: Filter criteria to limit exported records
          properties:
            date_range:
              type: object
              properties:
                field:
                  type: string
                  description: Date field to filter on
                start:
                  type: string
                  format: date
                  description: Start date
                end:
                  type: string
                  format: date
                  description: End date
            account_list_id:
              type: string
              description: Limit export to a specific account list
        format:
          type: string
          enum:
            - csv
          default: csv
          description: Export file format
    ExportableEntity:
      type: object
      properties:
        name:
          type: string
          description: Entity type name
        description:
          type: string
          description: Entity description
        fields:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Field name
              type:
                type: string
                description: Field data type
              description:
                type: string
                description: Field description
          description: Available fields for export