# Create a runtime inside a workspace POST https://api.bctrl.ai/v1/workspaces/{id}/runtimes Content-Type: application/json Reference: https://platform.bctrl.ai/api/api-reference/workspaces/runtimes-create ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: bctrl API version: 1.0.0 paths: /v1/workspaces/{id}/runtimes: post: operationId: runtimes-create summary: Create a runtime inside a workspace tags: - subpackage_workspaces parameters: - name: id in: path required: true schema: type: string - name: Authorization in: header description: Use Bearer . required: true schema: type: string responses: '200': description: Default Response content: application/json: schema: $ref: '#/components/schemas/workspaces_runtimesCreate_Response_200' requestBody: content: application/json: schema: $ref: '#/components/schemas/workspaces_runtimesCreate_Request' servers: - url: https://api.bctrl.ai - url: http://localhost:8787 components: schemas: V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Driver: type: string enum: - puppeteer - playwright - selenium - stagehand title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Driver V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Kind: type: string enum: - browser title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Kind V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf0Mode: type: string enum: - profile title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf0Mode V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch0: type: object properties: mode: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf0Mode profileId: type: string format: uuid required: - mode - profileId title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch0 V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxyType: type: string enum: - http - socks5 title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxyType V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxy: type: object properties: host: type: string password: type: string port: type: integer type: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxyType username: type: string required: - host - port - type title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxy V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Config: type: object properties: humanize: type: boolean humanizePersonaId: type: integer proxy: oneOf: - $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1ConfigProxy - type: 'null' solveCaptchas: type: boolean title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Config V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Mode: type: string enum: - ephemeral title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Mode V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch1: type: object properties: config: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Config extensionIds: type: array items: type: string mode: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0LaunchOneOf1Mode required: - mode title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch1 V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch: oneOf: - $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch0 - $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch1 title: >- V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch WorkspacesRuntimesCreateRequest0: type: object properties: alias: type: string driver: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Driver kind: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Kind launch: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostRequestBodyContentApplicationJsonSchemaOneOf0Launch required: - alias - kind title: WorkspacesRuntimesCreateRequest0 workspaces_runtimesCreate_Request: oneOf: - $ref: '#/components/schemas/WorkspacesRuntimesCreateRequest0' title: workspaces_runtimesCreate_Request V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaKind: type: string enum: - browser - desktop - spreadsheet title: V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaKind V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaStatus: type: string enum: - active - stopped - failed title: V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaStatus V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummaryLaunchMode: type: string enum: - profile - ephemeral title: >- V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummaryLaunchMode V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummary: type: object properties: browserRunning: type: boolean currentDriver: type: - string - 'null' defaultContextId: type: - string - 'null' defaultPageId: type: - string - 'null' launchMode: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummaryLaunchMode profileId: type: - string - 'null' format: uuid storageWorkspace: type: - string - 'null' title: V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummary workspaces_runtimesCreate_Response_200: type: object properties: alias: type: string createdAt: type: string driver: type: string id: type: string format: uuid kind: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaKind status: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaStatus summary: $ref: >- #/components/schemas/V1WorkspacesIdRuntimesPostResponsesContentApplicationJsonSchemaSummary updatedAt: type: string workspaceId: type: string format: uuid required: - alias - createdAt - driver - id - kind - status - updatedAt - workspaceId title: workspaces_runtimesCreate_Response_200 securitySchemes: bearerAuth: type: http scheme: bearer description: Use Bearer . ``` ## SDK Code Examples ```python import requests url = "https://api.bctrl.ai/v1/workspaces/id/runtimes" payload = { "alias": "TestBrowser01", "kind": "browser" } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.bctrl.ai/v1/workspaces/id/runtimes'; const options = { method: 'POST', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"alias":"TestBrowser01","kind":"browser"}' }; 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://api.bctrl.ai/v1/workspaces/id/runtimes" payload := strings.NewReader("{\n \"alias\": \"TestBrowser01\",\n \"kind\": \"browser\"\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://api.bctrl.ai/v1/workspaces/id/runtimes") 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 \"alias\": \"TestBrowser01\",\n \"kind\": \"browser\"\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://api.bctrl.ai/v1/workspaces/id/runtimes") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"alias\": \"TestBrowser01\",\n \"kind\": \"browser\"\n}") .asString(); ``` ```php request('POST', 'https://api.bctrl.ai/v1/workspaces/id/runtimes', [ 'body' => '{ "alias": "TestBrowser01", "kind": "browser" }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.bctrl.ai/v1/workspaces/id/runtimes"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"alias\": \"TestBrowser01\",\n \"kind\": \"browser\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "alias": "TestBrowser01", "kind": "browser" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.bctrl.ai/v1/workspaces/id/runtimes")! 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() ```