[SalesForce] How to specify BatchSize in Rest API SOQL call

How to specify BatchSize in Rest API SOQL call, I tried it as per salesforce documentation and its not working ?

Note – I know you can do this using offset, but I wanted to explore if its possible using BatchSize.

Sample Code (I added this code in visualforce page) –

jQuery(document).ready(function($) {
  // Pull 10 Accounts via the REST API
  $.ajax('/services/data/v28.0/query?q=SELECT+Name+FROM+Account+LIMIT+10',
    {
      beforeSend: function(xhr) {
        // Set the OAuth header from the session ID
        xhr.setRequestHeader('Authorization', 'Bearer {!$Api.Session_ID}');
        xhr.setRequestHeader('batchSize', '5');            
      },
      success: function(response) {
        // We got 'em - append our records to the HTML list
        $.each(response.records, function(index, record) {
          $('#accountList').append('<li>'+record.Name+'</li>');
        });
      },
      error: function(jqXHR, textStatus, errorThrown) {
        // Oops - what went wrong?
        alert(jqXHR.status + ': ' + errorThrown);
      }
    }
  );
});

This code still gives me 10 accounts instead of 5 accounts.

Best Answer

  1. The header is called Sforce-Query-Options, specified like this:

    Sforce-Query-Options: batchSize=1000
    
  2. You can't specify a batch size of less than 200, or greater than 2000. Also, it is only a "hint" and may be adjusted/ignored at the server's discretion.

Related Topic