Get execution
curl --request GET \
--url https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId} \
--header 'x-api-key: <api-key>'import requests
url = "https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}"
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}', 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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}",
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}"
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}")
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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "initial",
"created_at": "2023-11-07T05:31:56Z",
"results": [
{
"filename": "<string>",
"url": "<string>",
"content": "<string>"
}
],
"url": "<string>",
"retry_after_seconds": 123
}{
"error": "<string>"
}{
"error": "<string>"
}Executions
Get execution
Retrieve the status and details of an execution
GET
/
workflows
/
{workflowId}
/
executions
/
{executionId}
Get execution
curl --request GET \
--url https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId} \
--header 'x-api-key: <api-key>'import requests
url = "https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}"
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}', 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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}",
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}"
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://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://felix.so/api/v1/workflows/{workflowId}/executions/{executionId}")
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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "initial",
"created_at": "2023-11-07T05:31:56Z",
"results": [
{
"filename": "<string>",
"url": "<string>",
"content": "<string>"
}
],
"url": "<string>",
"retry_after_seconds": 123
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
API key authentication. Get your key from Settings → API Keys.
Path Parameters
Workflow ID
Execution ID
Response
Execution details
Detailed workflow execution information. When status is initial or processing, includes retry_after_seconds as a polling hint.
Unique execution identifier
ID of the workflow being executed
Current execution status
Available options:
initial, processing, human_in_the_loop, finished, error Timestamp when the execution was created
Output files from the workflow's last step. Null if execution is not finished.
Show child attributes
Show child attributes
URL to view the execution in the Felix UI
Suggested polling interval in seconds. Present when execution is not yet finished (status is initial or processing).

