Workflows
Get a workflow's contract
Read a workflow’s inputs, output shape, track record and endpoints by slug.
GET
/
v1
/
workflows
/
{slug}
Get a Workflow's API contract
curl --request GET \
--url https://api.valendata.com/v1/workflows/{slug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valendata.com/v1/workflows/{slug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.valendata.com/v1/workflows/{slug}', 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.valendata.com/v1/workflows/{slug}",
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: Bearer <token>"
],
]);
$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.valendata.com/v1/workflows/{slug}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.valendata.com/v1/workflows/{slug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valendata.com/v1/workflows/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"slug": "<string>",
"name": "<string>",
"description": "<string>",
"status": "<string>",
"input_schema": [
{
"name": "limit",
"type": "string",
"required": true,
"default": "<unknown>",
"description": "<string>",
"example": "<unknown>"
}
],
"input_json_schema": {},
"output": "<string>",
"output_json_schema": {},
"run_json_schema": {},
"trigger": {},
"reliability": {
"success_rate": 123,
"runs": 123,
"label": "<string>",
"typical_seconds": 123,
"last_success_at": "<string>",
"total_runs": 123
},
"api_endpoint": "/v1/workflows/test-workflow-api/run",
"runs_endpoint": "<string>",
"run_status_endpoint": "<string>",
"mcp_tool": "workflow_test-workflow-api"
}{
"detail": "Invalid or expired API key"
}{
"detail": "Invalid or expired API key"
}{
"detail": "Invalid or expired API key"
}Authorizations
ApiKeyAuthSessionAuth
API key with the vd_sk_ prefix. Create keys from Settings, API Keys in the dashboard.
Path Parameters
The workflow's slug (shown on its API tab).
Response
The workflow's contract.
Show child attributes
Show child attributes
JSON Schema (draft 2020-12) of inputs.
What outputs holds, in one sentence.
The API trigger node: {type: "api_trigger", node}.
Show child attributes
Show child attributes
Example:
"/v1/workflows/test-workflow-api/run"
Example:
"workflow_test-workflow-api"
⌘I
Get a Workflow's API contract
curl --request GET \
--url https://api.valendata.com/v1/workflows/{slug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valendata.com/v1/workflows/{slug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.valendata.com/v1/workflows/{slug}', 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.valendata.com/v1/workflows/{slug}",
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: Bearer <token>"
],
]);
$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.valendata.com/v1/workflows/{slug}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.valendata.com/v1/workflows/{slug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valendata.com/v1/workflows/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"slug": "<string>",
"name": "<string>",
"description": "<string>",
"status": "<string>",
"input_schema": [
{
"name": "limit",
"type": "string",
"required": true,
"default": "<unknown>",
"description": "<string>",
"example": "<unknown>"
}
],
"input_json_schema": {},
"output": "<string>",
"output_json_schema": {},
"run_json_schema": {},
"trigger": {},
"reliability": {
"success_rate": 123,
"runs": 123,
"label": "<string>",
"typical_seconds": 123,
"last_success_at": "<string>",
"total_runs": 123
},
"api_endpoint": "/v1/workflows/test-workflow-api/run",
"runs_endpoint": "<string>",
"run_status_endpoint": "<string>",
"mcp_tool": "workflow_test-workflow-api"
}{
"detail": "Invalid or expired API key"
}{
"detail": "Invalid or expired API key"
}{
"detail": "Invalid or expired API key"
}
