Salesforce Bulk API limits are counted per rolling 24 hours for the whole org: a batch allowance shared by Bulk API and Bulk API 2.0, a ceiling on records uploaded, and for Bulk API 2.0 a separate count of query jobs. Each job and file has size limits of its own.
The numbers above come from the Bulk API limits in Salesforce's limits quick reference, with the day we last checked them.
How to read the limits
Batches are shared: a Bulk API 1.0 batch and a Bulk API 2.0 ingest batch both count. Bulk API 2.0 query jobs use no batches and are counted on their own.
Two allowances apply at once. Creating, uploading, closing and polling a job are API calls, so a bulk load also draws on the org-wide API allocation. A large load can stay under one and run out of the other.
The ingest size limit is measured after base64 encoding, so the CSV you upload has to be smaller than the stated job limit.
How to size a bulk load
With Bulk API 1.0, divide the records by your batch size to see how much of the shared allowance a load uses; small batches use it up fast. With Bulk API 2.0, count jobs and upload sizes instead, since Salesforce does the batching.
Poll less often on large jobs, split files that are near the encoded limit, and narrow broad queries by date or an indexed field. Download results before the retention window closes.
What to do next
Small and medium loads may fit better in REST composite and collection requests, which count one call for many records; the REST API limits page has those sizes. If the load comes from another tool, look up its limits too.
In Oneprofile, Salesforce connects as a source or a destination, and each export can be held to a rate you set in requests per minute.
