---
schema_version: "1"
id: ce82150df87c05678f6d22804f79fb684d13eaf070c7ff7649f36ff1e138337d
title: Leads (Bulk API 2.0)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/mc-core/references/generated-api-specs/mc-bulk-leads.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/references/mc-bulk-leads
source_site: developer.salesforce.com
content_type: documentation
content_hash: 0f949059424b68817a796d056f836ce6848c7eb4bb126936d9b4e749fae1604f
products:
  - Marketing Cloud Next
  - Marketing Cloud
---
Leads (Bulk API 2.0)

# Leads (Bulk API 2.0)

Create, update, and query multiple Marketing Cloud Next leads asynchronously by using Bulk API 2.0.

**Version:** v68.0

## Servers

*   `https://{subdomain}.my.salesforce.com`
    *   `subdomain (default (no default)) The unique API subdomain for your Salesforce org.`

## Operations

### GET Retrieve a list of all bulk lead ingestion jobs. Jobs that have been deleted don’t appear in the results.

`GET /services/data/{apiVersion}/jobs/ingest`

Operation ID: `getBulkIngestionJobs`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve information about all lead ingestion jobs in your org.
    
    Media type: `application/json`. Schema: `getBulkLeadIngestionJobsResponseBody`.
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    

### POST Create a bulk ingestion job for ingesting leads.

`POST /services/data/{apiVersion}/jobs/ingest`

Operation ID: `createBulkLeadIngestionJob`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `createBulkLeadIngestionJobRequestBody`.

#### Responses

*   **200** This response indicates that the API accepted your request to start a lead ingestion job.
    
    Media type: `application/json`. Schema: `createBulkLeadIngestionJobResponseBody`.
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    

### GET Retrieve information about a bulk lead ingestion job.

`GET /services/data/{apiVersion}/jobs/ingest/{jobId}`

Operation ID: `getBulkLeadIngestionJob`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve information about a lead ingestion job.
    
    Media type: `application/json`. Schema: `getBulkLeadIngestionJobResponseBody`.
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### DELETE Delete a bulk lead ingestion job. The job you're deleting must have a status of \`Finished\` or \`Aborted\`. If the job is still open, the request returns a 400 Bad Request error.

`DELETE /services/data/{apiVersion}/jobs/ingest/{jobId}`

Operation ID: `deleteBulkLeadIngestionJob`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Responses

*   **204** Indicates that the API accepted your request to delete the job. The response contains no content.
*   **400** This response indicates that your request was invalid. When you receive this error, validate that the request is well formed.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Error encountered when deleting the job because the job is not terminated",
        "errorCode": "API_ERROR"
      }
    ]
    ```
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### PATCH Close or abort a bulk lead ingestion job.

`PATCH /services/data/{apiVersion}/jobs/ingest/{jobId}`

Operation ID: `closeBulkLeadIngestionJob`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Request body (required)

Media type: `application/json`. Schema: `updateBulkLeadIngestionJobStatusRequestBody`.

#### Responses

*   **200** This response indicates that the API accepted your request to change the status of a lead ingestion job.
    
    Media type: `application/json`. Schema: `updateBulkLeadIngestionJobStatusResponseBody`.
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### PUT Upload bulk lead data for ingestion.

`PUT /services/data/{apiVersion}/jobs/ingest/{jobId}/batches`

Operation ID: `uploadLeadData`.

You can provide lead data in the request body as plain text or as a CSV file. See [Prepare CSV Files](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_csv.htm) in the _Bulk API 2.0 Developer Guide_.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Request body (required)

Media type: `text/csv`. Schema: `putBulkLeadIngestionJobRequestBody`.

#### Responses

*   **201** This response indicates that the API accepted your request to upload lead information. The response contains no content.
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### GET Get a list of leads that were successfully ingested by the job.

`GET /services/data/{apiVersion}/jobs/ingest/{jobId}/successfulResults`

Operation ID: `getSuccessfulRecords`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve a list of leads that weren't ingested during a bulk job because an error occurred.
    
    Media type: `text/plain`. Schema: `string`.
    
    Type: `string`.
    
    Example: `"sf__Id","sf__Error",FirstName,LastName,Email,MobilePhone,External_Id__c "","FIELD_INTEGRITY_EXCEPTION:Specified External ID for External_ID__c in entity Lead value length is 36 which exceeds maximum field length of 24:--","Ginelle","Merioth","gmerioth0@example.com","851-555-8435","4d13cac0-2c11-48e9-891d-49ee9508a6c7"`.
    
*   **204** This result indicates that the API accepted your request to retrieve information about leads that were successfully ingested, but no results were returned. You can receive this error when no records in the job were successfully ingested or when the job is still in progress. The response contains no content.
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### GET Get a list of leads that weren't ingested during the job because an error occurred.

`GET /services/data/{apiVersion}/jobs/ingest/{jobId}/failedResults`

Operation ID: `getFailedRecords`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve a list of leads that weren't ingested during a bulk job because an error occurred.
    
    Media type: `text/plain`. Schema: `string`.
    
    Type: `string`.
    
    Example: `"sf__Id","sf__Error",FirstName,LastName,Email,MobilePhone,External_Id__c "","FIELD_INTEGRITY_EXCEPTION:Specified External ID for External_ID__c in entity Lead value length is 36 which exceeds maximum field length of 24:--","Ginelle","Merioth","gmerioth0@example.com","851-555-8435","4d13cac0-2c11-48e9-891d-49ee9508a6c7"`.
    
*   **204** This result indicates that the API accepted your request to retrieve information about failed results, but no results were returned. You can receive this error when there were no failures in the job or when the job is still in progress. The response contains no content.
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

### GET Get a list of leads in an ingestion job that haven't been processed yet.

`GET /services/data/{apiVersion}/jobs/ingest/{jobId}/unprocessedRecords`

Operation ID: `getUnprocessedRecords`.

#### Parameters

*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Bulk API 2.0. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    
*   `jobId` (path, string, required) The job ID of the bulk lead ingestion job to retrieve information for.

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve a list of leads that weren't ingested during a bulk job because an error occurred.
    
    Media type: `text/plain`. Schema: `string`.
    
    Type: `string`.
    
    Example: `"sf__Id","sf__Error",FirstName,LastName,Email,MobilePhone,External_Id__c "","FIELD_INTEGRITY_EXCEPTION:Specified External ID for External_ID__c in entity Lead value length is 36 which exceeds maximum field length of 24:--","Ginelle","Merioth","gmerioth0@example.com","851-555-8435","4d13cac0-2c11-48e9-891d-49ee9508a6c7"`.
    
*   **401** This response indicates that the API wasn’t able to authorize your request. When you receive a 401 response, verify that your authorization token is still valid.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
      }
    ]
    ```
    
*   **404** This response indicates that the URI in your request couldn’t be reached. When you receive a 404 response, verify that your request included the correct job ID.
    
    Media type: `application/json`. Schema: `httpErrorResponseBody`.
    
    _Example_
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    

## Schemas

### getBulkLeadIngestionJobsResponseBody

*   `done` (_boolean_) Indicates whether there are more jobs to get. If this value is `false`, use the `nextRecordsUrl` value to retrieve the next group of jobs.
*   `nextRecordsUrl` (_string (uri)_) A URL that contains a query locator used to get the next set of results in a subsequent request. If the value of `done` is `false`, the value of this property is null.
*   `records` (_array of object_)
    
    *   `id` (_string_) The job ID for the bulk lead ingestion job. Use this ID to upload data for the job, query the job's status, and close the job.
    *   `columnDelimiter` (_string_) The column delimiter used for CSV job data. The default value is `COMMA`.  
        Allowed values: `BACKQUOTE`, `CARET`, `COMMA`, `PIPE`, `SEMICOLON`, `TAB`.
    *   `contentType` (_string_) The content type for the job. The only valid value is `CSV`.  
        Allowed values: `CSV`.
    *   `lineEnding` (_string_) The line ending used for CSV job data, marking the end of a data row. The default is LF.  
        Allowed values: `LF`, `CRLF`.
    *   `operation` (_string_) The processing operation for the job.  
        Allowed values: `insert`, `delete`, `hardDelete`, `update`, `upsert`.
    *   `object` (_string_) The object type for the data being processed. For leads, the value is `lead`.
    *   `createdById` (_string_) The ID of the user who created the job.
    *   `createdDate` (_string (date-time)_) The date and time when the job was created.
    *   `systemModstamp` (_string (date-time)_) The date and time when the job finished.
    *   `state` (_string_) The current processing status of the job.  
        Allowed values: `Aborted`, `Failed`, `JobComplete`, `Open`, `UploadComplete`.
    *   `concurrencyMode` (_string_) Indicates how the request is processed. The only valid value is `Parallel`.
    *   `apiVersion` (_number (double)_) The API version that the job was created in.
    *   `jobType` (_string_) The type of job.  
        Allowed values: `BigObjectIngest`, `Classic`, `V2Ingest`.
    
    _Example_
    
    ```
    {
      "id": "750SB000001uG6LYAU",
      "operation": "insert",
      "object": "Lead",
      "createdById": "005SB000002BfoIYAS",
      "createdDate": "2023-12-15T00:53:48.000+0000",
      "systemModstamp": "2023-12-15T00:53:48.000+0000",
      "state": "Open",
      "concurrencyMode": "Parallel",
      "contentType": "CSV",
      "apiVersion": 60,
      "jobType": "V2Ingest",
      "lineEnding": "LF",
      "columnDelimiter": "COMMA"
    }
    ```
    

### httpErrorResponseBody

Array of `object`.

*   `errorcode` (_string_) The error message.
*   `message` (_string_) A detailed error message.

### createBulkLeadIngestionJobRequestBody

*   `columnDelimiter` (_string_) The column delimiter used for CSV job data. The default value is `COMMA`.  
    Allowed values: `BACKQUOTE`, `CARET`, `COMMA`, `PIPE`, `SEMICOLON`, `TAB`.
*   `contentType` (_string_) The content type for the job. The only valid value is `CSV`.  
    Allowed values: `CSV`.
*   `externalIdFieldName` (_string_) The external ID field in the object being updated. This field is required for upsert operations and optional for all other types of operations. Field values must also exist in CSV job data.
*   `lineEnding` (_string_) The line ending used for CSV job data, marking the end of a data row. The default is LF.  
    Allowed values: `LF`, `CRLF`.
*   `operation` (_string_) The processing operation for the job.  
    Allowed values: `insert`, `delete`, `hardDelete`, `update`, `upsert`.
*   `object` (_string_) The object type for the data being processed. For leads, use `lead`.

_Example_

```
{
  "columnDelimiter": "COMMA",
  "contentType": "CSV",
  "externalIdFieldName": "EXTERNAL_ID_FIELD_NAME__C",
  "lineEnding": "LF",
  "operation": "insert",
  "object": "Lead"
}
```

### createBulkLeadIngestionJobResponseBody

*   `id` (_string_) The job ID for the bulk lead ingestion job. Use this ID to upload data for the job, query the job's status, and close the job.
*   `columnDelimiter` (_string_) The column delimiter used for CSV job data. The default value is `COMMA`.  
    Allowed values: `BACKQUOTE`, `CARET`, `COMMA`, `PIPE`, `SEMICOLON`, `TAB`.
*   `contentType` (_string_) The content type for the job. The only valid value is `CSV`.  
    Allowed values: `CSV`.
*   `lineEnding` (_string_) The line ending used for CSV job data, marking the end of a data row. The default is LF.  
    Allowed values: `LF`, `CRLF`.
*   `operation` (_string_) The processing operation for the job.  
    Allowed values: `insert`, `delete`, `hardDelete`, `update`, `upsert`.
*   `object` (_string_) The object type for the data being processed. For leads, the value is `lead`.
*   `createdById` (_string_) The ID of the user who created the job.
*   `createdDate` (_string (date-time)_) The date and time when the job was created.
*   `systemModstamp` (_string (date-time)_) The date and time when the job finished.
*   `state` (_string_) The current processing status of the job.  
    Allowed values: `Aborted`, `Failed`, `JobComplete`, `Open`, `UploadComplete`.
*   `concurrencyMode` (_string_) Indicates how the request is processed. The only valid value is `Parallel`.
*   `apiVersion` (_number (double)_) The API version that the job was created in.
*   `contentUrl` (_string_) The URL to use for Upload Job Data requests for this job. Valid only when the job is in Open state.

_Example_

```
{
  "id": "750SB000001uG6LYAU",
  "operation": "insert",
  "object": "Lead",
  "createdById": "005SB000002BfoIYAS",
  "createdDate": "2023-12-15T00:53:48.000+0000",
  "systemModstamp": "2023-12-15T00:53:48.000+0000",
  "state": "Open",
  "concurrencyMode": "Parallel",
  "contentType": "CSV",
  "apiVersion": 60,
  "contentUrl": "services/data/{apiVersion}/jobs/ingest/750SB000001uG6LYAU/batches",
  "lineEnding": "LF",
  "columnDelimiter": "COMMA"
}
```

### getBulkLeadIngestionJobResponseBody

*   `apexProcessingTime` (_number (int)_) The number of milliseconds taken to process triggers and other processes related to the job data. This doesn’t include the time used for processing asynchronous and batch Apex operations. If there are no triggers, the value is `0`.
*   `apiActiveProcessingTime` (_number (long)_) The number of milliseconds taken to actively process the job, including `apexProcessingTime` but not including the time the job waited to be processed.
*   `apiVersion` (_number (double)_) The API version that the job was created in.
*   `columnDelimiter` (_string_) The column delimiter used for CSV job data. The default value is `COMMA`.  
    Allowed values: `BACKQUOTE`, `CARET`, `COMMA`, `PIPE`, `SEMICOLON`, `TAB`.
*   `concurrencyMode` (_string_) Indicates how the request is processed. The only valid value is `Parallel`.
*   `contentType` (_string_) The content type for the job. The only valid value is `CSV`.  
    Allowed values: `CSV`.
*   `contentUrl` (_string_) The URL to use for Upload Job Data requests for this job. Valid only when the job is in Open state.
*   `createdById` (_string_) The ID of the user who created the job.
*   `createdDate` (_string (date-time)_) The date and time when the job was created.
*   `id` (_string_) The job ID for the bulk lead ingestion job. Use this ID to upload data for the job, query the job's status, and close the job.
*   `isPkChunkingSupported` (_boolean_) Indicates whether primary key (PK) chunking is enabled for the job.
*   `jobType` (_string_) The type of job.  
    Allowed values: `BigObjectIngest`, `Classic`, `V2Ingest`.
*   `lineEnding` (_string_) The line ending used for CSV job data, marking the end of a data row. The default is LF.  
    Allowed values: `LF`, `CRLF`.
*   `object` (_string_) The object type for the data being processed. For leads, the value is `lead`.
*   `operation` (_string_) The processing operation for the job.  
    Allowed values: `delete`, `hardDelete`, `insert`, `update`, `upsert`.
*   `retries` (_number (int)_) The number of times that Salesforce attempted to save the results of an operation. The repeated attempts are due to a problem, such as a lock contention.
*   `state` (_string_) The current processing status of the job.  
    Allowed values: `Aborted`, `Failed`, `JobComplete`, `Open`, `UploadComplete`.
*   `systemModstamp` (_string (date-time)_) The date and time when the job finished.
*   `totalProcessingTime` (_number (long)_) The number of milliseconds taken to process the job.

_Example_

```
{
  "apiActiveProcessingTime": 0,
  "apiVersion": 60,
  "apexProcessingTime": 0,
  "columnDelimiter": "COMMA",
  "concurrencyMode": "Parallel",
  "contentType": "CSV",
  "contentUrl": "services/data/{apiVersion}/jobs/ingest/750SB000001uG6LYAU/batches",
  "createdById": "005SB000002BfoIYAS",
  "createdDate": "2023-12-15T00:53:48.000+0000",
  "id": "750SB000000uA0AAAA",
  "isPkChunkingSupported": false,
  "jobType": "V2Ingest",
  "lineEnding": "LF",
  "object": "Lead",
  "operation": "insert",
  "retries": 0,
  "state": "Open",
  "systemModstamp": "2023-12-15T00:53:48.000+0000",
  "totalProcessingTime": 0
}
```

### updateBulkLeadIngestionJobStatusRequestBody

*   `state` (_string_) The status to set for the job. When you finish uploading data for the job, set the state to `UploadComplete`. If you want to abort the job without ingesting any content, set the state to `Aborted`.  
    Allowed values: `UploadComplete`, `Aborted`.

### updateBulkLeadIngestionJobStatusResponseBody

*   `id` (_string_) The job ID for the bulk lead ingestion job. Use this ID to upload data for the job, query the job's status, and close the job.
*   `contentType` (_string_) The content type for the job. The only value is `CSV`.  
    Allowed values: `CSV`.
*   `operation` (_string_) The processing operation for the job.  
    Allowed values: `delete`, `hardDelete`, `insert`, `update`, `upsert`.
*   `object` (_string_) The object type for the data being processed. For leads, the value is `lead`.
*   `createdById` (_string_) The ID of the user who created the job.
*   `createdDate` (_string (date-time)_) The date and time when the job was created.
*   `systemModstamp` (_string (date-time)_) The date and time when the job finished.
*   `state` (_string_) The new processing status of the job.  
    Allowed values: `Aborted`, `UploadComplete`.
*   `concurrencyMode` (_string_) Indicates how the request is processed. The only valid value is `Parallel`.
*   `apiVersion` (_number (double)_) The API version that the job was created in.

_Example_

```
{
  "id": "750SB000001uHlZYAU",
  "operation": "upsert",
  "object": "Lead",
  "createdById": "005SB000002BfoIYAS",
  "createdDate": "2023-12-15T01:18:29.000+0000",
  "systemModstamp": "2023-12-15T01:18:29.000+0000",
  "state": "Aborted",
  "externalIdFieldName": "External_ID__c",
  "concurrencyMode": "Parallel",
  "contentType": "CSV",
  "apiVersion": 60
}
```

### putBulkLeadIngestionJobRequestBody

The bulk lead data that you want to ingest, in CSV format.

Type: `any`.

Example: `FirstName,LastName,Email,MobilePhone,External_Id__c Ginelle,Merioth,gmerioth0@example.com,851-555-8435,4d13cac0-2c11-48e9-891d-49ee9508a6c7 Dalli,Tumilson,dtumilson1@example.com,881-555-6742,38bcb24b-247f-498b-9502-c98995a1e04b Robbin,Purveys,rpurveys2@example.com,732-555-6909,35d96c7a-3856-4809-8c49-35ddb9fa7dd9 Lothaire,Ivanchenkov,livanchenkov3@example.com,144-555-1959,75f63f26-6f4a-406f-a9f4-807f4a8a7b51`.