curl --request GET \
--url https://api.valyu.ai/v1/workflows \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.valyu.ai/v1/workflows"
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://api.valyu.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.valyu.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 => [
"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://api.valyu.ai/v1/workflows"
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://api.valyu.ai/v1/workflows")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/workflows")
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{
"workflows": [
{
"slug": "ib-company-profile",
"version": 1,
"title": "Company Profile",
"vertical": "investment-banking",
"tags": [
"company-profile",
"equities"
],
"subtitle": "One-page profile of a public company.",
"description": "Builds a company profile covering business, financials, and recent developments.",
"popular": true,
"recommended_mode": "heavy",
"estimated_time": "10-20 min",
"is_valyu": true,
"owner_org_id": null,
"variables": [
{
"key": "company",
"label": "Company name",
"type": "text",
"required": false,
"placeholder": "NVIDIA (NVDA)",
"help": "The company you want to profile.",
"examples": [
"NVIDIA (NVDA)",
"Microsoft (MSFT)"
],
"validation": {
"min_length": 1,
"max_length": 2,
"pattern": "<string>",
"enum": [
"<string>"
]
}
}
],
"deliverables": [
{
"type": "xlsx",
"description": "A model summary tab with revenue, margins, and key ratios."
}
],
"created_at": "2026-01-10T12:00:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"prompt": "Build a company profile for {company} covering its business, financials, and recent developments.",
"strategy": "<string>",
"report_format": "<string>",
"tools": {
"code_execution": true,
"screenshots": true,
"browser_use": true,
"charts": true
},
"changelog": "<string>",
"output_formats": [
{
"type": "object",
"properties": {
"base_case": {
"type": "string"
},
"bull_case": {
"type": "string"
},
"bear_case": {
"type": "string"
},
"confidence": {
"type": "number"
}
}
},
"toon"
]
}
],
"total": 44,
"next_cursor": null,
"verticals": [
"consulting",
"private-equity",
"life-sciences",
"investment-banking",
"hedge-funds",
"legal-regulatory",
"sales-intelligence",
"supply-chain"
]
}{
"success": false,
"error": "Invalid API key"
}{
"success": false,
"error": "API key does not have inference permission"
}{
"success": false,
"error": "Internal server error. Please try again later."
}List Workflows
Reference for listing available Workflows via GET /v1/workflows (Valyu-curated and your org’s templates).
curl --request GET \
--url https://api.valyu.ai/v1/workflows \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.valyu.ai/v1/workflows"
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://api.valyu.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.valyu.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 => [
"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://api.valyu.ai/v1/workflows"
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://api.valyu.ai/v1/workflows")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/workflows")
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{
"workflows": [
{
"slug": "ib-company-profile",
"version": 1,
"title": "Company Profile",
"vertical": "investment-banking",
"tags": [
"company-profile",
"equities"
],
"subtitle": "One-page profile of a public company.",
"description": "Builds a company profile covering business, financials, and recent developments.",
"popular": true,
"recommended_mode": "heavy",
"estimated_time": "10-20 min",
"is_valyu": true,
"owner_org_id": null,
"variables": [
{
"key": "company",
"label": "Company name",
"type": "text",
"required": false,
"placeholder": "NVIDIA (NVDA)",
"help": "The company you want to profile.",
"examples": [
"NVIDIA (NVDA)",
"Microsoft (MSFT)"
],
"validation": {
"min_length": 1,
"max_length": 2,
"pattern": "<string>",
"enum": [
"<string>"
]
}
}
],
"deliverables": [
{
"type": "xlsx",
"description": "A model summary tab with revenue, margins, and key ratios."
}
],
"created_at": "2026-01-10T12:00:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"prompt": "Build a company profile for {company} covering its business, financials, and recent developments.",
"strategy": "<string>",
"report_format": "<string>",
"tools": {
"code_execution": true,
"screenshots": true,
"browser_use": true,
"charts": true
},
"changelog": "<string>",
"output_formats": [
{
"type": "object",
"properties": {
"base_case": {
"type": "string"
},
"bull_case": {
"type": "string"
},
"bear_case": {
"type": "string"
},
"confidence": {
"type": "number"
}
}
},
"toon"
]
}
],
"total": 44,
"next_cursor": null,
"verticals": [
"consulting",
"private-equity",
"life-sciences",
"investment-banking",
"hedge-funds",
"legal-regulatory",
"sales-intelligence",
"supply-chain"
]
}{
"success": false,
"error": "Invalid API key"
}{
"success": false,
"error": "API key does not have inference permission"
}{
"success": false,
"error": "Internal server error. Please try again later."
}Authorizations
API key for authentication. Get yours at platform.valyu.ai.
Query Parameters
Filter by vertical (e.g. finance, life-sciences).
Which workflows to return: valyu (curated only), org (your org only), or all (both, default).
valyu, org, all Free-text search across title, subtitle, and description.
Comma-separated tags to filter by.
Maximum number of workflows to return (max 100).
1 <= x <= 100Comma-separated list of fields to expand. Pass version to include the full current version row for each workflow.
Response
List of workflows.
List of workflows.
Show child attributes
Show child attributes
Total number of workflows matching the filter.
44
Pagination cursor for the next page, or null when there are no more results.
null
Distinct verticals present across the curated catalog.
[
"consulting",
"private-equity",
"life-sciences",
"investment-banking",
"hedge-funds",
"legal-regulatory",
"sales-intelligence",
"supply-chain"
]
Was this page helpful?

