curl --request GET \
--url https://flowra.dev/api/v1/tools/execution-logs \
--header 'x-api-key: <api-key>'import requests
url = "https://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/tools/execution-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{
"success": true,
"message": "Data retrieved successfully",
"data": [
{
"id": "",
"toolSlug": "",
"projectId": "",
"userId": "",
"workflowId": "",
"connectedAccountId": "",
"inputParameters": {},
"outputData": {},
"error": "",
"successful": true,
"executionDurationMs": 0,
"logId": "",
"sessionInfo": {},
"executedAt": "2024-01-01T00:00:00.000Z",
"metadata": {},
"toolIconUrl": ""
}
],
"total": 100,
"totalTools": 5000,
"page": 1,
"limit": 20,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}List tool execution logs
View history of tool runs with status, inputs, and outputs. Use for debugging and monitoring how often tools are called and whether they succeed or fail.
curl --request GET \
--url https://flowra.dev/api/v1/tools/execution-logs \
--header 'x-api-key: <api-key>'import requests
url = "https://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-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://flowra.dev/api/v1/tools/execution-logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/tools/execution-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{
"success": true,
"message": "Data retrieved successfully",
"data": [
{
"id": "",
"toolSlug": "",
"projectId": "",
"userId": "",
"workflowId": "",
"connectedAccountId": "",
"inputParameters": {},
"outputData": {},
"error": "",
"successful": true,
"executionDurationMs": 0,
"logId": "",
"sessionInfo": {},
"executedAt": "2024-01-01T00:00:00.000Z",
"metadata": {},
"toolIconUrl": ""
}
],
"total": 100,
"totalTools": 5000,
"page": 1,
"limit": 20,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}Authorizations
Project API key. Create and manage keys in the dashboard under Project → API Keys. Send as header: x-api-key:
Query Parameters
Search keyword for filtering results
"john doe"
Page number (1-based)
x >= 11
Number of items per page
1 <= x <= 10020
Number of items to skip (for offset-based pagination)
x >= 00
Field name to sort by
"createdAt"
Sort order
ASC, DESC "DESC"
Comma-separated list of fields to include in response
"id,name,email"
Filter by tool slug
"gmail_send_email"
Filter by workflow or agent ID
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
Filter by log id (row id or logId)
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
When set, only logs whose tool type matches: actions (action tools) or triggers (webhook/poll).
actions, triggers "actions"
Response
Tool execution logs retrieved successfully
Success status
true
Response message
"Data retrieved successfully"
Array of items
Show child attributes
Show child attributes
[
{
"id": "",
"toolSlug": "",
"projectId": "",
"userId": "",
"workflowId": "",
"connectedAccountId": "",
"inputParameters": {},
"outputData": {},
"error": "",
"successful": true,
"executionDurationMs": 0,
"logId": "",
"sessionInfo": {},
"executedAt": "2024-01-01T00:00:00.000Z",
"metadata": {},
"toolIconUrl": ""
}
]
Total number of items across all pages
100
Optional secondary total (e.g. nested tools across all matching toolkits)
5000
Current page number (1-based)
1
Number of items per page
20
Total number of pages
5
Whether there is a next page
true
Whether there is a previous page
false
Was this page helpful?