> ## 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 for a context

> Returns the schema a report type produces for the supplied report parameter values - the ordered `columns` that appear in its output. Persists nothing. The columns returned are the columns the report emits when run with those same values, so a client can learn its output shape before running it. Only parameters the report type contextualizes its schema on are accepted, and supplying any other is rejected. The response echoes the effective parameter values used to resolve the schema. Parameters left out resolve to the report type's own defaults rather than making the answer partial.



## OpenAPI

````yaml /api-reference/management.json post /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:
    post:
      tags:
        - Report Types
      summary: Get report type schema for a context
      description: >-
        Returns the schema a report type produces for the supplied report
        parameter values - the ordered `columns` that appear in its output.
        Persists nothing. The columns returned are the columns the report emits
        when run with those same values, so a client can learn its output shape
        before running it. Only parameters the report type contextualizes its
        schema on are accepted, and supplying any other is rejected. The
        response echoes the effective parameter values used to resolve the
        schema. Parameters left out resolve to the report type's own defaults
        rather than making the answer partial.
      operationId: getReportTypeSchemaForContext
      parameters:
        - description: The Extole unique report type identifier.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              parameters:
                parameters_key: parameters_key
            schema:
              $ref: '#/components/schemas/ReportTypeSchemaContextRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTypeSchemaResponse'
          description: >-
            Schema the report type produces for the supplied context, 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_context_parameter_invalid:
                  $ref: >-
                    #/components/examples/report_type_schema_context_parameter_invalid
                report_type_schema_context_parameter_not_supported:
                  $ref: >-
                    #/components/examples/report_type_schema_context_parameter_not_supported
                report_type_schema_context_parameter_value_not_found:
                  $ref: >-
                    #/components/examples/report_type_schema_context_parameter_value_not_found
                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`), the report type
            exists but none of its columns can be determined without running the
            report (`report_type_schema_not_supported`), a supplied parameter is
            not one this report type contextualizes its schema on
            (`report_type_schema_context_parameter_not_supported`), or a
            supplied parameter value does not match anything this client can
            access (`report_type_schema_context_parameter_value_not_found`), or
            a supplied parameter value is invalid
            (`report_type_schema_context_parameter_invalid`) - 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:
    ReportTypeSchemaContextRequest:
      properties:
        parameters:
          additionalProperties:
            description: >-
              Report parameter values to resolve the schema against, keyed by
              parameter name. Only parameters the report type contextualizes its
              schema on are accepted. A parameter left out resolves to the
              report type's declared default. A supplied value, including a
              blank value, is used as supplied. An empty map resolves the schema
              exactly as the parameterless read does. Pass these same values to
              `POST /v4/reports` to run the report that emits the returned
              columns.
            type: string
          description: >-
            Report parameter values to resolve the schema against, keyed by
            parameter name. Only parameters the report type contextualizes its
            schema on are accepted. A parameter left out resolves to the report
            type's declared default. A supplied value, including a blank value,
            is used as supplied. An empty map resolves the schema exactly as the
            parameterless read does. Pass these same values to `POST
            /v4/reports` to run the report that emits the returned columns.
          type: object
      required:
        - parameters
      type: object
    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_context_parameter_invalid:
      summary: report_type_schema_context_parameter_invalid
      value:
        code: report_type_schema_context_parameter_invalid
        http_status_code: 400
        message: Supplied context parameter value is invalid
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    report_type_schema_context_parameter_not_supported:
      summary: report_type_schema_context_parameter_not_supported
      value:
        code: report_type_schema_context_parameter_not_supported
        http_status_code: 400
        message: >-
          Report type does not contextualize its schema on the supplied
          parameters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    report_type_schema_context_parameter_value_not_found:
      summary: report_type_schema_context_parameter_value_not_found
      value:
        code: report_type_schema_context_parameter_value_not_found
        http_status_code: 400
        message: Supplied context parameter value was not found for this client
        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

````