Salesforce REST API limits on queries and composite calls

Look up the Salesforce REST API limits that decide how many records each call can read or write, from Salesforce's own docs.

Salesforce REST API: 1 of 76 APIs

  • SalesforceREST APIUses the org-wide daily allocation and the concurrent long-running request limits in the salesforce row. A Composite, sObject Collections, sObject Tree or Composite Graph request counts as one call toward API limits. In a Composite Batch request, each subrequest counts against rate limits.
    Daily or monthly allowance
    Shared with the org-wide allocation (see the salesforce row).
    Bulk and batch
    SOQL query: up to 2,000 records returned at a time. The Sforce-Query-Options batchSize is 2,000 by default, 200 minimum and 2,000 maximum, and the requested size is not guaranteed. Composite: up to 25 subrequests, of which up to 5 can be sObject Collections or query operations. Composite Batch: up to 25 subrequests. Composite Graph: up to 500 nodes and 75 graphs per payload, maximum graph depth 15. sObject Collections create, update, upsert and delete: up to 200 records per request (up to 10 chunks when object types are mixed). sObject Tree: up to 200 records across all trees, up to five record types, up to five levels deep.
    Plans with API access
    On by default in Enterprise, Performance, Unlimited and Developer Edition. Professional Edition needs the API add-on.
    When you hit the limit
    HTTP 403 with REQUEST_LIMIT_EXCEEDED when the org's API request limit is exceeded. Request size: the combined URI and headers may be up to 16,384 bytes per REST call; a longer URI returns 414 URI Too Long, and longer URI plus headers returns 431 Request Header Fields Too Large.
    Limit headers
    Sforce-Limit-Info

    Source: developer.salesforce.com (opens in a new tab), developer.salesforce.com: resources query (opens in a new tab), developer.salesforce.com: headers queryoptions (opens in a new tab), developer.salesforce.com: resources composite batch (opens in a new tab), developer.salesforce.com: resources composite graph limits (opens in a new tab), developer.salesforce.com: resources composite graph introduction (opens in a new tab), developer.salesforce.com: resources composite sobjects collections create (opens in a new tab), developer.salesforce.com: resources composite sobject tree (opens in a new tab), developer.salesforce.com: salesforce app limits platform api (opens in a new tab), developer.salesforce.com: errorcodes (opens in a new tab)

Photo of Utku Zihnioglu

By

ยท CEO & co-founder

Updated Nov 11, 2026

Shorter page: the tool first, the answer in a few lines.

Salesforce REST API limits are mostly size limits: how many records a query returns per page, how many subrequests a composite request may carry, and how many records one sObject Collections call may change. The calls themselves draw on the org-wide allocation per rolling 24 hours, so the cheapest integration packs the most work into each call.

The sizes above come from Salesforce's Composite resource reference and the pages it links, with the day we last checked them.

How to read the sizes

A SOQL query returns one page at a time with a link to the next. You can ask for a smaller page, but the size is a hint, so always follow the next-records link.

A composite request carries a set number of subrequests, and only a few of them may be queries or collections. Later subrequests can use the results of earlier ones.

sObject Collections creates, updates, upserts or deletes many records of one or several types in one call. sObject Tree creates a parent with its children. Composite Graph takes far more nodes than a plain composite request.

Pick the right resource

  • Reading changes: a SOQL query on records modified since the last run.

  • Writing many records of one type: sObject Collections, one call per page of records.

  • A parent with children: sObject Tree, or Composite when a later step needs an ID from an earlier one.

  • Hundreds of thousands of records: the Bulk API, which works in jobs rather than calls.

A nightly job that updates every changed account one record at a time spends a call per record. With sObject Collections it spends a call per page of records, a small fraction of the day.

What to do next

Check your org's allocation before you size a job, and look up the tool on the other end of your pipeline 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. Salesforce's own answer is honoured whatever you set.

Salesforce REST API limits: questions

Does a composite request count as one API call?

Yes. A Composite, sObject Collections, sObject Tree or Composite Graph request counts as one call toward the org's API allocation. A Composite Batch request is the exception: each subrequest in it counts.

What is the URL length limit for the Salesforce REST API?

The URI and headers together have a size limit. Past it, Salesforce may answer 414 URI Too Long or 431 Request Header Fields Too Large, so split a very long SOQL query or IN list into several.

Is there a per-second rate limit on the Salesforce REST API?

No fixed one. The REST API shares the org-wide allocation per rolling 24 hours and the cap on concurrent long-running calls; short calls have no concurrency cap.

How do I track REST API usage as I go?

Read the Sforce-Limit-Info header on each REST response: it shows the calls the org has used and its limit. The REST limits resource gives every allocation's maximum and remaining count.

About this article

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & co-founder

Serial entrepreneur who built infrastructure companies handling billions of requests. Now leads engineering at Oneprofile, which finds the people worth talking to, researches each one, and follows up until they reply.

Drafted with AI from our product docs and code. Utku Zihnioglu answers for what it says.

Write to Salesforce in as few calls as it takes

Connect Salesforce to Oneprofile and set a per-minute rate for every export.

Free plan: 200 credits a month, 3 integrations, no card

Write to Salesforce in as few calls as it takes

Connect Salesforce to Oneprofile and set a per-minute rate for every export.

Free plan: 200 credits a month, 3 integrations, no card