curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/tests \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/tests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/tests', 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://prod.api.elementary-data.com/public/beta/{env_id}/tests",
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://prod.api.elementary-data.com/public/beta/{env_id}/tests"
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://prod.api.elementary-data.com/public/beta/{env_id}/tests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/tests")
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{
"items": [
{
"definition_type": "not_null",
"disabled": true,
"id": "<string>",
"name": "<string>",
"severity": "ERROR",
"source_type": "dbt",
"test_type": "dbt_test",
"asset_id": "<string>",
"column_name": "<string>",
"config": {},
"deleted_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"owners": [],
"path": "<string>",
"project": "<string>",
"synced_at": "2023-11-07T05:31:56Z",
"tags": [],
"updated_at": "2023-11-07T05:31:56Z"
}
],
"has_more": false,
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}List tests
Lists test definitions. On a full scan disabled tests are omitted unless disabled=true is passed; the synced_since and deleted_since feeds always include them (with disabled: true) so a sync can observe a test being disabled. Full scan by default; pass synced_since for the upserts feed or deleted_since for the tombstones feed (mutually exclusive). A test’s synced_at changes when its definition changes — new executions do not bump it.
curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/tests \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/tests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/tests', 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://prod.api.elementary-data.com/public/beta/{env_id}/tests",
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://prod.api.elementary-data.com/public/beta/{env_id}/tests"
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://prod.api.elementary-data.com/public/beta/{env_id}/tests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/tests")
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{
"items": [
{
"definition_type": "not_null",
"disabled": true,
"id": "<string>",
"name": "<string>",
"severity": "ERROR",
"source_type": "dbt",
"test_type": "dbt_test",
"asset_id": "<string>",
"column_name": "<string>",
"config": {},
"deleted_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"owners": [],
"path": "<string>",
"project": "<string>",
"synced_at": "2023-11-07T05:31:56Z",
"tags": [],
"updated_at": "2023-11-07T05:31:56Z"
}
],
"has_more": false,
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Personal or account token.
Path Parameters
Environment identifier that scopes the request.
Query Parameters
Return only tests with these ids.
1000Return only tests running on these asset ids.
1000Return only tests of these test types.
1000Return only tests of these definition types.
1000Return only tests from these source types (e.g. dbt, elementary_cloud).
1000Return only tests tagged with any of these tags.
1000Disabled tests are omitted by default. Pass true to return only the disabled ones, false for the default (enabled only).
Upserts feed: tests whose synced_at >= this time (inclusive). Orders by synced_at.
Tombstones feed: tests whose deleted_at >= this time (inclusive). Orders by deleted_at.
Opaque cursor from a previous response's next_cursor. Reuse it only with the identical query parameters that produced it.
Maximum items to return per page (1-2000).
1 <= x <= 2000Sort field for a full scan. Ignored when synced_since/deleted_since is set (those feeds always order by their own cursor).
id, synced_at Sort direction for order_by.
asc, desc Response
Successful Response
Objects returned in the current page.
Show child attributes
Show child attributes
The only signal to continue pagination; a short page may still have more items because permission filtering can trim rows.
Opaque cursor for the next page, valid only with identical query parameters.

