List runs
Returned newest first (started_at DESC). List shape - checks, reviews, and the decision fields are deliberately absent; list to find runs, then GET /v1/runs/{id} to read results.
status and decision are independent axes and are AND-ed together. Every pairing is legal; ?status=completed&decision=review - runs that look finished but are not - is the most useful one.
?status=failed does not return expired runs. Query both if you mean "everything that halted badly".
curl -X GET "https://api.deepvue.link/v1/runs?workflow_id=123e4567-e89b-12d3-a456-426614174000&status=in_progress&decision=review&limit=50&offset=0" \
-H "Content-Type: application/json" \
-H "client-id: YOUR_API_KEY" \
-H "x-api-key: YOUR_API_KEY"
import requests
import json
url = "https://api.deepvue.link/v1/runs?workflow_id=123e4567-e89b-12d3-a456-426614174000&status=in_progress&decision=review&limit=50&offset=0"
headers = {
"Content-Type": "application/json",
"client-id": "YOUR_API_KEY",
"x-api-key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api.deepvue.link/v1/runs?workflow_id=123e4567-e89b-12d3-a456-426614174000&status=in_progress&decision=review&limit=50&offset=0", {
method: "GET",
headers: {
"Content-Type": "application/json",
"client-id": "YOUR_API_KEY",
"x-api-key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.deepvue.link/v1/runs?workflow_id=123e4567-e89b-12d3-a456-426614174000&status=in_progress&decision=review&limit=50&offset=0", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("client-id", "YOUR_API_KEY")
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.deepvue.link/v1/runs?workflow_id=123e4567-e89b-12d3-a456-426614174000&status=in_progress&decision=review&limit=50&offset=0')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['client-id'] = 'YOUR_API_KEY'
request['x-api-key'] = 'YOUR_API_KEY'
response = http.request(request)
puts response.body
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workflow_id": "123e4567-e89b-12d3-a456-426614174000",
"reference_id": "example_string",
"status": "in_progress",
"started_at": "2024-12-25T10:00:00Z",
"completed_at": "2024-12-25T10:00:00Z",
"action_required": {
"type": "customer_input",
"signal_name": "selfie_captured",
"url": "example_string"
},
"error": {
"code": "CHECK_FAILED",
"check": "example_string",
"message": "example_string"
}
}
],
"total": 128,
"limit": 50,
"offset": 0
}
{
"error": "invalid status (supported: completed, cancelled, expired, failed, in_progress, abandoned)"
}
{
"error": "invalid decision (supported: review, approve, reject)"
}
{
"error": "missing credentials: send client-id + x-api-key headers"
}
{
"error": "invalid Deepvue credentials"
}
/v1/runs
Target server for requests. Edit to use your own host.
Your Deepvue client identifier.
Your Deepvue API key. Secret - keep it server-side.
Any one of the six run statuses.
Where a human verdict stands - an axis independent of status.
Page size, 1–200.
Number of records to skip.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Your Deepvue client identifier.
API Key for authentication. Your Deepvue API key. Secret - keep it server-side.
Query Parameters
Any one of the six run statuses.
in_progressabandonedcompletedfailedexpiredcancelledWhere a human verdict stands - an axis independent of status.
reviewapproverejectPage size, 1–200.
Number of records to skip.