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

# Submit content

> Submit text, image, video, audio, or object content for moderation analysis.

Submit content for moderation and receive analysis results immediately. Supports text, image, object, video, and audio content types.

For detailed usage examples and content metadata options, see [Submitting content](/content-moderation/submit-content).


## OpenAPI

````yaml POST /moderate
openapi: 3.1.0
info:
  title: Moderation API
  description: API for automated content moderation
  version: 1.1.0
servers:
  - url: https://api.moderationapi.com/v1
security: []
tags:
  - name: Actions
  - name: Queues
  - name: Webhooks
  - name: Wordlist
  - name: UserReports
  - name: Voice
    description: Real-time voice moderation over WebSocket.
externalDocs:
  url: https://docs.moderationapi.com
paths:
  /moderate:
    post:
      operationId: newModerate-moderate
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          const: text
                        text:
                          type: string
                          maxLength: 100000
                          description: The content text
                      required:
                        - type
                        - text
                      description: Text
                      title: Text
                    - type: object
                      properties:
                        type:
                          type: string
                          const: image
                        url:
                          description: >-
                            A public URL of the image content. Either url or
                            data must be provided.
                          type: string
                          format: uri
                        data:
                          description: >-
                            Base64-encoded image data. Either url or data must
                            be provided. Note: base64 images are not stored and
                            will not appear in the review queue.
                          type: string
                          maxLength: 5500000
                      required:
                        - type
                      description: Image
                      title: Image
                    - type: object
                      properties:
                        type:
                          type: string
                          const: video
                        url:
                          type: string
                          format: uri
                          description: A public URL of the video content
                      required:
                        - type
                        - url
                      description: Video
                      title: Video
                    - type: object
                      properties:
                        type:
                          type: string
                          const: audio
                        url:
                          type: string
                          format: uri
                          description: The URL of the audio content
                      required:
                        - type
                        - url
                      description: Audio
                      title: Audio
                    - type: object
                      properties:
                        type:
                          type: string
                          const: object
                        data:
                          type: object
                          propertyNames:
                            type: string
                            description: The key of the content node
                          additionalProperties:
                            oneOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: text
                                  text:
                                    type: string
                                    maxLength: 100000
                                    description: The content text
                                required:
                                  - type
                                  - text
                                description: Text
                                title: Text
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: image
                                  url:
                                    description: >-
                                      A public URL of the image content. Either
                                      url or data must be provided.
                                    type: string
                                    format: uri
                                  data:
                                    description: >-
                                      Base64-encoded image data. Either url or
                                      data must be provided. Note: base64 images
                                      are not stored and will not appear in the
                                      review queue.
                                    type: string
                                    maxLength: 5500000
                                required:
                                  - type
                                description: Image
                                title: Image
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: video
                                  url:
                                    type: string
                                    format: uri
                                    description: A public URL of the video content
                                required:
                                  - type
                                  - url
                                description: Video
                                title: Video
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: audio
                                  url:
                                    type: string
                                    format: uri
                                    description: The URL of the audio content
                                required:
                                  - type
                                  - url
                                description: Audio
                                title: Audio
                            title: Content leaf
                            type: object
                          description: Values in the object. Can be mixed content types.
                      required:
                        - type
                        - data
                      description: Object
                      title: Object
                  description: The content sent for moderation
                  type: object
                timestamp:
                  description: >-
                    Unix timestamp (in milliseconds) of when the content was
                    created. Use if content is not submitted in real-time.
                  type: number
                channel:
                  description: >-
                    Provide a channel ID or key. Will use the project's default
                    channel if not provided.
                  type: string
                contentId:
                  description: The unique ID of the content in your database.
                  type: string
                  maxLength: 100
                metaType:
                  description: The meta type of content being moderated
                  type: string
                  enum:
                    - profile
                    - message
                    - post
                    - comment
                    - event
                    - product
                    - review
                    - voice
                    - other
                authorId:
                  description: The author of the content.
                  type: string
                conversationId:
                  description: For example the ID of a chat room or a post
                  type: string
                metadata:
                  description: Any metadata you want to store with the content
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                clientAction:
                  description: >-
                    A recommendation from your own client-side flagging (e.g. a
                    banned-IP list or a third-party tool). Feeds the rules
                    engine and can escalate or override the recommended action.
                    Does not change whether our analysis flagged the content.
                  type: object
                  properties:
                    action:
                      type: string
                      enum:
                        - review
                        - allow
                        - reject
                      description: >-
                        Your recommendation for the content: allow, review, or
                        reject.
                    behavior:
                      description: >-
                        How your recommendation combines with ours. Defaults to
                        'escalate', which only applies it when stricter than
                        ours; 'override' replaces ours outright.
                      type: string
                      enum:
                        - override
                        - escalate
                    source:
                      description: Where your recommendation came from, e.g. "banned-ip".
                      type: string
                      maxLength: 100
                    reason:
                      description: A human-readable explanation for your recommendation.
                      type: string
                      maxLength: 500
                  required:
                    - action
                doNotStore:
                  description: >-
                    Do not store the content. The content won't enter the review
                    queue
                  type: boolean
                policies:
                  description: >-
                    (Enterprise) override the channel policies for this
                    moderation request only.
                  type: array
                  items:
                    oneOf:
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: toxicity
                        required:
                          - flag
                          - id
                        title: Toxicity
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: personal_information
                        required:
                          - flag
                          - id
                        title: Personal Information
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: toxicity_severe
                        required:
                          - flag
                          - id
                        title: Toxicity Severe
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: hate
                        required:
                          - flag
                          - id
                        title: Hate
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit
                        required:
                          - flag
                          - id
                        title: Illicit
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit_drugs
                        required:
                          - flag
                          - id
                        title: Illicit Drugs
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit_alcohol
                        required:
                          - flag
                          - id
                        title: Illicit Alcohol
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit_firearms
                        required:
                          - flag
                          - id
                        title: Illicit Firearms
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit_tobacco
                        required:
                          - flag
                          - id
                        title: Illicit Tobacco
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: illicit_gambling
                        required:
                          - flag
                          - id
                        title: Illicit Gambling
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: cannabis
                        required:
                          - flag
                          - id
                        title: Cannabis
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: adult
                        required:
                          - flag
                          - id
                        title: Adult
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: crypto
                        required:
                          - flag
                          - id
                        title: Crypto
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: sexual
                        required:
                          - flag
                          - id
                        title: Sexual
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: flirtation
                        required:
                          - flag
                          - id
                        title: Flirtation
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: profanity
                        required:
                          - flag
                          - id
                        title: Profanity
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: violence
                        required:
                          - flag
                          - id
                        title: Violence
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: self_harm
                        required:
                          - flag
                          - id
                        title: Self Harm
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: spam
                        required:
                          - flag
                          - id
                        title: Spam
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: low_quality
                          minWords:
                            description: >-
                              Flag content with fewer than this many words as
                              low-effort. Defaults to 3. Set to disable by
                              omitting.
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                        required:
                          - flag
                          - id
                        title: Low-quality content
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: face_detection
                          comparator:
                            description: >-
                              Flag images that contain "at least" or "fewer
                              than" the configured number of faces. Defaults to
                              at_least.
                            type: string
                            enum:
                              - at_least
                              - fewer_than
                          count:
                            description: >-
                              Number of faces the comparator applies to.
                              Defaults to 1, so the default rule flags any image
                              containing a face.
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - flag
                          - id
                        title: Face detection
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: self_promotion
                        required:
                          - flag
                          - id
                        title: Self Promotion
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: political
                        required:
                          - flag
                          - id
                        title: Political
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: religion
                        required:
                          - flag
                          - id
                        title: Religion
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: code_abuse
                        required:
                          - flag
                          - id
                        title: Code Abuse
                      - type: object
                        properties:
                          id:
                            type: string
                            const: pii
                          entities:
                            type: object
                            propertyNames:
                              type: string
                              enum:
                                - email
                                - phone
                                - url
                                - address
                                - name
                                - username
                                - ip_address
                                - credit_card
                                - sensitive_other
                            additionalProperties:
                              type: object
                              properties:
                                enable:
                                  type: boolean
                                flag:
                                  type: boolean
                                shouldMask:
                                  type: boolean
                                mask:
                                  type: string
                              additionalProperties: {}
                            required:
                              - email
                              - phone
                              - url
                              - address
                              - name
                              - username
                              - ip_address
                              - credit_card
                              - sensitive_other
                        required:
                          - id
                          - entities
                        title: PII Masking
                      - type: object
                        properties:
                          id:
                            type: string
                            const: url
                          entities:
                            type: object
                            propertyNames:
                              type: string
                              enum:
                                - email
                                - phone
                                - url
                                - address
                                - name
                                - username
                                - ip_address
                                - credit_card
                                - sensitive_other
                            additionalProperties:
                              type: object
                              properties:
                                enable:
                                  type: boolean
                                flag:
                                  type: boolean
                                shouldMask:
                                  type: boolean
                                mask:
                                  type: string
                              additionalProperties: {}
                            required:
                              - email
                              - phone
                              - url
                              - address
                              - name
                              - username
                              - ip_address
                              - credit_card
                              - sensitive_other
                        required:
                          - id
                          - entities
                        title: URL Masking
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: url_risk
                          allowlistWordlistIds:
                            description: >-
                              IDs of wordlists whose entries are treated as
                              allowed URL domains. Matches short-circuit the
                              risk model and are never flagged.
                            type: array
                            items:
                              type: string
                          blocklistWordlistIds:
                            description: >-
                              IDs of wordlists whose entries are treated as
                              blocked URL domains. Matches short-circuit the
                              risk model and are always flagged. Blocklists take
                              precedence over allowlists.
                            type: array
                            items:
                              type: string
                          flagLinkShorteners:
                            description: >-
                              When true, any URL detected as a free link
                              shortener (bit.ly, t.co, tinyurl, etc.) is always
                              flagged regardless of risk score. Allowlist
                              matches still win.
                            type: boolean
                        required:
                          - flag
                          - id
                        title: URL Risk
                      - type: object
                        properties:
                          flag:
                            type: boolean
                          threshold:
                            type: number
                            minimum: 0
                            maximum: 1
                          id:
                            type: string
                            const: guideline
                          instructions:
                            type: string
                          guidelineKey:
                            type: string
                        required:
                          - flag
                          - id
                          - instructions
                          - guidelineKey
                        title: Guideline
                    type: object
              required:
                - content
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          The unique identifier for the content. Either the
                          contentId provided by you or an autogenerated ID.
                      masked:
                        type: boolean
                        description: Whether any values have been masked.
                      modified:
                        anyOf:
                          - anyOf:
                              - type: string
                                title: Modified string content
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties: {}
                                title: Modified object content
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties:
                                  oneOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: text
                                        text:
                                          type: string
                                          maxLength: 100000
                                          description: The content text
                                      required:
                                        - type
                                        - text
                                      additionalProperties: false
                                      description: Text
                                      title: Text
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: image
                                        url:
                                          description: >-
                                            A public URL of the image content.
                                            Either url or data must be provided.
                                          type: string
                                          format: uri
                                        data:
                                          description: >-
                                            Base64-encoded image data. Either url or
                                            data must be provided. Note: base64
                                            images are not stored and will not
                                            appear in the review queue.
                                          type: string
                                          maxLength: 5500000
                                      required:
                                        - type
                                      additionalProperties: false
                                      description: Image
                                      title: Image
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: video
                                        url:
                                          type: string
                                          format: uri
                                          description: A public URL of the video content
                                      required:
                                        - type
                                        - url
                                      additionalProperties: false
                                      description: Video
                                      title: Video
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: audio
                                        url:
                                          type: string
                                          format: uri
                                          description: The URL of the audio content
                                      required:
                                        - type
                                        - url
                                      additionalProperties: false
                                      description: Audio
                                      title: Audio
                                  title: Content leaf
                                  type: object
                                title: Modified nested object content
                          - type: 'null'
                        description: The modified content, if any.
                      transcript:
                        description: >-
                          The transcribed text from audio content. Only present
                          when audio moderation is used and transcript inclusion
                          is enabled on the channel.
                        anyOf:
                          - type: string
                          - type: 'null'
                    required:
                      - id
                      - masked
                      - modified
                    additionalProperties: false
                    description: Potentially modified content.
                  author:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            description: Author ID in Moderation API
                          external_id:
                            description: The author's ID from your system
                            anyOf:
                              - type: string
                              - type: 'null'
                          block:
                            anyOf:
                              - type: object
                                properties:
                                  until:
                                    description: >-
                                      The timestamp until which they are blocked
                                      if the author is suspended.
                                    anyOf:
                                      - type: number
                                      - type: 'null'
                                  reason:
                                    description: >-
                                      The moderators reason why the author was
                                      blocked or suspended.
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                additionalProperties: false
                              - type: 'null'
                            description: >-
                              Block or suspension details, if applicable. Null
                              if the author is enabled.
                          status:
                            type: string
                            enum:
                              - enabled
                              - suspended
                              - blocked
                            description: Current author status
                          trust_level:
                            type: object
                            properties:
                              level:
                                type: number
                                description: Author trust level (-1, 0, 1, 2, 3, or 4)
                              manual:
                                type: boolean
                                description: >-
                                  True if the trust level was set manually by a
                                  moderator
                            required:
                              - level
                              - manual
                            additionalProperties: false
                        required:
                          - id
                          - block
                          - status
                          - trust_level
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      The author of the content if your account has authors
                      enabled. Requires you to send authorId when submitting
                      content.
                  evaluation:
                    type: object
                    properties:
                      flagged:
                        type: boolean
                        description: Whether the content was flagged by any policy.
                      flag_probability:
                        type: number
                        description: The probability that the content should be flagged.
                      severity_score:
                        type: number
                        description: >-
                          The severity score of the content. A higher score
                          indicates more severe content.
                      unicode_spoofed:
                        description: Whether the content was flagged for Unicode spoofing.
                        type: boolean
                      shadow_flagged:
                        description: >-
                          Whether the content would have been flagged by
                          analyze-only policies (flag: false).
                        type: boolean
                    required:
                      - flagged
                      - flag_probability
                      - severity_score
                    additionalProperties: false
                    description: >-
                      The evaluation of the content after running the channel
                      policies.
                  recommendation:
                    type: object
                    properties:
                      action:
                        type: string
                        enum:
                          - review
                          - allow
                          - reject
                        description: The action to take based on the recommendation
                      reason_codes:
                        type: array
                        items:
                          type: string
                          enum:
                            - severity_reject
                            - severity_review
                            - author_block
                            - dry_run
                            - trusted_allow
                            - untrusted_severity
                            - rule_match
                            - rule_default
                            - rule_fallback
                            - client_override
                        description: >-
                          The reason code for the recommendation. Can be used to
                          display a reason to the user.
                      matched_rules:
                        description: >-
                          Rules that matched during evaluation, if rules engine
                          is active.
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                          required:
                            - key
                            - name
                          additionalProperties: false
                    required:
                      - action
                      - reason_codes
                    additionalProperties: false
                    description: >-
                      The recommendation for the content based on the
                      evaluation.
                  policies:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              description: The unique identifier for the classifier output.
                            type:
                              type: string
                              const: classifier
                            probability:
                              type: number
                              minimum: 0
                              maximum: 1
                            flagged:
                              type: boolean
                            flagged_fields:
                              description: >-
                                The keys of the flagged fields if submitting an
                                object.
                              type: array
                              items:
                                type: string
                            labels:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  probability:
                                    type: number
                                    minimum: 0
                                    maximum: 1
                                  flagged:
                                    type: boolean
                                required:
                                  - id
                                  - probability
                                  - flagged
                                additionalProperties: false
                            data:
                              description: >-
                                Optional structured data produced by the policy.
                                For face detection: { count, faces: [{
                                confidence, gender, age }] }.
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                          required:
                            - id
                            - type
                            - probability
                            - flagged
                          additionalProperties: false
                          description: Classifier policy.
                          title: Classifier output
                        - type: object
                          properties:
                            id:
                              type: string
                            type:
                              type: string
                              const: entity_matcher
                            probability:
                              type: number
                              minimum: 0
                              maximum: 1
                            flagged:
                              type: boolean
                            flagged_fields:
                              type: array
                              items:
                                type: string
                            matches:
                              type: array
                              items:
                                type: object
                                properties:
                                  probability:
                                    type: number
                                    minimum: 0
                                    maximum: 1
                                  match:
                                    type: string
                                  span:
                                    minItems: 2
                                    maxItems: 2
                                    type: array
                                    items:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                  reasons:
                                    description: >-
                                      Stable codes explaining why a URL was
                                      flagged (URL Risk only).
                                    type: array
                                    items:
                                      type: string
                                  signals:
                                    description: >-
                                      Observable properties of a URL (URL Risk
                                      only). Absent for allow/block list
                                      matches.
                                    type: object
                                    properties:
                                      brand_impersonation:
                                        anyOf:
                                          - type: object
                                            properties:
                                              brand:
                                                type: string
                                              method:
                                                type: string
                                                enum:
                                                  - registered_domain_token
                                                  - subdomain_token
                                            required:
                                              - brand
                                              - method
                                            additionalProperties: false
                                          - type: 'null'
                                      has_suspicious_characters:
                                        type: boolean
                                      is_link_shortener:
                                        type: boolean
                                      domain_age_days:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      has_email_setup:
                                        anyOf:
                                          - type: boolean
                                          - type: 'null'
                                      redirect_count:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      final_url:
                                        anyOf:
                                          - type: string
                                          - type: 'null'
                                      bot_protection:
                                        anyOf:
                                          - type: boolean
                                          - type: 'null'
                                      is_reported:
                                        type: boolean
                                    required:
                                      - brand_impersonation
                                      - has_suspicious_characters
                                      - is_link_shortener
                                      - domain_age_days
                                      - has_email_setup
                                      - redirect_count
                                      - final_url
                                      - bot_protection
                                      - is_reported
                                    additionalProperties: false
                                  entity_type:
                                    description: >-
                                      Sub-type of the entity match — e.g. the
                                      NER key (email, phone, name, …) for PII
                                      matches. Absent for URL Risk and wordlist
                                      matches where the type is already encoded
                                      in the parent label.
                                    type: string
                                required:
                                  - probability
                                  - match
                                  - span
                                additionalProperties: false
                          required:
                            - id
                            - type
                            - probability
                            - flagged
                            - matches
                          additionalProperties: false
                          description: Entity matcher policy.
                          title: Entity matcher output
                      description: Policy output schema.
                      type: object
                    description: >-
                      Results of all policies in the channel. Sorted by highest
                      probability.
                  insights:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              const: sentiment
                            type:
                              type: string
                              const: insight
                            probability:
                              type: number
                              minimum: 0
                              maximum: 1
                            value:
                              anyOf:
                                - type: string
                                  enum:
                                    - positive
                                    - neutral
                                    - negative
                                - type: 'null'
                          required:
                            - id
                            - type
                            - probability
                            - value
                          additionalProperties: false
                          description: Sentiment insight
                          title: Sentiment insight
                        - type: object
                          properties:
                            id:
                              type: string
                              const: language
                            type:
                              type: string
                              const: insight
                            probability:
                              type: number
                              minimum: 0
                              maximum: 1
                            value:
                              anyOf:
                                - type: string
                                - type: 'null'
                          required:
                            - id
                            - type
                            - probability
                            - value
                          additionalProperties: false
                          description: Language insight
                          title: Language insight
                      type: object
                    description: Results of all insights enabled in the channel.
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - success
                          - partial_success
                      timestamp:
                        type: number
                      channel_key:
                        type: string
                        description: >-
                          The unique key of the channel where the content was
                          handled. Either the channel provided by you or
                          automatically routed.
                      usage:
                        type: number
                      processing_time:
                        type: string
                    required:
                      - status
                      - timestamp
                      - channel_key
                      - usage
                    additionalProperties: false
                    description: Metadata about the moderation request
                  errors:
                    description: Policies that had errors
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        message:
                          type: string
                      required:
                        - id
                        - message
                      additionalProperties: false
                required:
                  - content
                  - author
                  - evaluation
                  - recommendation
                  - policies
                  - insights
                  - meta
                additionalProperties: false
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import ModerationAPI from '@moderation-api/sdk';


            const client = new ModerationAPI({
              secretKey: process.env['MODAPI_SECRET_KEY'], // This is the default and can be omitted
            });


            const response = await client.content.submit({ content: { text:
            'text', type: 'text' } });


            console.log(response.author);
        - lang: Python
          source: |-
            import os
            from moderation_api import ModerationAPI

            client = ModerationAPI(
                secret_key=os.environ.get("MODAPI_SECRET_KEY"),  # This is the default and can be omitted
            )
            response = client.content.submit(
                content={
                    "text": "text",
                    "type": "text",
                },
            )
            print(response.author)
        - lang: Ruby
          source: >-
            require "moderation_api"


            moderation_api = ModerationAPI::Client.new(secret_key: "My Secret
            Key")


            response = moderation_api.content.submit(content: {text: "text",
            type: :text})


            puts(response)
        - lang: PHP
          source: >-
            <?php


            require_once dirname(__DIR__) . '/vendor/autoload.php';


            use ModerationAPI\Client;

            use ModerationAPI\Core\Exceptions\APIException;


            $client = new Client(secretKey: getenv('MODAPI_SECRET_KEY') ?: 'My
            Secret Key');


            try {
              $response = $client->content->submit(
                content: ['text' => 'text', 'type' => 'text'],
                authorID: 'authorId',
                channel: 'channel',
                clientAction: [
                  'action' => 'review',
                  'behavior' => 'override',
                  'reason' => 'reason',
                  'source' => 'source',
                ],
                contentID: 'contentId',
                conversationID: 'conversationId',
                doNotStore: true,
                metadata: ['foo' => 'bar'],
                metaType: 'profile',
                policies: [['id' => 'toxicity', 'flag' => true, 'threshold' => 0]],
                timestamp: 0,
              );

              var_dump($response);
            } catch (APIException $e) {
              echo $e->getMessage();
            }
        - lang: C#
          source: >-
            using System;

            using ModerationApi;

            using ModerationApi.Models.Content;


            ModerationApiClient client = new();


            ContentSubmitParams parameters = new() { Content = new Text("text")
            };


            var response = await client.Content.Submit(parameters);


            Console.WriteLine(response);
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````