Run Workflow
curl --request POST \
--url https://encrata.com/api/workflows/{id}/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"input": {}
}'import requests
url = "https://encrata.com/api/workflows/{id}/run"
payload = { "input": {} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({input: {}})
};
fetch('https://encrata.com/api/workflows/{id}/run', 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://encrata.com/api/workflows/{id}/run",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://encrata.com/api/workflows/{id}/run"
payload := strings.NewReader("{\n \"input\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://encrata.com/api/workflows/{id}/run")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://encrata.com/api/workflows/{id}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {}\n}"
response = http.request(request)
puts response.read_bodyWorkflows
Run Workflow
Trigger a manual workflow execution with optional input data.
POST
/
api
/
workflows
/
{id}
/
run
Run Workflow
curl --request POST \
--url https://encrata.com/api/workflows/{id}/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"input": {}
}'import requests
url = "https://encrata.com/api/workflows/{id}/run"
payload = { "input": {} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({input: {}})
};
fetch('https://encrata.com/api/workflows/{id}/run', 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://encrata.com/api/workflows/{id}/run",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://encrata.com/api/workflows/{id}/run"
payload := strings.NewReader("{\n \"input\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://encrata.com/api/workflows/{id}/run")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://encrata.com/api/workflows/{id}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {}\n}"
response = http.request(request)
puts response.read_bodyAuthentication
Requires a JWT token or API key in theAuthorization header.
Authorization: Bearer YOUR_TOKEN
Request
The workflow ID to execute.
Input data passed to the first step of the workflow.
Optional. Prevents duplicate runs if the same key is sent again within 24 hours.
Example request
curl -X POST "https://encrata.com/api/workflows/wf_abc123/run" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Idempotency-Key: run-20260601-001" \
-H "Content-Type: application/json" \
-d '{ "input": { "email": "jane@company.com" } }'
import requests
resp = requests.post(
"https://encrata.com/api/workflows/wf_abc123/run",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Idempotency-Key": "run-20260601-001",
},
json={"input": {"email": "jane@company.com"}},
)
print(resp.json())
Response
Returns the created run object.{
"id": "run_def456",
"workflow_id": "wf_abc123",
"status": "running",
"input": { "email": "jane@company.com" },
"started_at": "2026-06-01T10:00:00Z"
}
Rate Limits
Workflow runs are limited to 60 per minute per user. Exceeding this returns429 Too Many Requests.
Credits
Each enrichment step consumes credits at the standard API rate. Non-enrichment steps (condition, delay, webhook, transform) are free.⌘I