{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Upload raw image bytes to the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). Mirrors com.atproto.repo.uploadBlob. The returned blob ref is passed into createPost, createComment, or putProfile to attach it to a record. This endpoint applies no per-context size limit beyond a generous ceiling — the PDS enforces the real limit (post/comment 5MB, avatar 1MB, banner 2MB) when the blob is actually attached to a record.",
      "input": {
        "encoding": "*/*"
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "blob": {
              "accept": [
                "image/png",
                "image/jpeg",
                "image/webp"
              ],
              "maxSize": 5000000,
              "type": "blob"
            }
          },
          "required": [
            "blob"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "app.didpic.write.uploadBlob",
  "lexicon": 1
}
