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

# List Domains

> List a module instance's domains, each with its certificate state, expected DNS records, and parent wildcard (when nested).



## OpenAPI

````yaml https://api.ravion.com/openapi.yaml get /domains
openapi: 3.0.0
info:
  title: Ravion
  version: 0.0.0
servers:
  - url: https://api.ravion.com
security:
  - BearerAuth: []
tags:
  - name: Projects
  - name: Environments
  - name: Pipelines
  - name: PipelineRuns
  - name: TerraformResources
  - name: TerraformExecutionSummaries
  - name: PipelineStepExecutions
  - name: AwsCloudWatch
  - name: PipelineVersions
  - name: Organizations
  - name: Stacks
  - name: StackWorkspaces
  - name: Auth
  - name: OAuth
  - name: User
  - name: Health
  - name: Memberships
  - name: ServiceAccounts
  - name: AwsDefaultNetworks
  - name: AwsAccounts
  - name: ApiKeys
  - name: ExecutionEnvironments
  - name: ModuleDefinitions
  - name: ModuleVersions
  - name: ModuleInstances
  - name: DefaultValueDefinitions
  - name: DefaultValues
  - name: CodeSources
  - name: Github
  - name: Gitlab
  - name: Git
  - name: Values
  - name: Deployments
  - name: DeploymentResources
  - name: InfrastructureEvents
  - name: WebSocket
  - name: Domains
  - name: AcmCertificates
  - name: Describe
  - name: Reports
paths:
  /domains:
    get:
      tags:
        - Domains
      summary: List Domains
      description: >-
        List a module instance's domains, each with its certificate state,
        expected DNS records, and parent wildcard (when nested). Read-only.
      operationId: ListDomains
      parameters:
        - in: query
          name: moduleInstanceId
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/PaginationQueryParams.cursor'
        - $ref: '#/components/parameters/PaginationQueryParams.limit'
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/DomainModel'
                    type: array
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                required:
                  - data
                  - meta
                type: object
          description: The request has succeeded.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The request is invalid or malformed.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You are not authenticated
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You do not have permission to access this resource.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Client error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Server error
components:
  parameters:
    PaginationQueryParams.cursor:
      in: query
      name: cursor
      schema:
        nullable: true
        type: string
    PaginationQueryParams.limit:
      in: query
      name: limit
      schema:
        format: int32
        nullable: true
        type: integer
  schemas:
    DomainModel:
      additionalProperties: false
      description: >-
        A domain and its current routing, certificate, and DNS-record state. The
        create-time `name`/`parentDomainName` inputs are not returned — changing
        either replaces the domain.
      properties:
        certificate:
          allOf:
            - $ref: '#/components/schemas/Domains.DomainCertificateRef'
          description: The certificate covering this domain, when known.
        domainName:
          description: The resolved fully-qualified domain name.
          type: string
        id:
          description: Stable domain id (`mdom_*`).
          type: string
        managedByRavion:
          description: >-
            True when the domain lives under the Ravion-managed apex, so Ravion
            owns its certificate and DNS.
          type: boolean
        moduleInstanceId:
          description: Id of the module instance (`minst_*`) that owns this domain.
          type: string
        parent:
          allOf:
            - $ref: '#/components/schemas/Domains.ParentModuleInstanceRef'
          description: >-
            The parent module instance, when this domain is nested under a
            shared wildcard.
        parentDomainName:
          description: >-
            The wildcard apex this domain nests under, when it is covered by a
            shared wildcard certificate.
          type: string
        records:
          description: Expected DNS records for this domain (routing and validation).
          items:
            $ref: '#/components/schemas/Domains.DomainRecord'
          type: array
        targetDnsName:
          description: >-
            The DNS name traffic is routed to (a load balancer or CloudFront
            distribution domain).
          type: string
        targetZoneId:
          description: The hosted zone id of the routing target.
          type: string
        url:
          description: The domain's URL (`https://<fqdn>`).
          type: string
        verified:
          description: True once the covering certificate has been issued.
          type: boolean
      required:
        - id
        - moduleInstanceId
        - domainName
        - url
        - managedByRavion
        - verified
        - records
      type: object
    PaginationMeta:
      additionalProperties: false
      properties:
        limit:
          format: int32
          type: integer
        nextCursor:
          type: string
        totalCount:
          format: int32
          type: integer
      required:
        - limit
      type: object
    Errors.UserFacingErrorData:
      additionalProperties: false
      description: |-
        User-facing error presentation data.
        This is what the API returns to the frontend after formatting ErrorData
        using CEL templates from the error registry.

        Used for both:
        - Error fields on domain models (e.g., PipelineRun.error)
        - API error response bodies (HTTP 4xx/5xx responses)
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Errors.Action'
          description: Optional action to help resolve the error
        code:
          description: Full error code, e.g., "Ravion:Pipeline:NOT_FOUND"
          type: string
        description:
          description: Additional description with more details
          type: string
        details:
          description: Structured details rendered as user-facing sections.
          items:
            $ref: '#/components/schemas/Errors.UserFacingErrorDetailSection'
          type: array
        isInternal:
          description: >-
            Indicates whether this error is internal (only set when
            ShowInternal=true).

            This allows SUPERADMINs to identify internal errors while viewing
            full details.
          type: boolean
        message:
          description: Main error message (required)
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Error params/metadata. Stripped for internal errors unless
            superadmin.
          type: object
        requestId:
          description: Request ID for correlating errors with server logs.
          type: string
      required:
        - code
        - message
      type: object
    Domains.DomainCertificateRef:
      additionalProperties: false
      description: Reference to the certificate covering a domain.
      properties:
        arn:
          description: ARN of the covering certificate.
          type: string
        expiresAt:
          description: When the covering certificate expires.
          format: date-time
          type: string
        issuedAt:
          description: When the covering certificate was issued.
          format: date-time
          type: string
        status:
          description: Status of the covering certificate.
          type: string
      type: object
    Domains.ParentModuleInstanceRef:
      additionalProperties: false
      description: >-
        For a domain nested under a shared wildcard, the parent module instance
        whose certificate covers it.
      properties:
        environmentId:
          description: Id of the environment the parent belongs to.
          type: string
        moduleInstanceId:
          description: Id of the parent module instance.
          type: string
        name:
          description: Name of the parent module instance.
          type: string
        projectId:
          description: Id of the project the parent belongs to.
          type: string
      required:
        - moduleInstanceId
        - name
        - projectId
        - environmentId
      type: object
    Domains.DomainRecord:
      additionalProperties: false
      description: >-
        A DNS record for a domain — either one Ravion manages or one you must
        add. `expected` is the value the record should hold.
      properties:
        expected:
          description: The value the record is expected to hold.
          type: string
        name:
          description: Record name (the host the record is published at).
          type: string
        ownership:
          description: 'Who publishes the record: `RAVION_PLATFORM` | `CUSTOMER`.'
          type: string
        role:
          description: 'What the record is for: `ROUTING` | `VALIDATION`.'
          type: string
        type:
          description: 'DNS record type: `CNAME` | `A` | `AAAA` | `TXT` | `CAA` | `ALIAS`.'
          type: string
      required:
        - type
        - name
        - role
        - ownership
        - expected
      type: object
    Errors.Action:
      additionalProperties: false
      description: Action to help user resolve the error
      properties:
        label:
          description: Button/link label text
          type: string
        url:
          description: URL to navigate to for resolution
          type: string
      required:
        - label
        - url
      type: object
    Errors.UserFacingErrorDetailSection:
      additionalProperties: false
      description: Structured user-facing error detail section.
      properties:
        items:
          description: List of detail values for this section.
          items:
            type: string
          type: array
        object:
          additionalProperties: {}
          description: Structured detail payload for object rendering.
          type: object
        render:
          description: Rendering hint for clients. Valid values are list or object.
          type: string
        title:
          description: Detail section title shown in the UI.
          type: string
      required:
        - title
        - render
      type: object
  securitySchemes:
    BearerAuth:
      scheme: Bearer
      type: http

````