I am new to Salesforce callouts and batch concepts but here is the requirement that I am working on: Requirement is to get data from a third party API and create lead objects in our salesforce and for this I need to be able to make more than 100 future calls. For now, I created a simple class and invoke this class from Anonymous Apex window in developer console. This class makes callouts: public with sharing class CallOutExample { public void submitHttpRequest(){ HttpRequest req = new HttpRequest(); req.setMethod('GET'); req.setEndPoint('http://www.example.com/endpoint'); Http httpObj = new Http(); HttpResponse res; String jsonString; List<Lead> leadObjList = new List<Lead>(); for(Integer j =0; j <105; j++){ res = httpObj.send(req); jsonString = res.getBody(); Map<String,Object> jsonMapObj = (Map<String, Object>)JSON.deserializeUntyped(jsonString); List<Object> leadJsonObjList = (List<Object>)jsonMapObj.get('leadJson'); for(Integer i=0; i<leadJsonObjList.size(); i++){ // Here I take values for the last name, first name, phone number and everything from each lead Json object // and create lead objects and to the list Lead leadObj = new Lead(); //Assuming I am setting all the values leadObjList.add(leadObj); } } Database.insert(leadObjList); } } And then I am invoking this method with the below code from anonymous apex: CallOutExample obj = new CallOutExample(); obj.submitHttpRequest(); Can somebody point me in right direction on how to achieve this: If I write a batch class, will I be able to make more than 100 callouts? If so how do I implement the start method of the Batchable interface?