> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get dbt exposures

> <Note>
  **Connection Admin** permissions are required to use this endpoint.
</Note>

Retrieves dbt exposures for the specified model. This endpoint computes exposures on-demand by analyzing which dbt models are referenced by dashboards 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.




## OpenAPI

````yaml /api/openapi.yaml get /v1/models/{modelId}/dbt-exposures
openapi: 3.1.0
info:
  title: Omni API
  description: >
    The Omni REST API provides programmatic access to your Omni instance for
    managing users, documents, queries, schedules, and more.  
  version: 1.0.0
  contact:
    name: Omni Support
    url: https://docs.omni.co
servers:
  - url: https://{instance}.omniapp.co/api
    description: Production
    variables:
      instance:
        default: blobsrus
        description: Your production Omni instance subdomain
  - url: https://{instance}.playground.exploreomni.dev/api
    description: Playground
    variables:
      instance:
        default: blobsrus
        description: Your playground Omni instance subdomain
security:
  - bearerAuth: []
  - orgApiKey: []
tags:
  - name: AI
    description: AI-powered query generation
  - name: API Tokens
    description: >-
      Manage API tokens (Organization keys, Personal Access Tokens, MCP OAuth
      grants)
  - name: Connections
    description: Manage database connections
  - name: Connection environments
    description: Manage connection environments database connections
  - name: Content
    description: Unified content retrieval (documents and folders)
  - name: Content migration
    description: Export and import dashboards
  - name: Content validator
    description: Validate content against models and perform find/replace operations
  - name: Dashboard downloads
    description: Download dashboards and tiles as PDF, PNG, XLSX, CSV, or JSON files
  - name: Dashboard filters and controls
    description: Read and update dashboard filter and control default values
  - name: dbt
    description: Manage dbt configuration for connections
  - name: Documents
    description: Create, retrieve, and manage documents
  - name: Document favorites
    description: Favorite and unfavorite documents
  - name: Document labels
    description: Apply and manage labels on documents
  - name: Document permissions
    description: Manage document-level access
  - name: Labels
    description: >
      Manage labels in an organization. Labels can be applied to documents and
      folders to help organize and categorize content.


      **Label types:**

      - **Basic labels**: Can be created and managed by any user

      - **Verified labels**: Indicate curated or officially sanctioned content.
      Admin-only.

      - **Homepage labels**: Appear on the organization homepage. Admin-only.
  - name: Folders
    description: Create and organize content folders
  - name: Folder permissions
    description: Manage folder-level access
  - name: Jobs
    description: Check status of asynchronous jobs
  - name: Models
    description: Create and manage data models
  - name: Model branches
    description: Manage model branches and merge changes
  - name: Model git configuration
    description: Manage git configuration for shared models
  - name: Queries
    description: Execute workbook queries
  - name: Schedules
    description: Create and manage scheduled tasks
  - name: Schedule recipients
    description: Manage schedule recipients
  - name: Schema refresh schedules
    description: Manage automated schema refresh schedules for connections
  - name: Topics
    description: Retrieve topic information from models
  - name: Uploads
    description: Manage file uploads
  - name: Users
    description: Manage users
  - name: User attributes
    description: Manage user attribute definitions
  - name: User groups
    description: Manage user groups
  - name: User model roles
    description: Manage model and connection role assignments for users
  - name: User group model roles
    description: Manage model and connection role assignments for user groups
  - name: Uploads
    description: Manage CSV and spreadsheet uploads
paths:
  /v1/models/{modelId}/dbt-exposures:
    get:
      tags:
        - dbt
      summary: Get dbt exposures
      description: >
        <Note>
          **Connection Admin** permissions are required to use this endpoint.
        </Note>


        Retrieves dbt exposures for the specified model. This endpoint computes
        exposures on-demand by analyzing which dbt models are referenced by
        dashboards 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.
      operationId: getDbtExposures
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID of the model
          example: 550e8400-e29b-41d4-a716-446655440000
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          description: Number of results per page (1-100).
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Pagination cursor from a previous response's `pageInfo.nextCursor`.
        - name: branch_id
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Branch ID for branch-aware model operations.
      responses:
        '200':
          description: dbt exposures successfully retrieved
          content:
            application/json:
              schema:
                type: object
                required:
                  - pageInfo
                  - records
                properties:
                  pageInfo:
                    $ref: '#/components/schemas/PageInfo'
                  records:
                    type: array
                    items:
                      type: object
                      required:
                        - dashboard_identifier
                        - deduplication_name
                        - exposure
                      properties:
                        dashboard_identifier:
                          type: string
                          description: >-
                            Unique identifier of the dashboard associated with
                            this exposure.
                          example: abc123
                        deduplication_name:
                          type: string
                          description: >-
                            Unique name used for deduplication, combining the
                            exposure name and dashboard identifier.
                          example: sales_overview_abc123
                        exposure:
                          type: object
                          description: >
                            The generated exposure, with a structure matching
                            the format defined in [dbt's exposures
                            documentation](https://docs.getdbt.com/docs/build/exposures).


                            This field will be `null` if the dashboard doesn't
                            reference any dbt models.
                          required:
                            - name
                            - type
                            - owner
                            - depends_on
                            - label
                            - url
                          properties:
                            name:
                              type: string
                              description: >-
                                Name of the exposure. Generated from dashboard
                                title.
                              example: sales_overview
                            type:
                              type: string
                              description: Type of the exposure
                              example: dashboard
                            owner:
                              type: object
                              required:
                                - name
                                - email
                              properties:
                                name:
                                  type: string
                                  description: Owner's name
                                  example: Blob Ross
                                email:
                                  type: string
                                  description: Owner's email address
                                  example: blob.ross@blobsrus.com
                            depends_on:
                              type: array
                              items:
                                type: string
                              description: >-
                                Array of dbt ref strings for models this
                                exposure depends on
                              example:
                                - ref('orders')
                                - ref('customers')
                            label:
                              type: string
                              description: Human-readable label for the exposure
                              example: Sales Overview
                            url:
                              type: string
                              description: URL to the dashboard
                              example: https://your-org.omni.co/dashboards/abc123
              example:
                pageInfo:
                  hasNextPage: false
                  nextCursor: null
                  pageSize: 1000
                  totalRecords: 1
                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
        '400':
          description: |
            Bad Request

            Possible error messages:

            - `Bad Request: Invalid modelId format`
            - `cursor: Invalid UUID`
            - `pageSize: Page size must be at least 1`
            - `pageSize: Page size cannot exceed 100`
            - `Bad Request: branch_id: Invalid uuid`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: |
            Not Found

            Possible error messages:

            - `Model with id <modelId> does not exist`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
        - orgApiKey: []
components:
  schemas:
    PageInfo:
      type: object
      description: Pagination information for paginated responses.
      properties:
        hasNextPage:
          type: boolean
          description: Indicates if there are more records available.
        nextCursor:
          type: string
          nullable: true
          description: Cursor for the next page of results. `null` if no more results.
        pageSize:
          type: integer
          description: Number of records per page.
        totalRecords:
          type: integer
          description: Total number of records matching the query.
    Error:
      type: object
      properties:
        error:
          type: string
          description: HTTP response code for the error
          example: <response_code>
        message:
          type: string
          description: Detailed error description
          example: <error_reason>
  responses:
    Forbidden:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded (60 requests/minute)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Can be either an [Organization API
        Key](/api/authentication#organization-api-keys) or [Personal Access
        Token (PAT)](/api/authentication#personal-access-tokens-pat).


        Include in the `Authorization` header as: `Bearer YOUR_TOKEN`
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Requires an [Organization API
        Key](/api/authentication#organization-api-keys). Personal Access Tokens
        (PATs) are not supported for this endpoint.


        Include in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`

````