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

# Get the review packet for a proposal

> Everything needed to decide: proposed card and diff, source snapshots, gate results,
authority and entailment, scope, conflicts, allowed actions and decision history.
Echo `packetEtag` on the action you take. **Dashboard session only.**




## OpenAPI

````yaml /openapi/zebratruth-v1.yaml get /memory/review-queue/{proposalId}
openapi: 3.1.0
info:
  title: ZebraTruth Compliance API
  version: 1.0.0
  description: >
    AI-powered compliance checking for advertising content. Check text and
    images against

    jurisdiction laws, platform policies, and rights clearance requirements.
    Results include

    embeddable annotations mapped to content locations (text spans, video
    timestamps, image regions).
  contact:
    name: ZebraTruth Support
    email: support@zebratruth.ai
    url: https://developers.zebratruth.ai
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.zebratruth.ai/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Video Compliance
    description: >
      **Primary endpoint.** Async compliance analysis for video ads. 3-step
      flow:

      get an upload URL, upload the video bytes, submit for analysis. Poll or

      receive an HMAC-signed webhook with the report. Returns timestamped

      findings citing stable evidence IDs (`audio_NNN`, `frame_NNN`, `ocr_NNN`,

      `signal_NNN`). 3-180 second videos. mp4 / webm /

      quicktime. Built for ad agencies and creators.
  - name: Authentication
    description: Validate API keys and check account status
  - name: Compliance
    description: >-
      Run compliance checks on text + image content (sync). For video, use the
      Video Compliance endpoints above.
  - name: Agents
    description: Discover and invoke individual compliance agents
  - name: Jobs
    description: Poll async job status and view execution traces
  - name: Reports
    description: Retrieve and replay compliance reports
  - name: Observability
    description: Request logs and webhook delivery status
  - name: Billing
    description: Subscriptions, plan changes, and credit balance
  - name: Documents
    description: Extract text from PDF and Word documents before or as part of a check
  - name: Check History
    description: List and retrieve past compliance checks for the workspace
  - name: Provenance
    description: Inspect and sign Content Credentials (C2PA) on images and video
  - name: Corpus
    description: >-
      Review queue for proposed changes to the governed legal corpus (dashboard
      session)
  - name: Webhooks
    description: Saved webhook endpoints (dashboard session) and delivery logs
paths:
  /memory/review-queue/{proposalId}:
    get:
      tags:
        - Corpus
      summary: Get the review packet for a proposal
      description: >
        Everything needed to decide: proposed card and diff, source snapshots,
        gate results,

        authority and entailment, scope, conflicts, allowed actions and decision
        history.

        Echo `packetEtag` on the action you take. **Dashboard session only.**
      operationId: getReviewPacket
      parameters:
        - name: proposalId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Review packet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewPacket'
        '401':
          description: '`data.code`: `invalid_token`.'
        '403':
          description: '`data.code`: `memory_review_forbidden`.'
        '404':
          description: Proposal not found, or outside the caller's tenant scope.
components:
  schemas:
    ReviewPacket:
      type: object
      description: >
        Everything a reviewer needs to decide on one proposal: the proposed card
        and its diff,

        source snapshots, automated gate results, authority and entailment
        assessments,

        bitemporal validity, scope, any open conflict, the caller's allowed
        actions, and the

        decision history. `packetEtag` must be echoed on every action.
      properties:
        packetVersion:
          type: string
          enum:
            - human-review-packet.v1
        packetEtag:
          type: string
        generatedAt:
          type: string
          format: date-time
        proposal:
          type: object
          additionalProperties: true
        proposedCard:
          type: object
          additionalProperties: true
        proposedCardDiff:
          type: object
          additionalProperties: true
        sourceSnapshots:
          type: array
          items:
            type: object
            additionalProperties: true
        gateResults:
          type: array
          items:
            type: object
            properties:
              gateId:
                type: string
              status:
                type: string
                enum:
                  - passed
                  - failed
                  - needs_human
                  - warning
              severity:
                type: string
                enum:
                  - info
                  - warning
                  - blocking
              reason:
                type: string
              evidenceRefs:
                type: array
                items:
                  type: string
        humanReviewTrigger:
          type: array
          items:
            type: string
        authority:
          type: object
          additionalProperties: true
        entailment:
          type: object
          properties:
            score:
              type: number
            status:
              type: string
              enum:
                - entailed
                - partial
                - contradicted
                - not_checked
            rationale:
              type: string
        bitemporal:
          type: object
          additionalProperties: true
        scope:
          type: object
          additionalProperties: true
        conflict:
          type: object
          nullable: true
          additionalProperties: true
        reviewer:
          type: object
          properties:
            reviewerId:
              type: string
            roles:
              type: array
              items:
                type: string
            isProposalAuthor:
              type: boolean
        actionPolicy:
          type: object
          description: >-
            Whether `approve`, `reject` and `requestChanges` are allowed for
            this caller, and why not.
          additionalProperties: true
        decisionHistory:
          type: array
          items:
            type: object
            additionalProperties: true
        sla:
          type: object
          properties:
            dueAt:
              type: string
              nullable: true
            status:
              type: string
              enum:
                - ok
                - due_soon
                - overdue
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        API key starting with `zt_live_` (production) or `zt_test_` (sandbox).
        Get your key at https://developers.zebratruth.ai

````

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