Get Workflow
curl --request GET \
--url https://api.example.com/v1/workflows/{id}import requests
url = "https://api.example.com/v1/workflows/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/workflows/{id}', 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.example.com/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/v1/workflows/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/v1/workflows/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"enabled": true,
"condition_entity": "<string>",
"condition_field": "<string>",
"condition_operator": "<string>",
"condition_value": "<string>",
"action_type": "<string>",
"action_config": {},
"max_triggers_per_day": 123,
"triggers_today": 123,
"last_triggered_at": "<string>",
"auto_disabled_reason": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
}Workflows
Get Workflow
Retrieve a single workflow configuration and its runtime state
GET
/
v1
/
workflows
/
{id}
Get Workflow
curl --request GET \
--url https://api.example.com/v1/workflows/{id}import requests
url = "https://api.example.com/v1/workflows/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/workflows/{id}', 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.example.com/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/v1/workflows/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/v1/workflows/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"enabled": true,
"condition_entity": "<string>",
"condition_field": "<string>",
"condition_operator": "<string>",
"condition_value": "<string>",
"action_type": "<string>",
"action_config": {},
"max_triggers_per_day": 123,
"triggers_today": 123,
"last_triggered_at": "<string>",
"auto_disabled_reason": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
}Request
Path Parameters
string
required
Workflow UUID.
Headers
Authorization: Bearer wbk_your_api_key_here
Response
object
Show properties
Show properties
string
Workflow UUID
string
Name
boolean
Active state
string
Entity type
string
Field evaluated
string
Operator
string
Value compared against
string
Action type
object
Action configuration
integer
Daily cap
integer
Number of times triggered in the current day
string
ISO 8601 timestamp, if any
string
If auto-disabled, why (e.g.
daily_cap_exceeded)string
ISO 8601 timestamp
string
ISO 8601 timestamp
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-Request-ID.
curl https://data.leadlex.com/functions/v1/api-gateway/v1/workflows/wf_01HY1 \
-H "Authorization: Bearer wbk_your_api_key_here"
import requests
API_KEY = "wbk_your_api_key_here"
wf_id = "wf_01HY1"
r = requests.get(
f"https://data.leadlex.com/functions/v1/api-gateway/v1/workflows/{wf_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json()["data"])
const id = 'wf_01HY1';
const res = await fetch(
`https://data.leadlex.com/functions/v1/api-gateway/v1/workflows/${id}`,
{ headers: { Authorization: 'Bearer wbk_your_api_key_here' } },
);
const { data } = await res.json();
console.log(data);
Example Response
{
"data": {
"id": "wf_01HY1",
"name": "Notify owner on lost deals",
"enabled": true,
"condition_entity": "deal",
"condition_field": "status",
"condition_operator": "changed_to",
"condition_value": "lost",
"action_type": "send_channel_message",
"action_config": {
"channel": "slack",
"recipient": "{{deal.owner.slack_id}}",
"message": "Deal {{deal.name}} was marked lost."
},
"max_triggers_per_day": 100,
"triggers_today": 3,
"last_triggered_at": "2026-04-17T09:31:00Z",
"auto_disabled_reason": null,
"created_at": "2026-03-01T08:00:00Z",
"updated_at": "2026-04-17T09:31:00Z"
}
}
Errors
| Status | Code | Description |
|---|---|---|
| 401 | invalid_key | Invalid or expired API key |
| 403 | insufficient_permissions | Missing read:workflows permission |
| 404 | not_found | Workflow not found |
| 429 | rate_limited | Rate limit exceeded |