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

# Evaluate a pending creative review

> Run an advisory AI evaluation against a buyer-submitted creative review row. The evaluator uses explicit storefront acceptance policy text, answers operator questions, and recommends approve, manual review, or reject. Generic storefront operating instructions are not used as policy input. This endpoint never records the decision.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml post /creative-reviews/{creativeId}/evaluate
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: |-
    REST API for partners to manage storefronts, inventory sources, and billing.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/storefront`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for storefronts
  - name: AI Usage
    description: Storefront AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /creative-reviews/{creativeId}/evaluate:
    post:
      tags:
        - Storefront
      summary: Evaluate a pending creative review
      description: >-
        Run an advisory AI evaluation against a buyer-submitted creative review
        row. The evaluator uses explicit storefront acceptance policy text,
        answers operator questions, and recommends approve, manual review, or
        reject. Generic storefront operating instructions are not used as policy
        input. This endpoint never records the decision.
      operationId: evaluateCreativeReview
      parameters:
        - in: path
          name: creativeId
          schema:
            description: AdCP creative id as supplied by the buyer.
            example: cr_abc123
            type: string
            minLength: 1
          required: true
          description: AdCP creative id as supplied by the buyer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluateCreativeReviewBody'
      responses:
        '200':
          description: Evaluate a pending creative review
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreativeReviewEvaluationResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    EvaluateCreativeReviewBody:
      description: >-
        Request body for advisory AI evaluation of a pending storefront creative
        review.
      type: object
      properties:
        acceptance_policy_text:
          description: >-
            Optional storefront acceptance policy text for evaluating whether a
            buyer-submitted creative can be approved. This may include
            advertiser/category rules, creative asset rules, and manual-review
            workflow requirements.
          type: string
          minLength: 1
          maxLength: 50000
        expected_brand:
          description: >-
            Optional brand the creative is expected to represent. If omitted,
            the evaluator tries to infer brand evidence from the submitted
            creative payload.
          type: string
          minLength: 1
          maxLength: 200
        questions:
          description: >-
            Optional specific questions for the evaluator to answer about the
            creative.
          maxItems: 8
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 300
    CreativeReviewEvaluationResponse:
      description: >-
        Advisory AI evaluation for a storefront creative review row. Evaluation
        does not approve or reject the creative.
      type: object
      properties:
        creativeId:
          description: AdCP creative id that was evaluated.
          example: cr_abc123
          type: string
        evaluatorId:
          description: >-
            Stable evaluator implementation id. Provider-backed evaluators
            expose the provider here.
          type: string
        evaluatorVersion:
          description: Evaluator implementation version.
          type: string
        status:
          description: >-
            Aggregate advisory status from the evaluator. `fail` means one or
            more checks recommend rejection.
          type: string
          enum:
            - pass
            - warn
            - fail
        recommendation:
          description: Advisory operator action. This endpoint never records the decision.
          type: string
          enum:
            - approve
            - manual_review
            - reject
        policyDecision:
          description: >-
            Policy confidence for automated creative approval. The safe default
            is `needs_human_approval` unless the evaluator has enough evidence
            to decide the creative is definitely on or off policy.
          allOf:
            - $ref: '#/components/schemas/StorefrontApprovalPolicyDecision'
        summary:
          description: Short evaluator summary.
          type: string
        checks:
          description: >-
            Individual policy, brand, readiness, and visual checks supporting
            the recommendation.
          type: array
          items:
            type: object
            properties:
              evaluator_id:
                type: string
                minLength: 1
              evaluator_version:
                type: string
                minLength: 1
              category:
                type: string
                enum:
                  - readiness
                  - asset
                  - brand_brief
                  - format_seller
                  - policy_safety
                  - performance
              code:
                type: string
              label:
                type: string
              stage:
                type: string
                enum:
                  - generation
                  - selection
                  - refinement
                  - finalization
                  - adaptation
                  - approval
                  - live_learning
                  - draft
                  - final
              status:
                type: string
                enum:
                  - pass
                  - warn
                  - fail
              detail:
                type: string
              severity:
                type: string
                enum:
                  - hard
                  - soft
              blocking:
                type: boolean
              confidence:
                type: number
                minimum: 0
                maximum: 1
              evidence_refs:
                type: array
                items:
                  type: string
                  minLength: 1
              remediation:
                type: string
                maxLength: 1000
            required:
              - label
              - status
              - detail
            additionalProperties: false
        answers:
          description: Answers to any requested evaluator questions.
          type: array
          items:
            $ref: '#/components/schemas/CreativeReviewEvaluationAnswer'
      required:
        - creativeId
        - evaluatorId
        - evaluatorVersion
        - status
        - recommendation
        - policyDecision
        - summary
        - checks
        - answers
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    StorefrontApprovalPolicyDecision:
      description: >-
        Policy confidence for storefront approval automation.
        `definitely_on_policy` is eligible for automatic approval,
        `definitely_not_on_policy` is a clear policy conflict, and
        `needs_human_approval` is the safe default for ambiguous or incomplete
        evidence.
      type: string
      enum:
        - definitely_on_policy
        - definitely_not_on_policy
        - needs_human_approval
    CreativeReviewEvaluationAnswer:
      description: Answer to an operator-supplied creative review question.
      type: object
      properties:
        question:
          description: Question the evaluator answered.
          type: string
          minLength: 1
        answer:
          description: Short evaluator answer grounded in the submitted creative.
          type: string
          minLength: 1
        confidence:
          description: Evaluator confidence in the answer, from 0 to 1.
          type: number
          minimum: 0
          maximum: 1
      required:
        - question
        - answer
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````