> ## 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.

# Get report type schema

> Returns the schema a report type produces - the ordered `columns` that appear in its output. For report types with fixed columns, these are the report type's preview columns. For configurable report types, they are the client-named columns defined by the report type's column mapping parameters. Report types whose columns depend on the client's own configuration resolve them against the report type's declared parameter defaults, which the response echoes as `context_parameters`. To resolve the columns against your own parameter values instead, post them to this same path. Use this to discover a report type's output shape without running the report.



## OpenAPI

````yaml /api-reference/management.json get /v6/report-types/{id}/schema
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/{id}/schema:
    get:
      tags:
        - Report Types
      summary: Get report type schema
      description: >-
        Returns the schema a report type produces - the ordered `columns` that
        appear in its output. For report types with fixed columns, these are the
        report type's preview columns. For configurable report types, they are
        the client-named columns defined by the report type's column mapping
        parameters. Report types whose columns depend on the client's own
        configuration resolve them against the report type's declared parameter
        defaults, which the response echoes as `context_parameters`. To resolve
        the columns against your own parameter values instead, post them to this
        same path. Use this to discover a report type's output shape without
        running the report.
      operationId: getReportTypeSchema
      parameters:
        - description: The Extole unique report type identifier.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTypeSchemaResponse'
          description: >-
            Schema the report type produces, as an ordered, non-empty list of
            output columns, alongside the parameter values it was resolved
            against.
        '400':
          content:
            application/json:
              examples:
                report_type_missing:
                  $ref: '#/components/examples/report_type_missing'
                report_type_schema_not_supported:
                  $ref: '#/components/examples/report_type_schema_not_supported'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: >-
            The request cannot be fulfilled. Either the report type id is
            missing from the request (`report_type_missing`), or the report type
            exists but none of its columns can be determined without running the
            report (`report_type_schema_not_supported`) - inspect the response
            `code` field for the specific error.
        '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
        '404':
          content:
            application/json:
              examples:
                report_type_not_found:
                  $ref: '#/components/examples/report_type_not_found'
          description: >-
            Report type was not found. The supplied id does not match any report
            type accessible to the calling client.
        '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:
    report_type_missing:
      summary: report_type_missing
      value:
        code: report_type_missing
        http_status_code: 400
        message: Report type is missing
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    report_type_schema_not_supported:
      summary: report_type_schema_not_supported
      value:
        code: report_type_schema_not_supported
        http_status_code: 400
        message: Schema is not supported for this report type
        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
    report_type_not_found:
      summary: report_type_not_found
      value:
        code: report_type_not_found
        http_status_code: 400
        message: Report type referenced by the component is not found
        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

````