Create, update, run and delete data-quality processes on your self-hosted DQE One Standalone server. A process ties a data source (a CSV file, a database or a CRM) to an action such as checking emails, phones, addresses, names or companies, or finding duplicates.
createProcess → runProcess →
poll the run (Runs)
→ download the result.Related documentation: DQE One Standalone API — Introduction, Files, Credentials, Runs & results, RuleSets.
runProcess and deleteProcess are
GET requests even though they start a run and
delete a process. Never put these URLs in a crawler, a link
prefetcher or anything that replays GET requests.
Lists the processes you own, in no particular order.
listProcesses
Request
Send a GET request with your Basic credentials.
There are no parameters.
Code examples
List your processes
Parameters
This endpoint takes no parameters.
Response
Array. HTTP status 200.
The body is a JSON array; each element has these keys.
| Key | Description | Type |
|---|---|---|
| id | Integer | |
| name | String | |
| type | String | |
| isDraft | Boolean | |
| lastRunId | Integer |
Response example
Example response
Errors
| HTTP | Body / meaning |
|---|---|
| 401 |
Unauthorized
|
| 500 |
Unexpected error
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Returns the details of one process. A process owned by another user answers 404.
getProcess
Request
Send a GET request with the process id.
Code examples
Get a process
Parameters
| Field | Description | Type | Mand / Opt |
|---|---|---|---|
| id | Process id. | Integer | Mandatory |
Response
Process. HTTP status 200.
| Key | Description | Type |
|---|---|---|
| id | Integer | |
| name | String | |
| type | Process kind. | String |
| source | String | |
| description | String | |
| file | Integer | |
| credentials | Integer | |
| ruleSet | Integer | |
| lastRunId | Integer | |
| createdBy | String | |
| updatedBy | String | |
| createdOn | String | |
| updatedOn | String |
Response example
The response is a file attachment, not JSON.
Errors
| HTTP | Body / meaning |
|---|---|
| 400 |
No id found.
|
| 401 |
Unauthorized
|
| 404 |
Process not found
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Creates a process that is immediately ready to run (it is not saved as a draft). Validation is strict and checks the live source, so a wrong credential, object or field is reported at creation time.
createProcess
Request
Send a JSON body. Required: name, kind,
source, primaryKey and fields;
the rest depends on the source and the kind (tables below).
Code examples
Create a process
Parameters
| Field | Description | Type | Mand / Opt |
|---|---|---|---|
| name | String | Mandatory | |
| kind |
Values:
find_and_replace, format,
audit, check_address,
check_b2b, check_email,
check_phone, check_name,
check_duplicate
|
String | Mandatory |
| source |
Values:
salesforce, dynamics,
postgres, snowflake,
bigquery, sftp,
csv
|
String | Mandatory |
| primaryKey | Must exist in the file headers / source object. For Salesforce and Dynamics it must be the object's real primary key. | String | Mandatory |
| fields | Shape depends on 'kind' - see the Processes article ('fields' per kind). | Object | Mandatory |
| description | String | Optional | |
| file | csv only: id from /api/File/add. The file is CLONED and linked to the process. | Integer | Optional |
| credential | Every source except csv. Its type must match 'source'. | Integer | Optional |
| object | Table / sObject / entity. Required for salesforce, dynamics, postgres, snowflake, bigquery. | String | Optional |
| ruleSet | check_duplicate only: the numeric 'id' from /api/Ruleset/list (NOT the string setId). | Integer | Optional |
| input_file_path | String | Optional | |
| output_dir_path | String | Optional | |
| reject_dir_path | String | Optional | |
| filters | List of blocks, each a list of rows. [[]] means no filter. | Array | Optional |
| sync |
Default:
false
|
Boolean | Optional |
| allowEmpty |
Default:
false
|
Boolean | Optional |
| autoMerge |
Default:
false
|
Boolean | Optional |
| mergeThreshold |
Default:
100
|
Integer | Optional |
| mergeB2BCode |
Allowed items:
A+, A,
B+, B, C+,
C, D+, D
|
Array | Optional |
| mergeRNVPCode |
Allowed items:
10, 20,
21, 22, 23,
24, 25, 30,
31, 40, 41,
50, 51, 60,
61, 70, 71,
80, 81, 90
|
Array | Optional |
| updateChildToInactive |
Default:
false
|
Boolean | Optional |
| deleteSFTP |
Default:
false
|
Boolean | Optional |
| metaToReparent | Object | Optional | |
| next | Id of a process to chain after this one. | Integer | Optional |
The fields object, per kind
Every value is the
name of a column (CSV) or field (database/CRM)
that must exist in the source; primaryKey too.
| kind |
Keys in fields
|
|---|---|
| check_email |
FieldLabel
|
| check_phone |
CountryField, FieldLabel,
Format
|
| check_name |
Salutation, FirstName,
LastName
|
| check_address |
City, Country,
DefaultCountry, FieldTag,
PostalCode, Street;
optional State
|
| check_b2b |
City, CompanyName,
Country, PostalCode,
Siret, Street; optional
State, plus DQE_<field>
keys for the extra B2B notice fields
|
| check_duplicate |
One key = the RuleSet's string
setId; its value is the list of
matching-rule labels to use, which must be among
the RuleSet's matching.Labels[].value
(read them with /api/Ruleset/get).
Example: {"RS_ABC": ["Email + Name"]}
|
| find_and_replace, format, audit | Not usable through the API today — see Known limitations below. |
Required keys, per source
| source | Keys required in addition to name, kind, source, primaryKey, fields |
|---|---|
| salesforce, dynamics, postgres, bigquery |
object, credential
(its type must match the source)
|
| snowflake | Same, but Snowflake processes currently fail validation (see limitations) |
| sftp |
credential, input_file_path,
output_dir_path, reject_dir_path
(the three paths must exist on the SFTP server)
|
| csv |
file — the id returned by
/api/File/add. The file is
cloned and the clone is linked
to the process; the original stays free and deletable.
|
Any source, with kind =
check_duplicate
|
plus ruleSet — the numeric
id from /api/Ruleset/list
(not the string setId)
|
Filters
filters is a list of blocks,
each block a list of rows {"field","operator","value"}.
Every row after the first in a block also needs
"relation" (AND or OR).
[[]] means “no filter”.
How validation proceeds
The server checks JSON types first, then required keys, then
looks up the credential, the object and the file
on the live source, then validates fields
and filters. Because types are checked first,
a missing required key is reported as
Key name must be a String.; the
... need to be set message only appears when
the key is present but empty. Defaults when a key is absent:
booleans false, mergeThreshold
100. autoMerge: true switches on all three automatic
merges at once.
Response
Created. HTTP status 201.
| Key | Description | Type |
|---|---|---|
| status |
Values:
success
|
String |
| id | Integer |
Response example
Example response
Errors
| HTTP | Body / meaning |
|---|---|
| 400 |
Key name must be a String.
|
| 401 |
Unauthorized
|
| 404 |
Credential not found.
|
| 500 |
Selected Credential seem to be Expired.
|
Known limitations
-
find_and_replaceandformatprocesses fail with a 500 when created through the API;auditis accepted but has not been verified. Create these in the web interface. - Snowflake processes always fail validation through the API (and a Snowflake credential also needs a browser login).
-
maxRecordsandbackupare accepted but have no effect.
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Changes an existing process. It re-runs the full creation validation.
updateProcess
Request
Send a PUT with the same JSON body as creation
plus the process id. kind,
source, object, the SFTP paths
and file cannot be changed.
false value falls back to the current
value, so a boolean such as sync or
autoMerge cannot be set back to false
and a list cannot be cleared; (2) the process is rebuilt
from the values you send, so fields you do not list — including
its link to the last run — return to their defaults, which
also lifts the “Process already running” protection; (3)
success is HTTP 201, not 200.
Code examples
Update a process
Parameters
| Field | Description | Type | Mand / Opt |
|---|---|---|---|
| name | String | Mandatory | |
| kind |
Values:
find_and_replace, format,
audit, check_address,
check_b2b, check_email,
check_phone, check_name,
check_duplicate
|
String | Mandatory |
| source |
Values:
salesforce, dynamics,
postgres, snowflake,
bigquery, sftp,
csv
|
String | Mandatory |
| primaryKey | Must exist in the file headers / source object. For Salesforce and Dynamics it must be the object's real primary key. | String | Mandatory |
| fields | Shape depends on 'kind' - see the Processes article ('fields' per kind). | Object | Mandatory |
| description | String | Optional | |
| file | csv only: id from /api/File/add. The file is CLONED and linked to the process. | Integer | Optional |
| credential | Every source except csv. Its type must match 'source'. | Integer | Optional |
| object | Table / sObject / entity. Required for salesforce, dynamics, postgres, snowflake, bigquery. | String | Optional |
| ruleSet | check_duplicate only: the numeric 'id' from /api/Ruleset/list (NOT the string setId). | Integer | Optional |
| input_file_path | String | Optional | |
| output_dir_path | String | Optional | |
| reject_dir_path | String | Optional | |
| filters | List of blocks, each a list of rows. [[]] means no filter. | Array | Optional |
| sync |
Default:
false
|
Boolean | Optional |
| allowEmpty |
Default:
false
|
Boolean | Optional |
| autoMerge |
Default:
false
|
Boolean | Optional |
| mergeThreshold |
Default:
100
|
Integer | Optional |
| mergeB2BCode |
Allowed items:
A+, A,
B+, B, C+,
C, D+, D
|
Array | Optional |
| mergeRNVPCode |
Allowed items:
10, 20,
21, 22, 23,
24, 25, 30,
31, 40, 41,
50, 51, 60,
61, 70, 71,
80, 81, 90
|
Array | Optional |
| updateChildToInactive |
Default:
false
|
Boolean | Optional |
| deleteSFTP |
Default:
false
|
Boolean | Optional |
| metaToReparent | Object | Optional | |
| next | Id of a process to chain after this one. | Integer | Optional |
| id | Integer | Mandatory |
Response
Updated (note: 201, not 200). HTTP status 201.
| Key | Description | Type |
|---|---|---|
| status |
Values:
success
|
String |
| id | Integer |
Response example
Example response
Errors
| HTTP | Body / meaning |
|---|---|
| 400 |
No id found.
|
| 401 |
Unauthorized
|
| 404 |
Process not found.
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Queues a run of the process and returns immediately. The work is asynchronous: follow it with the Runs endpoint.
runProcess
Request
Send a GET request with the process id.
Started and queued. Jobs run
one at a time per user, so a second run
waits for the first. The RuleSet linked to a deduplication
process is locked (not editable) from the moment a run is
queued. There is no endpoint to cancel a run.
{"status":"error","message":"..."}. run_id
is a string.
Code examples
Run a process
Parameters
| Field | Description | Type | Mand / Opt |
|---|---|---|---|
| id | Process id. | Integer | Mandatory |
Response
Enqueued (or soft error). HTTP status 200.
| Key | Description | Type |
|---|---|---|
| status |
HTTP 200 is returned even when status is 'error'
(draft process, no SFTP file, queue failure).
Values:
success, error
|
String |
| message | String | |
| run_id | Run id, as a string. | String |
Response example
Example response
Errors
| HTTP | Body / meaning |
|---|---|
| 400 |
Process already running
|
| 401 |
Unauthorized
|
| 404 |
Process not found
|
| 500 |
Test the API
Click the button below to test this endpoint live in your browser.
Open console
Deletes a process. Allowed when the process is a draft, has
never run, or its last run is Finished or
Failed.
deleteProcess
Request
Send a GET request with the process id (yes,
GET).
Code examples
Delete a process
Parameters
| Field | Description | Type | Mand / Opt |
|---|---|---|---|
| id | Process id. | Integer | Mandatory |
Response
Deleted. HTTP status 200.
| Key | Description | Type |
|---|---|---|
| status |
Values:
success
|
String |
Response example
Example response
Errors
| HTTP | Body / meaning |
|---|---|
| 400 |
No id found.
|
| 401 |
Unauthorized
|
| 404 |
Process not found
|
| 423 |
Process is not in a state that allows deletion
|
| 500 |
Failed to delete the Process
|
Test the API
Click the button below to test this endpoint live in your browser.
Open console
See also
- DQE One Standalone API — Introduction (authentication, conventions, end-to-end workflow)
- DQE One Standalone API — Files, Credentials, Runs & results, RuleSets
- Use the Lookup API in DQE One Standalone
- Field Reference in DQE One Standalone
Related to