Get dbt exposures
curl --request GET \
--url https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures \
--header 'Authorization: Bearer <token>'import requests
url = "https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures', 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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures",
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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures"
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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures")
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{
"pageInfo": {
"hasNextPage": false,
"nextCursor": null,
"pageSize": 1000,
"totalRecords": 2
},
"records": [
{
"dashboard_identifier": "abc123",
"deduplication_name": "sales_overview_abc123",
"exposure": {
"name": "sales_overview",
"type": "dashboard",
"owner": {
"name": "Blob Ross",
"email": "blob.ross@blobsrus.com"
},
"depends_on": [
"ref('orders')",
"ref('customers')"
],
"label": "Sales Overview",
"url": "https://your-org.omni.co/dashboards/abc123"
}
},
{
"dashboard_identifier": "def456",
"deduplication_name": "sales_app_def456",
"exposure": {
"name": "sales_app",
"type": "application",
"owner": {
"name": "Blob Ross",
"email": "blob.ross@blobsrus.com"
},
"depends_on": [
"ref('orders')",
"ref('customers')"
],
"label": "Sales App",
"url": "https://your-org.omni.co/w/def456"
}
}
]
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}Management
Get dbt exposures
Connection Admin permissions are required to use this endpoint.
Retrieve dbt exposures for the specified model. This endpoint computes exposures on-demand by analyzing which dbt models are referenced by dashboards and apps that use the specified model.
This enables automated retrieval of exposure data previously only available via the manual Sync exposures flow in Omni, making it ideal for CI/CD pipelines and automated workflows.
GET
/
v1
/
models
/
{modelId}
/
dbt-exposures
Get dbt exposures
curl --request GET \
--url https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures \
--header 'Authorization: Bearer <token>'import requests
url = "https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures', 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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures",
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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures"
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://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.omniapp.co/api/v1/models/{modelId}/dbt-exposures")
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{
"pageInfo": {
"hasNextPage": false,
"nextCursor": null,
"pageSize": 1000,
"totalRecords": 2
},
"records": [
{
"dashboard_identifier": "abc123",
"deduplication_name": "sales_overview_abc123",
"exposure": {
"name": "sales_overview",
"type": "dashboard",
"owner": {
"name": "Blob Ross",
"email": "blob.ross@blobsrus.com"
},
"depends_on": [
"ref('orders')",
"ref('customers')"
],
"label": "Sales Overview",
"url": "https://your-org.omni.co/dashboards/abc123"
}
},
{
"dashboard_identifier": "def456",
"deduplication_name": "sales_app_def456",
"exposure": {
"name": "sales_app",
"type": "application",
"owner": {
"name": "Blob Ross",
"email": "blob.ross@blobsrus.com"
},
"depends_on": [
"ref('orders')",
"ref('customers')"
],
"label": "Sales App",
"url": "https://your-org.omni.co/w/def456"
}
}
]
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}{
"error": "<response_code>",
"message": "<error_reason>"
}Authorizations
Can be either an Organization API Key or Personal Access Token (PAT).
Include in the Authorization header as: Bearer YOUR_TOKEN
Path Parameters
ID of the model
Query Parameters
Number of results per page (1-100).
Required range:
1 <= x <= 100Pagination cursor from a previous response's pageInfo.nextCursor.
Branch ID for branch-aware model operations.
Was this page helpful?

