Runs & results - DQE One Standalone API
Follow the execution of a process started with
runProcess, then fetch its result.
{DOMAIN} is the host name of your own
DQE One Standalone server — it is self-hosted, so this value
depends on your deployment. {EMAIL} is your
DQE One login and {API_TOKEN} the token
generated in My Account > API Token .
Get run status - DQE One Standalone API
Returns one run, or the list of your runs. Poll it after
runProcess until the status is Finished
or Failed.
getRuns
⬇ Download OpenAPI 1.0.0 spec (JSON) — this endpoint only ⬇ Download AI/LLM reference (.md)
Request
Send a GET request. Pass id for
a single run; otherwise you get an array of all
your runs (no pagination).
Filters: processId narrows
the list to one process; kind filters by process
kind but is
ignored when processId is present
(they do not combine). count is the number of
rows in the output file, not the number of records processed.
No progress percentage or detailed metrics are exposed here;
review details in the web interface.
GET https://{DOMAIN}/api/Run/get?id={id} &processId={processId} &kind={kind}
Code examples
Get run status
cURL JavaScript Python PHP Node.js Java C# Go
curl -u "{EMAIL}:{API_TOKEN}" \
"https://{DOMAIN}/api/Run/get?id=101"
fetch("https://{DOMAIN}/api/Run/get?id=101", {
method: "GET",
headers: {
"Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}")
}
})
.then(r => r.text())
.then(data => console.log(data));
import requests
response = requests.get(
"https://{DOMAIN}/api/Run/get",
auth=("{EMAIL}", "{API_TOKEN}"),
params={"id": "101"},
)
print(response.status_code, response.text)
<?php
$ch = curl_init("https://{DOMAIN}/api/Run/get?id=101");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status . " " . $response;
const axios = require('axios');
axios({
method: "get",
url: "https://{DOMAIN}/api/Run/get",
auth: { username: "{EMAIL}", password: "{API_TOKEN}"
},
params: { "id": "101" }
})
.then(res => console.log(res.status, res.data))
.catch(err => console.log(err.response ? err.response.status
: err.message, err.response && err.response.data));
import java.net.URI;
import java.net.http.*;
import java.util.Base64;
String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes());
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://{DOMAIN}/api/Run/get?id=101"))
.header("Authorization", "Basic " + auth)
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " +
response.body());
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}")));
using var request = new HttpRequestMessage(HttpMethod.Get,
"https://{DOMAIN}/api/Run/get?id=101");
var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode + " "
+ await response.Content.ReadAsStringAsync());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/Run/get?id=101",
nil)
req.SetBasicAuth("{EMAIL}", "{API_TOKEN}")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(out))
}
Parameters
Field
Description
Type
Mand / Opt
id
Run id (returns a single object).
Integer
Optional
processId
Filter by process.
Integer
Optional
kind
Filter by process kind (ignored when processId is set).
String
Optional
Authentication: HTTP Basic — your DQE One
email and your API token (My Account > API Token ).
See the Introduction article.
Response
A run (with id) or an array of runs. HTTP status
200 .
Key
Description
Type
id
Integer
processId
Integer
type
String
startedOn
String
updatedOn
String
status
Free text. Seen: Started, Creating DQE Fields,
Reading, In Progress, Writing, Finished, Failed.
String
outputFile
String
count
Rows in the output file.
Integer
error
String
Status values
status is free text; these values are produced
today.
status
Meaning
Started
The run is queued or just beginning.
Creating DQE Fields
First run on a CRM/database source: DQE One is
adding its result fields (see
Field Reference in DQE One Standalone ).
Reading
Reading records from the source.
In Progress
Processing.
Writing
Writing results.
Finished
Done. outputFile and count
are filled.
Failed
Stopped with an error; see error.
Polling pattern
run_id=$(curl -s -u "$EMAIL:$TOKEN" "https://$DOMAIN/api/Process/run?id=42"
| jq -r .run_id)
while true; do
status=$(curl -s -u "$EMAIL:$TOKEN" "https://$DOMAIN/api/Run/get?id=$run_id"
| jq -r .status)
echo "$status"; [ "$status" = "Finished" ] || [ "$status"
= "Failed" ] && break
sleep 5
done
curl -u "$EMAIL:$TOKEN" -OJ "https://$DOMAIN/api/File/get?processId=42"
Jobs run one at a time per user, so a run can stay in
Started while an earlier job finishes. Download
the result with
Files → Download a process result .
Response example
Example response
{
"id" : 101,
"processId" : 42,
"type" :
"check_email" ,
"startedOn" :
"2026-11-10T09:00:00Z" ,
"updatedOn" :
"2026-11-10T09:01:12Z" ,
"status" :
"Finished" ,
"outputFile" :
"out.csv" ,
"count" : 1500,
"error" : null
}
Errors
HTTP
Body / meaning
401
Unauthorized
404
Run not found
Test the API
Click the button below to test this endpoint live in your
browser.
Heads-up: this console sends a
real request to your own server from your
browser, with your real API token.
Open console