Preview a resolved workflow (Beta)
curl --request POST \
--url https://api.valyu.ai/v1/workflows/{slug}/preview \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"workflow_params": {
"company": "NVIDIA (NVDA)"
},
"workflow_version": 1
}
'import requests
url = "https://api.valyu.ai/v1/workflows/{slug}/preview"
payload = {
"workflow_params": { "company": "NVIDIA (NVDA)" },
"workflow_version": 1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({workflow_params: {company: 'NVIDIA (NVDA)'}, workflow_version: 1})
};
fetch('https://api.valyu.ai/v1/workflows/{slug}/preview', 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/{slug}/preview",
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([
'workflow_params' => [
'company' => 'NVIDIA (NVDA)'
],
'workflow_version' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.valyu.ai/v1/workflows/{slug}/preview"
payload := strings.NewReader("{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-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.post("https://api.valyu.ai/v1/workflows/{slug}/preview")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/workflows/{slug}/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}"
response = http.request(request)
puts response.read_body{
"workflow": {
"slug": "ib-company-profile",
"version": 1
},
"resolved": {
"input": "Build a company profile for NVIDIA (NVDA) covering its business, financials, and recent developments.",
"research_strategy": "<string>",
"report_format": "<string>",
"deliverables": [
{
"type": "xlsx",
"description": "A model summary tab with revenue, margins, and key ratios."
}
],
"mode": "heavy",
"tools": {
"code_execution": true,
"screenshots": true,
"browser_use": true,
"charts": true
},
"output_formats": [
{
"type": "object",
"properties": {
"base_case": {
"type": "string"
},
"bull_case": {
"type": "string"
},
"bear_case": {
"type": "string"
},
"confidence": {
"type": "number"
}
}
},
"toon"
]
},
"estimated_credits": null
}Preview Workflow
Resolve a Workflow template against your params without running it.
POST
/
v1
/
workflows
/
{slug}
/
preview
Preview a resolved workflow (Beta)
curl --request POST \
--url https://api.valyu.ai/v1/workflows/{slug}/preview \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"workflow_params": {
"company": "NVIDIA (NVDA)"
},
"workflow_version": 1
}
'import requests
url = "https://api.valyu.ai/v1/workflows/{slug}/preview"
payload = {
"workflow_params": { "company": "NVIDIA (NVDA)" },
"workflow_version": 1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({workflow_params: {company: 'NVIDIA (NVDA)'}, workflow_version: 1})
};
fetch('https://api.valyu.ai/v1/workflows/{slug}/preview', 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/{slug}/preview",
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([
'workflow_params' => [
'company' => 'NVIDIA (NVDA)'
],
'workflow_version' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.valyu.ai/v1/workflows/{slug}/preview"
payload := strings.NewReader("{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-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.post("https://api.valyu.ai/v1/workflows/{slug}/preview")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valyu.ai/v1/workflows/{slug}/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflow_params\": {\n \"company\": \"NVIDIA (NVDA)\"\n },\n \"workflow_version\": 1\n}"
response = http.request(request)
puts response.read_body{
"workflow": {
"slug": "ib-company-profile",
"version": 1
},
"resolved": {
"input": "Build a company profile for NVIDIA (NVDA) covering its business, financials, and recent developments.",
"research_strategy": "<string>",
"report_format": "<string>",
"deliverables": [
{
"type": "xlsx",
"description": "A model summary tab with revenue, margins, and key ratios."
}
],
"mode": "heavy",
"tools": {
"code_execution": true,
"screenshots": true,
"browser_use": true,
"charts": true
},
"output_formats": [
{
"type": "object",
"properties": {
"base_case": {
"type": "string"
},
"bull_case": {
"type": "string"
},
"bear_case": {
"type": "string"
},
"confidence": {
"type": "number"
}
}
},
"toon"
]
},
"estimated_credits": null
}Beta
Resolve a template using the supplied parameters without executing research. The response includes the prompt, research strategy, report format and other resolved configuration.
Use preview to catch missing inputs and check instructions before a paid run. A successful preview validates template resolution, not the factual quality of the report that a future run will produce.
Authorizations
API key for authentication. Get yours at platform.valyu.ai.
Path Parameters
The workflow slug.
Body
application/json
Resolve a workflow template against supplied parameters without running it.
Response
Resolved configuration.
The resolved configuration a run with these parameters would use.
Was this page helpful?