curl --request PUT \
--url https://api.blaxel.ai/v0/jobs/{jobId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"githubRunner": {
"repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]"
},
"policies": [
"<string>"
],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": false
}
]
}
}
'import requests
url = "https://api.blaxel.ai/v0/jobs/{jobId}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"githubRunner": { "repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]" },
"policies": ["<string>"],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": True,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [{}],
"timeout": 300
},
"enabled": True,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": False
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
githubRunner: {repositories: '["my-org/repo-a", "my-org/repo-b"]'},
policies: ['<string>'],
region: 'us-was-1',
revision: {
active: 'rev-abc123',
canary: '<string>',
canaryPercent: 10,
stickySessionTtl: 0,
traffic: 100
},
runtime: {
diskPercent: 80,
envs: [{name: 'MY_ENV_VAR', secret: true, value: 'my-value'}],
generation: 'mk3',
image: '<string>',
maxRetries: 3,
memory: 2048,
ports: [{target: 8080, name: 'http', protocol: 'HTTP'}],
timeout: 3600
},
triggers: [
{
configuration: {
authenticationType: 'blaxel',
callbackUrl: 'https://myapp.com/webhook',
path: '/invoke',
retry: 3,
schedule: '0 * * * *',
tasks: [{}],
timeout: 300
},
enabled: true,
id: 'trigger-1',
type: 'http'
}
],
volumes: [
{
mountPath: '/mnt/data',
name: 'scratch',
sizeMb: 102400,
type: 'ephemeral',
readOnly: false
}
]
}
})
};
fetch('https://api.blaxel.ai/v0/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blaxel.ai/v0/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'githubRunner' => [
'repositories' => '["my-org/repo-a", "my-org/repo-b"]'
],
'policies' => [
'<string>'
],
'region' => 'us-was-1',
'revision' => [
'active' => 'rev-abc123',
'canary' => '<string>',
'canaryPercent' => 10,
'stickySessionTtl' => 0,
'traffic' => 100
],
'runtime' => [
'diskPercent' => 80,
'envs' => [
[
'name' => 'MY_ENV_VAR',
'secret' => true,
'value' => 'my-value'
]
],
'generation' => 'mk3',
'image' => '<string>',
'maxRetries' => 3,
'memory' => 2048,
'ports' => [
[
'target' => 8080,
'name' => 'http',
'protocol' => 'HTTP'
]
],
'timeout' => 3600
],
'triggers' => [
[
'configuration' => [
'authenticationType' => 'blaxel',
'callbackUrl' => 'https://myapp.com/webhook',
'path' => '/invoke',
'retry' => 3,
'schedule' => '0 * * * *',
'tasks' => [
[
]
],
'timeout' => 300
],
'enabled' => true,
'id' => 'trigger-1',
'type' => 'http'
]
],
'volumes' => [
[
'mountPath' => '/mnt/data',
'name' => 'scratch',
'sizeMb' => 102400,
'type' => 'ephemeral',
'readOnly' => false
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/jobs/{jobId}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.blaxel.ai/v0/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"githubRunner": {
"repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]"
},
"policies": [
"<string>"
],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackSecret": "<string>",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": false
}
]
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}Update batch job
Updates a batch job’s configuration. Changes affect new executions; running executions continue with their original configuration.
curl --request PUT \
--url https://api.blaxel.ai/v0/jobs/{jobId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"githubRunner": {
"repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]"
},
"policies": [
"<string>"
],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": false
}
]
}
}
'import requests
url = "https://api.blaxel.ai/v0/jobs/{jobId}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"githubRunner": { "repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]" },
"policies": ["<string>"],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": True,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [{}],
"timeout": 300
},
"enabled": True,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": False
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
githubRunner: {repositories: '["my-org/repo-a", "my-org/repo-b"]'},
policies: ['<string>'],
region: 'us-was-1',
revision: {
active: 'rev-abc123',
canary: '<string>',
canaryPercent: 10,
stickySessionTtl: 0,
traffic: 100
},
runtime: {
diskPercent: 80,
envs: [{name: 'MY_ENV_VAR', secret: true, value: 'my-value'}],
generation: 'mk3',
image: '<string>',
maxRetries: 3,
memory: 2048,
ports: [{target: 8080, name: 'http', protocol: 'HTTP'}],
timeout: 3600
},
triggers: [
{
configuration: {
authenticationType: 'blaxel',
callbackUrl: 'https://myapp.com/webhook',
path: '/invoke',
retry: 3,
schedule: '0 * * * *',
tasks: [{}],
timeout: 300
},
enabled: true,
id: 'trigger-1',
type: 'http'
}
],
volumes: [
{
mountPath: '/mnt/data',
name: 'scratch',
sizeMb: 102400,
type: 'ephemeral',
readOnly: false
}
]
}
})
};
fetch('https://api.blaxel.ai/v0/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blaxel.ai/v0/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'githubRunner' => [
'repositories' => '["my-org/repo-a", "my-org/repo-b"]'
],
'policies' => [
'<string>'
],
'region' => 'us-was-1',
'revision' => [
'active' => 'rev-abc123',
'canary' => '<string>',
'canaryPercent' => 10,
'stickySessionTtl' => 0,
'traffic' => 100
],
'runtime' => [
'diskPercent' => 80,
'envs' => [
[
'name' => 'MY_ENV_VAR',
'secret' => true,
'value' => 'my-value'
]
],
'generation' => 'mk3',
'image' => '<string>',
'maxRetries' => 3,
'memory' => 2048,
'ports' => [
[
'target' => 8080,
'name' => 'http',
'protocol' => 'HTTP'
]
],
'timeout' => 3600
],
'triggers' => [
[
'configuration' => [
'authenticationType' => 'blaxel',
'callbackUrl' => 'https://myapp.com/webhook',
'path' => '/invoke',
'retry' => 3,
'schedule' => '0 * * * *',
'tasks' => [
[
]
],
'timeout' => 300
],
'enabled' => true,
'id' => 'trigger-1',
'type' => 'http'
]
],
'volumes' => [
[
'mountPath' => '/mnt/data',
'name' => 'scratch',
'sizeMb' => 102400,
'type' => 'ephemeral',
'readOnly' => false
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/jobs/{jobId}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.blaxel.ai/v0/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"githubRunner\": {\n \"repositories\": \"[\\\"my-org/repo-a\\\", \\\"my-org/repo-b\\\"]\"\n },\n \"policies\": [\n \"<string>\"\n ],\n \"region\": \"us-was-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"diskPercent\": 80,\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxRetries\": 3,\n \"memory\": 2048,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"timeout\": 3600\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ],\n \"volumes\": [\n {\n \"mountPath\": \"/mnt/data\",\n \"name\": \"scratch\",\n \"sizeMb\": 102400,\n \"type\": \"ephemeral\",\n \"readOnly\": false\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"githubRunner": {
"repositories": "[\"my-org/repo-a\", \"my-org/repo-b\"]"
},
"policies": [
"<string>"
],
"region": "us-was-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"diskPercent": 80,
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxRetries": 3,
"memory": 2048,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"timeout": 3600
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackSecret": "<string>",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
],
"volumes": [
{
"mountPath": "/mnt/data",
"name": "scratch",
"sizeMb": 102400,
"type": "ephemeral",
"readOnly": false
}
]
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}Authorizations
OAuth2 authentication with JWT tokens
Path Parameters
Unique name identifier of the batch job
Body
Batch processing job definition for running parallel AI tasks. Jobs can execute multiple tasks concurrently with configurable parallelism, retries, and timeouts.
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Configuration for a batch job including execution parameters, parallelism settings, and deployment region
Show child attributes
Show child attributes
Response
successful operation
Batch processing job definition for running parallel AI tasks. Jobs can execute multiple tasks concurrently with configurable parallelism, retries, and timeouts.
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Configuration for a batch job including execution parameters, parallelism settings, and deployment region
Show child attributes
Show child attributes
Events happening on a resource deployed on Blaxel
Show child attributes
Show child attributes
Deployment status of a resource deployed on Blaxel
DELETING, TERMINATED, FAILED, DEACTIVATED, DEACTIVATING, UPLOADING, BUILDING, DEPLOYING, DEPLOYED, BUILT Was this page helpful?
