curl --request POST \
--url https://developer.synq.io/api/queries/v1/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": {
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
},
"pagination": {
"cursor": "<string>",
"pageSize": 1
}
}
'import requests
url = "https://developer.synq.io/api/queries/v1/resolve"
payload = {
"query": { "parts": [{ "identifierList": { "identifiers": [{ "airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
} }] } }] },
"pagination": {
"cursor": "<string>",
"pageSize": 1
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: {
parts: [
{
identifierList: {identifiers: [{airflowDag: {integrationId: '<string>', dagId: '<string>'}}]}
}
]
},
pagination: {cursor: '<string>', pageSize: 1}
})
};
fetch('https://developer.synq.io/api/queries/v1/resolve', 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://developer.synq.io/api/queries/v1/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => [
'parts' => [
[
'identifierList' => [
'identifiers' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
]
]
]
]
]
]
],
'pagination' => [
'cursor' => '<string>',
'pageSize' => 1
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/queries/v1/resolve"
payload := strings.NewReader("{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/queries/v1/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/queries/v1/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}"
response = http.request(request)
puts response.read_body{
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
],
"pageInfo": {
"totalCount": 123,
"count": 123,
"lastId": "<string>"
},
"renderedResolverQl": "<string>"
}ResolveQuery
Evaluate a selection and return the matched entity ids, paginated. Pass a
ResolverQL expression via resolver_ql (it is compiled server-side) or an
already-structured query. Invalid ResolverQL fails with INVALID_ARGUMENT.
curl --request POST \
--url https://developer.synq.io/api/queries/v1/resolve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": {
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
},
"pagination": {
"cursor": "<string>",
"pageSize": 1
}
}
'import requests
url = "https://developer.synq.io/api/queries/v1/resolve"
payload = {
"query": { "parts": [{ "identifierList": { "identifiers": [{ "airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
} }] } }] },
"pagination": {
"cursor": "<string>",
"pageSize": 1
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: {
parts: [
{
identifierList: {identifiers: [{airflowDag: {integrationId: '<string>', dagId: '<string>'}}]}
}
]
},
pagination: {cursor: '<string>', pageSize: 1}
})
};
fetch('https://developer.synq.io/api/queries/v1/resolve', 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://developer.synq.io/api/queries/v1/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => [
'parts' => [
[
'identifierList' => [
'identifiers' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
]
]
]
]
]
]
],
'pagination' => [
'cursor' => '<string>',
'pageSize' => 1
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/queries/v1/resolve"
payload := strings.NewReader("{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/queries/v1/resolve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/queries/v1/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n },\n \"pagination\": {\n \"cursor\": \"<string>\",\n \"pageSize\": 1\n }\n}"
response = http.request(request)
puts response.read_body{
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
],
"pageInfo": {
"totalCount": 123,
"count": 123,
"lastId": "<string>"
},
"renderedResolverQl": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
- ResolveQueryRequest
- ResolveQueryRequest
Response
Success
Opaque identifiers of the matched entities, one page worth. Round-trip each id verbatim to the rest of the entities API.
Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers are designed to closely mimic identifiers used by data platforms and tools. To construct an identifier, you need to know the kind of the entity and the ids that you would normally use to identify it in the data platform or tool. For example, to identify a table in BigQuery, you would need to know the project, dataset, and table names.
- airflow_dag
- airflow_task
- athena_table
- bigquery_table
- clickhouse_table
- custom
- databricks_table
- dataproduct
- dbt_cloud_node
- dbt_core_node
- fabric_table
- monitor
- mssql_table
- mysql_table
- oracle_table
- postgres_table
- redshift_table
- saved_view
- snowflake_table
- sql_mesh_audit
- sql_mesh_model
- synq_path
- trino_table
Show child attributes
Show child attributes
Pagination cursor for the next page.
Show child attributes
Show child attributes
The resolved selection rendered as canonical ResolverQL. Empty when the selection has no ResolverQL representation.