4

I am designing a solution where an external system will have to connect to Salesforce to pull data spanning multiple Objects. It happens on a weekly basis and the volume will be around 25K records (max). Salesforce team will share the Enterprise WSDL for the external team to create a Client. Also pls note that setting up Data Loader command line is not an option.

I wanted to understand the limitations using the SOAP API. I referred to SOAP API Dev guide but could not get any concrete pointers in this regard.

5

The relevant limits for building something that is boing to bulk read data over the soap api would be

  1. Total API requests, there is a limit to the # of API calls you make in a 24 hour period, make sure you're fetching as much data as you can handle in one go (e.g. set the batchsize header of QueryOptions to 2000, which is the maximum). One API request == One HTTP round trip, so calling login, query, queryMore, queryMore counts as 4.

  2. Concurrent API requests, there limits to the number of concurrent API calls you can make, don't go crazy trying to do the load over lots of threads.

  3. Number of Query Cursors, queries that return more rows that can be returned in a single call create a query cursor, (this cursor is then used to page through the remaining rows via the queryMore call). There's a fairly small limit on these (10 i think per user), fully process one query before moving onto the next one.

25k rows is not a lot, so you shouldn't have any issues, if you can get 2k rows per chunk (which'll depend on the number and type of fields selected) then this can be done in 14 API calls (login, query, queryMore x12)

  • Thanks it helps, require few clarifications based on the response. [1] what is the limit on the maximum data (# of rows/response size) that could be read in One go?. [2] How many API calls are consumed for one round trip - Login/Query/Response? [3] Given the Batch size of 2000 and fairly simple set of Fields from multiple Objects how many API calls would be approximately required to retrieve 25K records? – sHiBuKaLiDhAsAn Jun 26 '13 at 13:50
  • I added your clarifications to the answer. – superfell Jun 26 '13 at 15:45
  • awesome!,pretty clear. Final clarification - Could you pls explain what you meant by concurrent API requests? Regarding the Query Cursors, you are right - Only 10 queryLocator cursors can be active for an organization at any one time. – sHiBuKaLiDhAsAn Jul 2 '13 at 17:04
  • Can you give an example header with batch size while calling /services/async/35.0/job/{job_id}/batch API? – Hussain Tamboli Nov 3 '15 at 5:50
2

There are two documents I reference regularly for limits:

  1. Apex Governor Limits - These are the limits for Apex.
  2. Salesforce Limits Quick Reference PDF - This is a quick reference that includes detail (by Salesforce Edition) on some of the object/administrative limits as well as the Apex Governor Limits.
  • I was working on this myself, I couldn't find that Quick Reference file; it contains everything anyone would want to know about limits. – sfdcfox Jun 25 '13 at 18:14
  • the apex governor limit only apply to apex, not the soap api. – superfell Jun 25 '13 at 19:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.