{
  "name": "Dr Fast Upload API",
  "description": "Public API for lossless, unlimited image and file hosting.",
  "base_url": "https://dr-fast-upload.pages.dev",
  "endpoints": {
    "POST /api/upload": {
      "description": "Upload a single file.",
      "headers": {
        "Content-Type": "application/json"
      },
      "body": {
        "filename": "string (required, e.g. 'image.png')",
        "content": "string (required, Base64 encoded file content, max 24MB decoded)",
        "uploadDate": "string (optional, ISO 8601 date)",
        "clientTimestamp": "number (optional, UNIX timestamp)",
        "pHash": "string (optional, perceptual hash for images)"
      },
      "responses": {
        "200 OK": "Successfully uploaded. Returns { success: true, url: '...', cached: false }",
        "409 Conflict": "File already exists. Returns { success: true, url: '...', cached: true }",
        "413 Payload Too Large": "File exceeds 24MB.",
        "415 Unsupported Media Type": "Executable files are blocked.",
        "400 Bad Request": "Missing filename, content, or invalid base64."
      },
      "example_curl": "curl -X POST https://dr-fast-upload.pages.dev/api/upload -H \"Content-Type: application/json\" -d '{\"filename\": \"test.txt\", \"content\": \"SGVsbG8gV29ybGQ=\"}'"
    },
    "POST /api/batch-upload": {
      "description": "Upload multiple files in a single request.",
      "headers": {
        "Content-Type": "application/json"
      },
      "body": {
        "files": [
          {
            "filename": "string (required)",
            "content": "string (required, Base64 encoded)"
          }
        ]
      },
      "responses": {
        "200 OK": "Returns { success: true, results: [{ filename: '...', url: '...', cached: boolean }] }"
      },
      "example_curl": "curl -X POST https://dr-fast-upload.pages.dev/api/batch-upload -H \"Content-Type: application/json\" -d '{\"files\": [{\"filename\": \"test.txt\", \"content\": \"SGVsbG8=\"}]}'"
    }
  },
  "limits": {
    "max_file_size": "24 MB",
    "blocked_extensions": [
      ".exe",
      ".bat",
      ".cmd",
      ".sh",
      ".ps1",
      ".vbs",
      ".scr",
      ".msi",
      ".com",
      ".pif"
    ]
  }
}