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

# Submit prompt moderation

> Submit a text prompt for moderation. Returns a job ID for polling or webhook delivery. The pipeline runs keyword filtering and an LLM prohibition check; a prohibited prompt is rejected, with the reason returned on the completed job.

<Note>
  Requires the `moderate:prompt` scope. Requests without this scope receive a `403 FORBIDDEN`
  response. See [authentication](/authentication#scopes).
</Note>


## OpenAPI

````yaml api-reference/openapi.json POST /api/v1/moderate/prompt
openapi: 3.1.0
info:
  title: Omnifence API
  description: >-
    Content moderation API. Clients submit images or videos which pass through a
    classification pipeline and receive a pass/reject decision.
  version: 1.0.0
  contact:
    email: support@omnifence.ai
servers:
  - url: http://localhost:3051
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: System
    description: Health and diagnostics
  - name: Moderation
    description: Submit moderation jobs
  - name: Jobs
    description: Query job status and progress
  - name: Usage
    description: Billing and usage data
  - name: Webhooks
    description: Webhook registration
  - name: Account
    description: Authenticated client account settings
  - name: Billing
    description: Customer-facing billing balance and ledger
  - name: Admin
    description: Platform administration (requires admin:config scope)
paths:
  /api/v1/moderate/prompt:
    post:
      tags:
        - Moderation
      summary: Submit prompt moderation
      description: >-
        Submit a text prompt for moderation. Returns a job ID for polling or
        webhook delivery. The pipeline runs keyword filtering and an LLM
        prohibition check; a prohibited prompt is rejected, with the reason
        returned on the completed job.
      operationId: submitPromptModeration
      responses:
        '202':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - queued
                required:
                  - job_id
                  - status
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl -X POST https://api.omnifence.ai/api/v1/moderate/prompt \
              -H "Authorization: Bearer $OMNIFENCE_API_KEY" \
              -F "text=A beautiful sunset over the ocean" \
              -F "webhook_url=https://your-app.com/webhooks/omnifence"  # optional
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key from the Omnifence dashboard

````