Update a workflow
Applies a partial update (name, platform, status, ocr_engine). Org-scoped — workflows in other orgs return 404.
curl --request PATCH \
--url https://api.axilio.ai/api/v1/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'X-Axilio-Api-Key: <api-key>' \
--data '
{
"capture": true,
"name": "<string>",
"recording": true,
"telemetry": true
}
'import requests
url = "https://api.axilio.ai/api/v1/workflows/{workflow_id}"
payload = {
"capture": True,
"name": "<string>",
"recording": True,
"telemetry": True
}
headers = {
"X-Axilio-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Axilio-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({capture: true, name: '<string>', recording: true, telemetry: true})
};
fetch('https://api.axilio.ai/api/v1/workflows/{workflow_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.axilio.ai/api/v1/workflows/{workflow_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'capture' => true,
'name' => '<string>',
'recording' => true,
'telemetry' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Axilio-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.axilio.ai/api/v1/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Axilio-Api-Key", "<api-key>")
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.patch("https://api.axilio.ai/api/v1/workflows/{workflow_id}")
.header("X-Axilio-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.axilio.ai/api/v1/workflows/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Axilio-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}"
response = http.request(request)
puts response.read_body{
"stats": {
"success_rate": 123,
"total_runs": 123
},
"workflow": {
"capture": true,
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_run_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"ocr_engine": "free",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platform": "android",
"recording": true,
"status": "ready",
"telemetry": true,
"updated_at": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Authorizations
Customer API key (axl_ prefix).
Path Parameters
workflow identifier
Body
Request body for updating mutable workflow fields.
Capture media this workflow's runs produce on the phone into the org's file library (default true). false disables capture for every run dispatched through the scheduler.
Updated workflow name.
Updated OCR backend selection.
free, premium Updated target platform.
ios, android, both Record this workflow's runs (default true). false suppresses video recording and the rolling thumbnail entirely, for every run dispatched through the scheduler.
Updated lifecycle status.
ready, training, running Emit telemetry for this workflow's runs (default true). false suppresses both live frames and durable trace storage.
curl --request PATCH \
--url https://api.axilio.ai/api/v1/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'X-Axilio-Api-Key: <api-key>' \
--data '
{
"capture": true,
"name": "<string>",
"recording": true,
"telemetry": true
}
'import requests
url = "https://api.axilio.ai/api/v1/workflows/{workflow_id}"
payload = {
"capture": True,
"name": "<string>",
"recording": True,
"telemetry": True
}
headers = {
"X-Axilio-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Axilio-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({capture: true, name: '<string>', recording: true, telemetry: true})
};
fetch('https://api.axilio.ai/api/v1/workflows/{workflow_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.axilio.ai/api/v1/workflows/{workflow_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'capture' => true,
'name' => '<string>',
'recording' => true,
'telemetry' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Axilio-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.axilio.ai/api/v1/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Axilio-Api-Key", "<api-key>")
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.patch("https://api.axilio.ai/api/v1/workflows/{workflow_id}")
.header("X-Axilio-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.axilio.ai/api/v1/workflows/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Axilio-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"capture\": true,\n \"name\": \"<string>\",\n \"recording\": true,\n \"telemetry\": true\n}"
response = http.request(request)
puts response.read_body{
"stats": {
"success_rate": 123,
"total_runs": 123
},
"workflow": {
"capture": true,
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_run_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"ocr_engine": "free",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platform": "android",
"recording": true,
"status": "ready",
"telemetry": true,
"updated_at": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}