> ## 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` or representative `sample_rows` in its output. Persists nothing. The response describes the output 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. When the supplied values select nothing the report would summarize, the report emits no rows, so `sample_rows` is empty while `context_parameters` still echoes what the schema resolved against.



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


    ## Updating a resource


    `PUT` merges. A field you omit from the body is left at its stored value, so
    you do not need to read a resource and send it back whole in order to change
    one field. This is a deliberate departure from the HTTP convention that
    `PUT` replaces, and it holds across this API.


    Two qualifications, both visible on each operation's own request schema:


    - Some operations mark fields `required` in their request schema. Those must
    be sent on every request, whether or not you are changing them.

    - A field that holds a list or a map is replaced, not merged, when you
    supply it. Sending one entry of a collection stores that entry and drops the
    rest, so to change one member of a collection you must send the collection's
    other members alongside it.
  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: Batch Jobs (Legacy)
  - name: Blocks
  - name: Campaigns
  - name: Components
  - name: Components Operations
  - name: Domains
  - name: Email
  - name: Erasure
  - name: Event Streams
  - name: Optout
  - name: Profiles
  - name: Promotion Links
  - name: Report Schedules
  - name: Report Types
  - name: Reports
  - name: Reward Suppliers
  - name: SFTP Servers
  - 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` or representative `sample_rows`
        in its output. Persists nothing. The response describes the output 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. When the supplied values
        select nothing the report would summarize, the report emits no rows, so
        `sample_rows` is empty while `context_parameters` still echoes what the
        schema resolved against.
      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, with
            output columns or representative nested JSON rows, 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
            does not describe its output shape at all, in `columns` or in
            `sample_rows` (`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 can change the schema; 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 and representative rows. Empty
              for report types whose schema does not depend on context.
            readOnly: true
            type: string
          description: >-
            Report parameters this schema was resolved against, keyed by
            parameter name. Each one can change the schema; 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 and representative rows. Empty for report types
            whose schema does 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
        sample_rows:
          description: >-
            Representative nested JSON output row shapes for this context. These
            are mock shapes, not report data and not a JSON Schema.
          items:
            $ref: '#/components/schemas/JsonNode'
          type: array
      required:
        - columns
        - context_parameters
        - report_type_id
        - sample_rows
      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
    JsonNode:
      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

````

## Related topics

- [Get report type schema](/api-reference/report-types/get-report-type-schema.md)
- [List report type schemas](/api-reference/report-types/list-report-type-schemas.md)
- [Get report type mapping suggestions](/api-reference/report-types/get-report-type-mapping-suggestions.md)
- [Get report type](/api-reference/report-types/get-report-type.md)
- [Get a component operation](/api-reference/components-operations/get-a-component-operation.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.