> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.instabase.com/api-sdk/api-reference/batches/create-batch/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.instabase.com/_mcp/server. # Create batch POST https://aihub.instabase.com/api/v2/batches Content-Type: application/json Create a new batch.[Upload files to the batch](/api-sdk/api-reference/batches/add-file-to-batch) in a separate request. Reference: https://docs.instabase.com/api-sdk/api-reference/batches/create-batch ## Authentication - `Authorization` header (bearer token, required) — Bearer HTTP authentication. ## Request ### Headers - `IB-Context` (string, optional) — Typically your organization ID. See [Authorization and context identification](/api-sdk/authorization#ib-context-header) for details. ### Body (application/json) This endpoint expects an object. - `name` (string, required) — Name of the batch. Maximum length is 255 characters. - `workspace` (string, optional) — The name of the workspace in which to add the batch. If not specified, the default location is your personal workspace.When making this call from a service account, you must specify a workspace.For organization members, if the default drive changes but is still connected, you can still use the batch as input for running an app. However, you can't upload any additional files to the batch. If the default drive is disconnected, you can't use batches stored on that drive as input for any app run. ## Response ### 200 Batch created successfully. - `id` (integer, required) — Unique identifier for the batch. ## Examples **Request** ```json { "name": "Quarterly Financial Reports" } ``` **Response** ```json { "id": 1024 } ``` **SDK Code** ```python with SDK from aihub import AIHub client = AIHub( api_root="https://aihub.instabase.com/api", api_key="abcdefghijklmnopqrst1234567890", ib_context="john.doe_acme.com" ) response = client.batches.create( name="MyBatch", workspace="MyWorkspace" ) print(f"batch_id: {response.id}") ``` ```python without SDK import requests url = "https://aihub.instabase.com/api/v2/batches" headers = { "Authorization": "Bearer abcdefghijklmnopqrst1234567890", "IB-Context": "john.doe_acme.com" } # create the request payload data = { "name": "MyBatch", "workspace": "MyWorkspace" } # make the POST request response = requests.post(url, headers=headers, json=data) # handle the response if response.status_code == 200: print(f"Batch created with ID: {response.json()['id']}") else: print(f"Error: {response.status_code} - {response.text}") ``` ```javascript const url = 'https://aihub.instabase.com/api/v2/batches'; const options = { method: 'POST', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"name":"Quarterly Financial Reports"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://aihub.instabase.com/api/v2/batches" payload := strings.NewReader("{\n \"name\": \"Quarterly Financial Reports\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://aihub.instabase.com/api/v2/batches") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"name\": \"Quarterly Financial Reports\"\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://aihub.instabase.com/api/v2/batches") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"name\": \"Quarterly Financial Reports\"\n}") .asString(); ``` ```php request('POST', 'https://aihub.instabase.com/api/v2/batches', [ 'body' => '{ "name": "Quarterly Financial Reports" }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://aihub.instabase.com/api/v2/batches"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"name\": \"Quarterly Financial Reports\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["name": "Quarterly Financial Reports"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://aihub.instabase.com/api/v2/batches")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```