openapi: 3.1.0
info:
  title: HushSafe API
  version: 1.0.0
  description: Content moderation API for text, image, and video.
  contact:
    name: MatrioshkaLabs Developer Support
    url: https://matrioshkalabs.com/developers
servers:
  - url: https://api.hushsafe.com/v1
    description: Production
  - url: https://matrioshkalabs.com/api/v1
    description: Sandbox (demo keys)
paths:
  /moderate/text:
    post:
      summary: Moderate text content
      operationId: moderateText
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [text]
              properties:
                text:
                  type: string
                  maxLength: 10000
      responses:
        "200":
          description: Moderation result
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModerationResponse"
        "401":
          description: Invalid or missing API key
        "429":
          description: Rate limit exceeded
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
  schemas:
    ModerationResult:
      type: object
      properties:
        category:
          type: string
        severity:
          type: string
          enum: [high, medium, low]
        confidence:
          type: number
        action:
          type: string
    ModerationResponse:
      type: object
      properties:
        id:
          type: string
        results:
          type: array
          items:
            $ref: "#/components/schemas/ModerationResult"
        latency_ms:
          type: integer
        sandbox:
          type: boolean