{
  "openapi": "3.1.0",
  "info": {
    "title": "Uppy documentation content API",
    "summary": "Read-only HTTP access to the Uppy documentation.",
    "description": "uppy.io serves its documentation as static files. Every documentation page is\navailable as HTML and as Markdown. For Markdown, replace the HTML path’s\ntrailing slash with `.md` (`/docs/quick-start/` becomes `/docs/quick-start.md`).\nThe whole corpus is indexed by llms.txt.\n\nThis is a content API, not a service API: every operation is a GET,\nnothing is authenticated, and nothing has side effects. The Uppy\n*server* component is Companion, which is documented separately at\nhttps://uppy.io/docs/companion.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://uppy.io"
    }
  ],
  "tags": [
    {
      "name": "pages",
      "description": "Documentation pages, as HTML or Markdown."
    },
    {
      "name": "indexes",
      "description": "Machine-readable indexes of the site."
    }
  ],
  "paths": {
    "/docs/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_",
        "summary": "Fetch Uppy documentation as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_md_md",
        "summary": "Fetch Uppy documentation as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/building-plugins/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_building_plugins_",
        "summary": "Fetch \"guides/building-plugins\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/building-plugins.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_building_plugins_md_md",
        "summary": "Fetch \"guides/building-plugins\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/building-your-own-ui-with-uppy/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_building_your_own_ui_with_uppy_",
        "summary": "Fetch \"guides/building-your-own-ui-with-uppy\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/building-your-own-ui-with-uppy.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_building_your_own_ui_with_uppy_md_md",
        "summary": "Fetch \"guides/building-your-own-ui-with-uppy\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/choosing-uploader/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_choosing_uploader_",
        "summary": "Fetch \"guides/choosing-uploader\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/choosing-uploader.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_choosing_uploader_md_md",
        "summary": "Fetch \"guides/choosing-uploader\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/custom-stores/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_custom_stores_",
        "summary": "Fetch \"guides/custom-stores\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/custom-stores.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_custom_stores_md_md",
        "summary": "Fetch \"guides/custom-stores\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/migration-guides/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_migration_guides_",
        "summary": "Fetch \"guides/migration-guides\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/migration-guides.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_migration_guides_md_md",
        "summary": "Fetch \"guides/migration-guides\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/browser-support/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_browser_support_",
        "summary": "Fetch \"guides/browser-support\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/browser-support.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_browser_support_md_md",
        "summary": "Fetch \"guides/browser-support\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/uppy-transloadit/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_uppy_transloadit_",
        "summary": "Fetch \"guides/uppy-transloadit\" as HTML.",
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/guides/uppy-transloadit.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "get_docs_guides_uppy_transloadit_md_md",
        "summary": "Fetch \"guides/uppy-transloadit\" as Markdown.",
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/{slug}/": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "getDocPage",
        "summary": "Fetch a documentation page as HTML.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Single-segment page identifier. Nested pages (a slug containing a slash) are described as literal paths in this document.",
            "schema": {
              "type": "string",
              "enum": [
                "quick-start",
                "ai-image",
                "angular",
                "audio",
                "aws-s3",
                "box",
                "companion",
                "comparison",
                "compressor",
                "dashboard",
                "drag-drop",
                "drop-target",
                "dropbox",
                "facebook",
                "file-input",
                "form",
                "golden-retriever",
                "google-drive",
                "google-drive-picker",
                "google-photos-picker",
                "image-editor",
                "url",
                "webdav",
                "informer",
                "locales",
                "nextjs",
                "onedrive",
                "progress-bar",
                "react",
                "reactrouter",
                "remote-sources",
                "screen-capture",
                "status-bar",
                "svelte",
                "sveltekit",
                "thumbnail-generator",
                "transloadit",
                "tus",
                "unsplash",
                "uppy",
                "vue",
                "webcam",
                "xhr-upload",
                "zoom"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The rendered page.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No such page. The body links llms.txt (the documentation index), llms-full.txt (the full documentation), openapi.json and the sitemap so a client can recover.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/{slug}.md": {
      "get": {
        "tags": [
          "pages"
        ],
        "operationId": "getDocPageMarkdown",
        "summary": "Fetch the same page as Markdown.",
        "description": "Preferred for agents: the Markdown is the documentation source, without site chrome.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Single-segment page identifier. Nested pages (a slug containing a slash) are described as literal paths in this document.",
            "schema": {
              "type": "string",
              "enum": [
                "quick-start",
                "ai-image",
                "angular",
                "audio",
                "aws-s3",
                "box",
                "companion",
                "comparison",
                "compressor",
                "dashboard",
                "drag-drop",
                "drop-target",
                "dropbox",
                "facebook",
                "file-input",
                "form",
                "golden-retriever",
                "google-drive",
                "google-drive-picker",
                "google-photos-picker",
                "image-editor",
                "url",
                "webdav",
                "informer",
                "locales",
                "nextjs",
                "onedrive",
                "progress-bar",
                "react",
                "reactrouter",
                "remote-sources",
                "screen-capture",
                "status-bar",
                "svelte",
                "sveltekit",
                "thumbnail-generator",
                "transloadit",
                "tus",
                "unsplash",
                "uppy",
                "vue",
                "webcam",
                "xhr-upload",
                "zoom"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page source.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No such page. The body links llms.txt (the documentation index), llms-full.txt (the full documentation), openapi.json and the sitemap so a client can recover.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "tags": [
          "indexes"
        ],
        "operationId": "getLlmsIndex",
        "summary": "Index of the documentation, in llmstxt.org format.",
        "responses": {
          "200": {
            "description": "An llmstxt.org index linking every page's Markdown twin.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": [
          "indexes"
        ],
        "operationId": "getLlmsFull",
        "summary": "The entire documentation as one Markdown file.",
        "responses": {
          "200": {
            "description": "Every documentation page, concatenated.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "tags": [
          "indexes"
        ],
        "operationId": "getOpenApi",
        "summary": "OpenAPI 3.1 description of this documentation content API.",
        "responses": {
          "200": {
            "description": "This OpenAPI document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": [
          "indexes"
        ],
        "operationId": "getSitemap",
        "summary": "Every URL on this site.",
        "responses": {
          "200": {
            "description": "A urlset sitemap.",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "tags": [
          "indexes"
        ],
        "operationId": "getRobots",
        "summary": "Crawler policy, pointing at the sitemap.",
        "responses": {
          "200": {
            "description": "A robots.txt naming the sitemap.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
