{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/bugtape-ai/json-schema/bugtape-ai-post-v1-ingest-request-schema.json",
  "title": "PostV1IngestRequest",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/bugtape-ai-openapi-generated.yml#/components/schemas/PostV1IngestRequest",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "1-500 characters"
    },
    "description": {
      "type": "string",
      "description": "0-10,000 characters"
    },
    "severity": {
      "type": "string",
      "description": "\"critical\" | \"high\" | \"medium\" | \"low\" (default: \"medium\")"
    },
    "url": {
      "type": "string",
      "description": "0-2,000 characters"
    },
    "userAgent": {
      "type": "string",
      "description": "max 500 characters"
    },
    "viewport": {
      "type": "string",
      "description": "max 50 characters, e.g. \"1920x1080\""
    },
    "events": {
      "type": "array",
      "description": "max 1,000 events"
    },
    "screenshot": {
      "type": "string",
      "description": "base64 or JSON object"
    },
    "audio": {
      "type": "string",
      "description": "base64 or JSON object"
    },
    "aiSummary": {
      "type": "string",
      "description": "client-side AI summary"
    },
    "encrypted": {
      "type": "object",
      "description": "unsupported: not a retrievable encrypted-artifact path"
    },
    "reporterEmail": {
      "type": "string",
      "description": "valid email"
    },
    "reporterId": {
      "type": "string",
      "description": "max 200 chars — app-specific reporter id"
    },
    "sessionId": {
      "type": "string",
      "description": "max 200 chars"
    },
    "userId": {
      "type": "string",
      "description": "max 200 chars"
    },
    "release": {
      "type": "string",
      "description": "max 200 chars (app version on mobile)"
    },
    "environment": {
      "type": "string",
      "description": "max 100 chars"
    },
    "platform": {
      "type": "string",
      "description": "web | ios | android | react-native | flutter | server | other"
    },
    "device": {
      "type": "string",
      "description": "max 120 chars, e.g. \"iPhone15,3\""
    },
    "osVersion": {
      "type": "string",
      "description": "max 60 chars, e.g. \"17.4.1\""
    },
    "metadata": {
      "type": "object",
      "description": "arbitrary per-occurrence metadata"
    }
  },
  "required": [
    "title"
  ]
}