curl --request GET \
--url https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs', 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.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"deployment_id": "<string>",
"has_more": true,
"lines": [
{
"id": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"log_level": "INFO"
}
],
"next_cursor": ""
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get agent deployment logs
Get structured deployment log lines, with cursor-based pagination.
Returns the deployment’s log lines in time order together with a next_cursor
and a has_more flag. Poll to stream logs incrementally: make the first call
without a cursor, then pass the previous response’s next_cursor as cursor on
each subsequent call, stopping once the deployment reaches a terminal status.
Unlike GET /v5/agentex/deployments/{deployment_id}, which returns the
deployment’s status and Kubernetes events, this returns the raw log output from
the deploy process. Returns 404 if no deployment with this ID exists for the
caller’s account.
curl --request GET \
--url https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs', 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.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/agentex/deployments/{deployment_id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"deployment_id": "<string>",
"has_more": true,
"lines": [
{
"id": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"log_level": "INFO"
}
],
"next_cursor": ""
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Headers
Path Parameters
Query Parameters
Cursor from previous response's next_cursor field
Maximum number of log lines to return
1 <= x <= 500Response
Successful Response
Response containing structured deployment log lines with cursor-based pagination.
The CLI can poll this endpoint to stream logs incrementally:
- First call: no after_id
- Subsequent calls: after_id=next_cursor from previous response
- Stop polling when has_more is False and the deployment reaches a terminal status
The deployment ID
True if there may be more lines beyond this page (len(lines) == limit).
Structured log lines
Show child attributes
Show child attributes
Cursor for the next page. Pass this as the after_id query parameter to get subsequent logs.

