Runs & results

Support DQE
Support DQE
  • Updated
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.
Related documentation: DQE One Standalone API — Introduction, Files, Credentials, Processes, Runs & results, RuleSets.
Jump togetRuns
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

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.
GEThttps://{DOMAIN}/api/Run/get?id={id}&processId={processId}&kind={kind}

Code examples

Get run status

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

See also

Related to

Was this article helpful?

0 out of 0 found this helpful