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

# List report type schemas

> Returns the schema for every report type visible to the calling client whose columns are known ahead of a run. Each entry pairs a `report_type_id` with the ordered `columns` that report type produces. Report types that do not support a schema are omitted from the list. Each entry echoes the `context_parameters` it was resolved against, always the report type's own defaults - post parameter values to a single report type's schema to resolve it against your own context. Use this to discover output shapes across report types in one call instead of requesting each schema by id.



## OpenAPI

````yaml /api-reference/management.json get /v6/report-types/schemas
openapi: 3.0.1
info:
  description: >-
    Configuration endpoints for the Extole platform: campaigns, components,
    audiences, persons, rewards, reporting, integrations setup, and
    administrative tooling.
  title: Management API
  version: '1.0'
servers:
  - description: Production
    url: https://api.extole.io
security:
  - HEADER: []
  - QUERY: []
  - COOKIE: []
tags:
  - name: Audiences
  - name: Authentication
  - name: Batch Jobs
  - name: Blocks
  - name: Campaigns
  - name: Components
  - name: Components Operations
  - name: Components Settings
  - name: Domains
  - name: Email
  - name: Erasure
  - name: Event Streams
  - name: File Validation Monitors
  - name: Optout
  - name: Profiles
  - name: Promotion Links
  - name: Report Schedules
  - name: Report Types
  - name: Reports
  - name: Reward Suppliers
  - name: Security Keys
  - name: Settings
  - name: User Notifications
  - name: User Subscriptions
  - name: Users
  - name: Webhooks
paths:
  /v6/report-types/schemas:
    get:
      tags:
        - Report Types
      summary: List report type schemas
      description: >-
        Returns the schema for every report type visible to the calling client
        whose columns are known ahead of a run. Each entry pairs a
        `report_type_id` with the ordered `columns` that report type produces.
        Report types that do not support a schema are omitted from the list.
        Each entry echoes the `context_parameters` it was resolved against,
        always the report type's own defaults - post parameter values to a
        single report type's schema to resolve it against your own context. Use
        this to discover output shapes across report types in one call instead
        of requesting each schema by id.
      operationId: listReportTypeSchemas
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ReportTypeSchemaResponse'
                type: array
          description: >-
            Schemas of the visible report types that produce columns, one entry
            per report type.
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
components:
  schemas:
    ReportTypeSchemaResponse:
      properties:
        columns:
          description: Columns the report type produces, in output order.
          items:
            $ref: '#/components/schemas/ReportTypeColumnResponse'
          type: array
        context_parameters:
          additionalProperties:
            description: >-
              Report parameters this schema was resolved against, keyed by
              parameter name. Each one changes the `columns`; supply report
              parameter values in the POST request body to resolve the schema
              against a different context. A value is what the caller supplied,
              otherwise the report type's declared default; parameters with
              neither are absent, and leaving one out resolves the schema
              against the report type's own default behavior rather than making
              the answer partial. Run the report with these same parameter
              values to get these same columns. Empty for report types whose
              columns do not depend on context.
            readOnly: true
            type: string
          description: >-
            Report parameters this schema was resolved against, keyed by
            parameter name. Each one changes the `columns`; supply report
            parameter values in the POST request body to resolve the schema
            against a different context. A value is what the caller supplied,
            otherwise the report type's declared default; parameters with
            neither are absent, and leaving one out resolves the schema against
            the report type's own default behavior rather than making the answer
            partial. Run the report with these same parameter values to get
            these same columns. Empty for report types whose columns do not
            depend on context.
          readOnly: true
          type: object
        report_type_id:
          description: >-
            Id of the report type this schema belongs to. Pass it to `GET
            /v6/report-types/{id}/schema` to fetch this schema on its own.
          readOnly: true
          type: string
      required:
        - columns
        - context_parameters
        - report_type_id
      type: object
    RestExceptionResponse:
      description: Represents the API error response
      properties:
        code:
          description: Specific error code for this error type, documented per endpoint
          type: string
        http_status_code:
          description: >-
            HTTP status code that was returned with this error, useful if client
            get response code
          format: int32
          type: integer
        message:
          description: User readable English description of the error
          type: string
        parameters:
          additionalProperties:
            description: >-
              Attributes related to the error, varies be error code, documented
              per endpoint
            type: object
          description: >-
            Attributes related to the error, varies be error code, documented
            per endpoint
          type: object
        unique_id:
          description: >-
            Unique id associated with this error, useful for discussions with
            Extole
          type: string
      required:
        - code
        - http_status_code
        - message
        - parameters
        - unique_id
      type: object
    ReportTypeColumnResponse:
      description: Column metadata for the report type's preview output.
      properties:
        name:
          type: string
        note:
          nullable: true
          type: string
        sample_value:
          nullable: true
          type: string
      type: object
  examples:
    binding_error:
      summary: binding_error
      value:
        code: binding_error
        http_status_code: 400
        message: Argument is not of the expected type
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_json:
      summary: invalid_json
      value:
        code: invalid_json
        http_status_code: 400
        message: JSON is invalid
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_parameter:
      summary: invalid_parameter
      value:
        code: invalid_parameter
        http_status_code: 400
        message: Parameter is invalid.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    missing_request_body:
      summary: missing_request_body
      value:
        code: missing_request_body
        http_status_code: 400
        message: Missing request body
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    method_unauthorized:
      summary: method_unauthorized
      value:
        code: method_unauthorized
        http_status_code: 401
        message: Unauthorized access to this endpoint
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    payment_required:
      summary: payment_required
      value:
        code: payment_required
        http_status_code: 402
        message: The access_token provided is associated with an unpaid account.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    access_denied:
      summary: access_denied
      value:
        code: access_denied
        http_status_code: 403
        message: >-
          The access_token provided is not permitted to access the specified
          resource.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    missing_access_token:
      summary: missing_access_token
      value:
        code: missing_access_token
        http_status_code: 403
        message: No access_token was provided with this request.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    unsupported_media_type:
      summary: unsupported_media_type
      value:
        code: unsupported_media_type
        http_status_code: 415
        message: Request had an unsupported or no media type
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    too_many_requests:
      summary: too_many_requests
      value:
        code: too_many_requests
        http_status_code: 429
        message: >-
          The server is unable to process your request at the moment, please
          retry later.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
  securitySchemes:
    HEADER:
      in: header
      name: Authorization
      type: apiKey
      x-bearer-format: bearer
    QUERY:
      in: query
      name: access_token
      type: apiKey
    COOKIE:
      in: cookie
      name: extole_token
      type: apiKey

````