Make Your First Request
Learn how to create an import job, submit data to it, and check the job status in the Demandbase Import API.
Importing Data
To import your data into Demandbase, there are two required API calls you must make.
Create Import Job
Details (Click to expand)
-
Create an import job (This example is for Activity)
-
Set URL
-
POST HTTPS://UAPI.demandbase.com/import/v1/job
-
-
Set Headers
-
Accept: application/json Content-Type: application/json Authorization: Bearer <YOUR_JWT_TOKEN>
-
-
Set Body Parameters
-
{ "source": "CSV", "dataImportName": "DataImportTest", "entityType": "Activity", "activityTypeId": 1110 }
- Schema
Field Name Data Type Required Notes source string No Defaults to csv. You can use the Source Lookup endpoint to retrieve available sourcesdataImportName string Yes entityType string Yes The type of entities to be imported, one of 'Account', 'Opportunity', 'Person' or 'Activity' activityTypeId int Conditional Required only when entityType = Activity. You can use the Activity Type Lookup endpoint to retrieve available activity types -
-
-
Resulting cURL request
-
curl --request POST \ --url https://uapi.demandbase.com/import/v1/job \ --header 'accept: application/json' \ --header 'authorization: Bearer <YOUR_JWT_TOKEN>' \ --header 'content-type: application/json' \ --data ' { "source": "CSV", "dataImportName": "DataImportTest", "entityType": "Activity" "activityTypeId": 1110, } '
-
-
Example Response
{ "id": 11416, "dataImportName": "DataImportTest", "entityType": "Activity", "state": "new", "updatedAt": "2026-02-03T14:55:13.526Z", "createdAt": "2026-02-03T14:55:13.526Z", "source": "CSV", "activityTypeId": 1110 }
Field Name Data Type Notes id int Job Id - used to submit data and check job status dataImportName string Supplied name entityType string Supplied entityType state string One of: new,processing,completed,failedupdatedAt string<dateTime> ISO-formatted UTC datetime createdAt string<dateTime> ISO-formatted UTC datetime source string Supplied source activityTypeId int Supplied activityTypeId Only returned if entityType = Activity
Submit Data To The Import Job
Details (Click to expand)
* Set the request URL
Create Import Jobresponse
*
Text URL PUT https://uapi.demandbase.com/import/v1/job/{jobId}/data?listAction=<DESIRED_ACTION> * Set ListAction Query Parameter
| Allowed Value | Description |
| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |
| replace **(default)** | Removes all existing members from the associated account list and adds the members from the current import file. |
| insert | Adds new members from the current import file to the existing account list. If no account list is associated with this job, one will be created.. |
| delete | Removes members from the existing account list if they are matched in the import data. |
| noop | Processes and imports the data but does not make any changes to the associated account list membership. |
<br />
* Set Headers
Text Headers Accept: application/json Content-Type: applicaiton/octet_stream Authorization: Bearer <YOUR_JWT_TOKEN>
* Set Body
| Type | Media Type | Description |
| :-------------- | :----------------------- | :------------------------------------------------------------------- |
| string\<binary> | application/octet-stream | The binary content of the data file to be imported (e.g. a CSV file) |
* Resulting cURL request
curl --request PUT \ --url 'https://uapi.demandbase.com/import/v1/job/{jobId}/data?listAction=replace' \ --header 'accept: application/json' \ --header 'authorization: Bearer <YOUR_JWT_TOKEN>' \ --header 'content-type: application/octet-stream' \ --data-binary '@dataImportTEST.csv'
* Example 200 Response
Text 200 - OK { "id": 11416, "dataImportName": "DataImportTest", "entityType": "Activity", "state": "processing", "createdAt": "2026-02-03T14:55:13.526Z", "updatedAt": "2026-02-03T14:56:29.123Z", "source": "CSV", "activityTypeId": 1110 }
Schema
| Field Name | Data Type | Notes |
|---|---|---|
| id | int | Job Id - used to submit data and check job status |
| dataImportName | string | Supplied name |
| entityType | string | Supplied entityType |
| state | string | One of: new, processing, completed, failed |
| updatedAt | string<dateTime> | ISO-formatted UTC datetime |
| createdAt | string<dateTime> | ISO-formatted UTC datetime |
| source | string | Supplied source |
| activityTypeId | int | Supplied activityTypeId Only returned if entityType = Activity |
Check Import Job Status
Details (Click to expand)
1. Set the URL
1. Text URL GET https://uapi.demandbase.com/import/data/job/{jobId}
2. Resulting cURL request
curl --request GET \ --url https://uapi.demandbase.com/import/v1/job/{jobId} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <YOUR_JWT_TOKEN>' 3. Example 200 Response
Schema
| Field Name | Data Type | Notes |
|---|---|---|
| id | int | Job Id - used to submit data and check job status |
| dataImportName | string | Supplied name |
| entityType | string | Supplied entityType |
| state | string | One of: new, processing, completed, failed |
| updatedAt | string<dateTime> | ISO-formatted UTC datetime |
| createdAt | string<dateTime> | ISO-formatted UTC datetime |
| source | string | Supplied source |
| activityTypeId | int | Supplied activityTypeId Only returned if entityType = Activity |
Updated 4 months ago