# Bulk Data The Bulk Data API operations allow you to manage bulk data loader services and perform programmatic CRUD (Create, Update, Read/export, Delete) operations. \ To perform data ingestion with a CSV file in Zuora Billing using the Data Loader Bulk Data APIs, see Tutorial for Bulk job API with CSV. For more information, see Process Bulk Job with JSON-lines in Data Loader. ## Create a bulk job - [POST /bulk-data/bulk-jobs](https://developer.zuora.com/v1-api-reference/api/bulk-data/createbulkjob.md): Creates a new bulk job. The job type can be one of Import, Delete, Update, or Cancel. The response includes the job ID and information needed to upload your data file to S3. ### Next Step: Upload the File to S3 After creating a bulk job, you must upload the data file to Amazon S3 using the information returned in the uploadFileInfo object. This includes: - uploadUrl: The S3 endpoint to which the file must be uploaded. - formFields: Key-value pairs to include in a multipart/form-data POST request. - jobId: The ID of the job, used for later submission. You can use the following cURL command to upload the file: curl --request POST \ --url '' \ --header 'Content-Type: multipart/form-data' \ --form 'key=' \ --form 'bucket=' \ --form 'x-amz-algorithm=' \ --form 'x-amz-credential=' \ --form 'x-amz-date=' \ --form 'Policy=' \ --form 'x-amz-signature=' \ --form 'x-amz-security-token=' \ --form 'file=@/path/to/your/file.csv' Note: Always use the exact form field keys returned in the formFields object of the API response. This is a presigned Amazon S3 POST operation and not a Zuora endpoint. After uploading the file, you must call the "Submit a bulk job for processing" operation endpoint to start processing the job. ## Submit a bulk job - [POST /bulk-data/bulk-jobs/{id}/submissions](https://developer.zuora.com/v1-api-reference/api/bulk-data/submitbulkjob.md): Submits a previously created bulk job for processing. This endpoint must be called after the file has been successfully uploaded to the S3 URL using the uploadFileInfo details from the create job response. If the job has not been uploaded properly before calling this endpoint, submission will fail. ## Retrieve the summary of a bulk job - [GET /bulk-data/bulk-jobs/{id}/summary](https://developer.zuora.com/v1-api-reference/api/bulk-data/getbulkjobsummary.md): Get the summary of a specific job by its ID. This operation returns a summary of the specified bulk job. ## Cancel a bulk job - [POST /bulk-data/bulk-jobs/{id}/cancellations](https://developer.zuora.com/v1-api-reference/api/bulk-data/cancelbulkjob.md): Cancels an existing bulk job. Once a job is cancelled, no further processing can be done, and its status will be marked as Cancelled. Note: Cancellation of a job is only allowed before it reaches the In Progress status. Once a job is in progress, it cannot be cancelled but only be aborted. ## Abort a bulk job - [POST /bulk-data/bulk-jobs/{id}/aborts](https://developer.zuora.com/v1-api-reference/api/bulk-data/deleteabortjob.md): Aborts an existing job by sending a POST request to this URI. The request URI identifies the job to abort. When a job is aborted, no more records are processed. ## List download links for a bulk job - [GET /bulk-data/bulk-jobs/{id}/downloads](https://developer.zuora.com/v1-api-reference/api/bulk-data/getdownloadlinksforjob.md): Retrieves the download links for the files associated with a completed job. These files include success rows, error rows, and logs. ## List job summaries for bulk jobs - [GET /bulk-data/bulk-jobs/summaries](https://developer.zuora.com/v1-api-reference/api/bulk-data/getbulkjobsummaries.md): Lists summaries for bulk jobs. You can filter the results using query parameters. ## List mappings for a bulk job - [GET /bulk-data/bulk-jobs/{id}/mappings](https://developer.zuora.com/v1-api-reference/api/bulk-data/getmappingsforjob.md): Retrieves the mappings for an existing bulk job. The mappings define how columns in the source file correspond to fields in the object type template.