List workflows
curl --request GET \
--url https://api.infery.ai/v1/workflows \
--header 'Authorization: <api-key>'import requests
url = "https://api.infery.ai/v1/workflows"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.infery.ai/v1/workflows', 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.infery.ai/v1/workflows",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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://api.infery.ai/v1/workflows"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.infery.ai/v1/workflows")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.infery.ai/v1/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "b0e9f2a4-2b1a-4c7d-9a3e-1f5c8d2e4b60",
"workspaceId": "7d1c0a55-9f2b-4a13-8c6e-30b4e9a1c7f2",
"name": "Weekly report",
"description": "Summarise the week and render a PDF",
"latestVersion": 3,
"isActive": true,
"createdAt": "2026-05-04T09:15:22.113Z",
"updatedAt": "2026-05-06T11:02:47.900Z",
"deletedAt": null,
"createdByUserId": "4e5a1b8c-77d3-4c21-a0fe-9b6d2c3a5e11",
"sharingScope": "private",
"sharePermission": "read"
}
],
"total": 42,
"limit": 20,
"offset": 0
}{
"error": {
"message": "Model not found",
"type": "invalid_request_error",
"code": "model_not_found",
"param": "model",
"job_id": "job_1hR9xTPZqK4mVLc2nJ7fY5wB"
}
}Workflows
List workflows
GET /v1/workflows
GET
/
v1
/
workflows
List workflows
curl --request GET \
--url https://api.infery.ai/v1/workflows \
--header 'Authorization: <api-key>'import requests
url = "https://api.infery.ai/v1/workflows"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.infery.ai/v1/workflows', 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.infery.ai/v1/workflows",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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://api.infery.ai/v1/workflows"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.infery.ai/v1/workflows")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.infery.ai/v1/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "b0e9f2a4-2b1a-4c7d-9a3e-1f5c8d2e4b60",
"workspaceId": "7d1c0a55-9f2b-4a13-8c6e-30b4e9a1c7f2",
"name": "Weekly report",
"description": "Summarise the week and render a PDF",
"latestVersion": 3,
"isActive": true,
"createdAt": "2026-05-04T09:15:22.113Z",
"updatedAt": "2026-05-06T11:02:47.900Z",
"deletedAt": null,
"createdByUserId": "4e5a1b8c-77d3-4c21-a0fe-9b6d2c3a5e11",
"sharingScope": "private",
"sharePermission": "read"
}
],
"total": 42,
"limit": 20,
"offset": 0
}{
"error": {
"message": "Model not found",
"type": "invalid_request_error",
"code": "model_not_found",
"param": "model",
"job_id": "job_1hR9xTPZqK4mVLc2nJ7fY5wB"
}
}The workflows this key can see. Sharing is per workflow, so this is not necessarily everything in the workspace.
Authorizations
API key in format: Bearer inf_***
Query Parameters
Page size. Integer; defaults to 20, and anything above 100 is clamped to 100.
Example:
20
Rows to skip. Integer; defaults to 0.
Example:
0
Response
One page of visible workflows.
One page of workflows this caller may see, newest first by createdAt.
Show child attributes
Show child attributes
Total workflows matching the SAME visibility filter as items — not the workspace total. A workflow the caller cannot see is counted nowhere.
Example:
42
Page size actually applied, after the server clamp to 100.
Example:
20
Offset actually applied.
Example:
0