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

# Render a named zone

> API-friendly zone rendering at `POST /api/v6/zones/{event_name}`. Intended for backend rendering where the caller supplies a bearer access token directly. Renders the zone identified by the `event_name` path parameter and returns the structured zone content as JSON. Pass zone input data in the request body. Returns an error when no content backs the zone. For browser or in-app rendering use `POST /zones/{zone_name}` instead.



## OpenAPI

````yaml /api-reference/integration-consumer-to-extole.json post /api/v6/zones/{event_name}
openapi: 3.0.1
info:
  description: >-
    Consumer-to-Extole integration endpoints: consumer event submission, zone
    rendering, profile management, and SDK-backing operations for browser and
    native app environments.
  title: Integration API - Consumer to Extole
  version: '1.0'
servers:
  - description: Production
    url: https://{brand}.extole.io
    variables:
      brand:
        default: yourcompany
        description: >-
          Your Extole client subdomain (e.g. 'mycompany' for
          mycompany.extole.io)
security:
  - HEADER: []
  - QUERY: []
  - COOKIE: []
tags:
  - name: Authentication
  - name: Content
  - name: Email
  - name: Events
  - name: Persons
  - name: Profile Assets
  - name: Profiles
paths:
  /api/v6/zones/{event_name}:
    post:
      tags:
        - Content
      summary: Render a named zone
      description: >-
        API-friendly zone rendering at `POST /api/v6/zones/{event_name}`.
        Intended for backend rendering where the caller supplies a bearer access
        token directly. Renders the zone identified by the `event_name` path
        parameter and returns the structured zone content as JSON. Pass zone
        input data in the request body. Returns an error when no content backs
        the zone. For browser or in-app rendering use `POST /zones/{zone_name}`
        instead.
      operationId: renderZoneByEventName
      parameters:
        - in: path
          name: event_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              value: {}
            schema:
              additionalProperties:
                type: object
              type: object
          application/x-www-form-urlencoded:
            schema:
              additionalProperties:
                type: object
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResponse'
          description: Zone content.
        '400':
          content:
            application/json:
              examples:
                invalid_creative_result:
                  $ref: '#/components/examples/invalid_creative_result'
                invalid_zone_name:
                  $ref: '#/components/examples/invalid_zone_name'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: >-
            Zone rendering failed: `invalid_zone_name` if the zone name from the
            URL path is not recognised by the client's campaign configuration,
            or `invalid_creative_result` if the configured creative did not
            return valid JSON.
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                expired_access_token:
                  $ref: '#/components/examples/expired_access_token'
                invalid_access_token:
                  $ref: '#/components/examples/invalid_access_token'
                jwt_authentication_error:
                  $ref: '#/components/examples/jwt_authentication_error'
                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:
    ZoneResponse:
      properties:
        campaign_id:
          description: >-
            Extole campaign id that served this zone. Absent if not
            determinable.
          type: string
        data:
          additionalProperties:
            description: >-
              Creative output for this zone. Structure varies by campaign
              configuration.
            type: object
          description: >-
            Creative output for this zone. Structure varies by campaign
            configuration.
          type: object
        event_id:
          description: Extole event id generated for this zone render request.
          type: string
      required:
        - campaign_id
        - data
        - event_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
  examples:
    invalid_creative_result:
      summary: invalid_creative_result
      value:
        code: invalid_creative_result
        http_status_code: 400
        message: Configured creative did not return json.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_zone_name:
      summary: invalid_zone_name
      value:
        code: invalid_zone_name
        http_status_code: 403
        message: Invalid zone name (not an EMAIL zone)
        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
    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
    expired_access_token:
      summary: expired_access_token
      value:
        code: expired_access_token
        http_status_code: 403
        message: The access_token provided with this request has expired.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_access_token:
      summary: invalid_access_token
      value:
        code: invalid_access_token
        http_status_code: 403
        message: The access_token provided with this request is invalid.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    jwt_authentication_error:
      summary: jwt_authentication_error
      value:
        code: jwt_authentication_error
        http_status_code: 403
        message: The jwt authentication failed.
        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

````