Typescript (SDK)
import { RaijinLabsLucidAi } from "raijin-labs-lucid-ai";
const raijinLabsLucidAi = new RaijinLabsLucidAi({
bearerAuth: process.env["RAIJINLABSLUCIDAI_BEARER_AUTH"] ?? "",
});
async function run() {
const result = await raijinLabsLucidAi.agents.launch.lucidDeployBlueGreen({
passportId: "<id>",
body: {
image: "https://picsum.photos/seed/x0OR83PrbJ/659/3733",
},
});
console.log(result);
}
run();curl --request POST \
--url http://localhost:3001/v1/agents/{passportId}/deploy/blue-green \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image": "<string>",
"target": "<string>",
"env_vars": {},
"health_gate_ms": 123
}
'import requests
url = "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green"
payload = {
"image": "<string>",
"target": "<string>",
"env_vars": {},
"health_gate_ms": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({image: '<string>', target: '<string>', env_vars: {}, health_gate_ms: 123})
};
fetch('http://localhost:3001/v1/agents/{passportId}/deploy/blue-green', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image' => '<string>',
'target' => '<string>',
'env_vars' => [
],
'health_gate_ms' => 123
]),
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 := "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green"
payload := strings.NewReader("{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}")
req, _ := http.NewRequest("POST", 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.post("http://localhost:3001/v1/agents/{passportId}/deploy/blue-green")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/v1/agents/{passportId}/deploy/blue-green")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"deployment_id": "<string>",
"slot": "blue",
"status": "<string>",
"url": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}AgentLaunch
Initiate blue-green deployment
Start a blue-green rollout for an agent. Deploys a new version into the blue slot while the current primary continues serving traffic. Use promote or rollback to finalize.
POST
/
v1
/
agents
/
{passportId}
/
deploy
/
blue-green
Typescript (SDK)
import { RaijinLabsLucidAi } from "raijin-labs-lucid-ai";
const raijinLabsLucidAi = new RaijinLabsLucidAi({
bearerAuth: process.env["RAIJINLABSLUCIDAI_BEARER_AUTH"] ?? "",
});
async function run() {
const result = await raijinLabsLucidAi.agents.launch.lucidDeployBlueGreen({
passportId: "<id>",
body: {
image: "https://picsum.photos/seed/x0OR83PrbJ/659/3733",
},
});
console.log(result);
}
run();curl --request POST \
--url http://localhost:3001/v1/agents/{passportId}/deploy/blue-green \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image": "<string>",
"target": "<string>",
"env_vars": {},
"health_gate_ms": 123
}
'import requests
url = "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green"
payload = {
"image": "<string>",
"target": "<string>",
"env_vars": {},
"health_gate_ms": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({image: '<string>', target: '<string>', env_vars: {}, health_gate_ms: 123})
};
fetch('http://localhost:3001/v1/agents/{passportId}/deploy/blue-green', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image' => '<string>',
'target' => '<string>',
'env_vars' => [
],
'health_gate_ms' => 123
]),
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 := "http://localhost:3001/v1/agents/{passportId}/deploy/blue-green"
payload := strings.NewReader("{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}")
req, _ := http.NewRequest("POST", 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.post("http://localhost:3001/v1/agents/{passportId}/deploy/blue-green")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/v1/agents/{passportId}/deploy/blue-green")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image\": \"<string>\",\n \"target\": \"<string>\",\n \"env_vars\": {},\n \"health_gate_ms\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"deployment_id": "<string>",
"slot": "blue",
"status": "<string>",
"url": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}{
"success": true,
"error": "<string>",
"message": "<string>",
"error_code": "<string>",
"details": "<unknown>"
}Authorizations
Lucid API key (lk_live_... or lk_test_...)
Path Parameters
Agent passport identifier
Body
application/json
Docker image reference for the blue deployment
Deploy target override (docker, railway, akash, phala, ionet, nosana)
Environment variable overrides
Show child attributes
Show child attributes
Health check wait time in milliseconds before promotion eligibility
⌘I
.png?fit=max&auto=format&n=VsjUqn6fLqEhBiuI&q=85&s=8b4c7e6431e9a6af1ef23b77bb4ff5fd)
.png?fit=max&auto=format&n=VsjUqn6fLqEhBiuI&q=85&s=d5651a45e4bfbabc33f74e146af3f94a)