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

# Submit an AI-generated outbound message for human review

> The gate intercepts AI-generated outbound before it reaches your sending infrastructure. Every submission is scanned by the policy engine and held in the approval queue until a human releases it.



## OpenAPI

````yaml /openapi.json post /v1/gate/outbound
openapi: 3.1.0
info:
  title: DataVibe Public Gate API
  version: 1.0.0
  description: >-
    Customer API for deterministic pre-send governance of AI-generated outbound.
    Internal operator, admin, and archived product routes are intentionally
    excluded.
  contact:
    name: DataVibe support
    email: hi@datavibe.cc
    url: https://datavibe.cc/contact
servers:
  - url: https://api.datavibe.cc
    description: Production
security: []
tags:
  - name: Governance Check
  - name: Outbound Gate
paths:
  /v1/gate/outbound:
    post:
      tags:
        - Outbound Gate
      summary: Submit an AI-generated outbound message for human review
      description: >-
        The gate intercepts AI-generated outbound before it reaches your sending
        infrastructure. Every submission is scanned by the policy engine and
        held in the approval queue until a human releases it.
      operationId: submit_outbound_v1_gate_outbound_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api__routes__gate__OutboundGateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutboundGateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - APIKeyHeader: []
components:
  schemas:
    api__routes__gate__OutboundGateRequest:
      properties:
        body_html:
          description: Email body as HTML.
          maxLength: 262144
          minLength: 1
          title: Body Html
          type: string
        body_text:
          anyOf:
            - maxLength: 262144
              type: string
            - type: 'null'
          description: Plain-text fallback (optional).
          title: Body Text
        campaign_id:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          description: Optional campaign ID for analytics.
          title: Campaign Id
        content_type:
          default: email
          description: Policy content type used for content-type-specific snapshot rules.
          enum:
            - email
            - message
            - document
            - code
            - agent_action
            - tool_call
            - api_response
            - other
          title: Content Type
          type: string
        governance_action_id:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          description: GovernanceAgentAction.id that triggered this submission.
          title: Governance Action Id
        idempotency_key:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          description: >-
            Client-supplied idempotency key. Re-submitting the same key returns
            the original action_id.
          title: Idempotency Key
        metadata:
          additionalProperties: true
          description: Any extra context (score, template, etc.).
          title: Metadata
          type: object
        recipient:
          description: Recipient email address.
          format: email
          title: Recipient
          type: string
        source_model:
          anyOf:
            - maxLength: 120
              type: string
            - type: 'null'
          description: LLM model that generated this (e.g. 'gpt-4o').
          title: Source Model
        subject:
          description: Email subject line.
          maxLength: 998
          minLength: 1
          title: Subject
          type: string
      required:
        - recipient
        - subject
        - body_html
      title: OutboundGateRequest
      type: object
    OutboundGateResponse:
      properties:
        action_id:
          title: Action Id
          type: string
        config_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Config Hash
        message:
          title: Message
          type: string
        policy_passed:
          title: Policy Passed
          type: boolean
        policy_violations:
          items:
            $ref: '#/components/schemas/GateViolationResponse'
          title: Policy Violations
          type: array
        queue_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Queue Reason
        review_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Review Url
        snapshot_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Snapshot Id
        status:
          enum:
            - QUEUED
            - BLOCKED
            - APPROVED
            - DISPATCHING
            - SENT
            - FAILED
            - REJECTED
          title: Status
          type: string
      required:
        - action_id
        - status
        - policy_passed
        - policy_violations
        - review_url
        - message
      title: OutboundGateResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    GateViolationResponse:
      properties:
        confidence:
          anyOf:
            - type: number
            - type: 'null'
          title: Confidence
        detail:
          title: Detail
          type: string
        matched_substring:
          anyOf:
            - type: string
            - type: 'null'
          title: Matched Substring
        mitigation:
          anyOf:
            - type: string
            - type: 'null'
          title: Mitigation
        reasoning:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning
        rule:
          title: Rule
          type: string
        safer_alternative:
          anyOf:
            - type: string
            - type: 'null'
          title: Safer Alternative
        severity:
          enum:
            - BLOCK
            - WARN
          title: Severity
          type: string
      required:
        - rule
        - severity
        - detail
      title: GateViolationResponse
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: Authorization
      type: apiKey

````