Get runtime logs for a request
curl --request GET \
--url https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime \
--header 'Authorization: Bearer <token>' \
--header 'X-Workspace-Id: <x-workspace-id>'import requests
url = "https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime"
headers = {
"X-Workspace-Id": "<x-workspace-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Workspace-Id': '<x-workspace-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime', 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.dualship.run/api/v1/logs/executions/{request_id}/runtime",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Workspace-Id: <x-workspace-id>"
],
]);
$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.dualship.run/api/v1/logs/executions/{request_id}/runtime"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Workspace-Id", "<x-workspace-id>")
req.Header.Add("Authorization", "Bearer <token>")
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.dualship.run/api/v1/logs/executions/{request_id}/runtime")
.header("X-Workspace-Id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Workspace-Id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"limit": 123,
"logs": [
{
"created_at": "<string>",
"data": {},
"flow_id": "<string>",
"flow_slug": "<string>",
"id": "<string>",
"level": "<string>",
"message": "<string>",
"node_id": "<string>",
"node_type": "<string>",
"request_id": "<string>",
"stack_trace": "<string>"
}
],
"offset": 123,
"total": 123
}{
"code": "BAD_REQUEST",
"error": "invalid request parameters"
}{
"code": "UNAUTHORIZED",
"error": "unauthorized"
}{
"code": "INTERNAL_ERROR",
"error": "internal server error"
}logs
Get runtime logs for a request
Get all runtime logs for a specific request ID
GET
/
api
/
v1
/
logs
/
executions
/
{request_id}
/
runtime
Get runtime logs for a request
curl --request GET \
--url https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime \
--header 'Authorization: Bearer <token>' \
--header 'X-Workspace-Id: <x-workspace-id>'import requests
url = "https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime"
headers = {
"X-Workspace-Id": "<x-workspace-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Workspace-Id': '<x-workspace-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime', 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.dualship.run/api/v1/logs/executions/{request_id}/runtime",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Workspace-Id: <x-workspace-id>"
],
]);
$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.dualship.run/api/v1/logs/executions/{request_id}/runtime"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Workspace-Id", "<x-workspace-id>")
req.Header.Add("Authorization", "Bearer <token>")
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.dualship.run/api/v1/logs/executions/{request_id}/runtime")
.header("X-Workspace-Id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dualship.run/api/v1/logs/executions/{request_id}/runtime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Workspace-Id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"limit": 123,
"logs": [
{
"created_at": "<string>",
"data": {},
"flow_id": "<string>",
"flow_slug": "<string>",
"id": "<string>",
"level": "<string>",
"message": "<string>",
"node_id": "<string>",
"node_type": "<string>",
"request_id": "<string>",
"stack_trace": "<string>"
}
],
"offset": 123,
"total": 123
}{
"code": "BAD_REQUEST",
"error": "invalid request parameters"
}{
"code": "UNAUTHORIZED",
"error": "unauthorized"
}{
"code": "INTERNAL_ERROR",
"error": "internal server error"
}Authorizations
JWT Bearer token authentication
Headers
Workspace ID
Path Parameters
Request ID
Query Parameters
Project ID (uses default if not specified)
Limit results (max 1000)
Offset for pagination
Was this page helpful?
⌘I