htmldrop API

htmldrop API as documented publicly: 20 operations. Contract generated from the documentation by API Evangelist (2026-11-11); not the provider's own document.

GitHub OpenAPI

Operations 20

GET /api/v1/drops GET /api/v1/drops #
POST /api/v1/drops-md POST /api/v1/drops-md #
GET /api/v1/me GET /api/v1/me #
GET /api/v1/sites GET /api/v1/sites #
POST /api/v1/sites POST /api/v1/sites #
GET /api/v1/sites/export GET /api/v1/sites/export #
DELETE /api/v1/sites/st_ DELETE /api/v1/sites/st_ #
GET /api/v1/sites/st_ GET /api/v1/sites/st_ #
POST /api/v1/sites/st_.../upload POST /api/v1/sites/st_.../upload #
POST /api/v1/sites/st_.../upload-bundle POST /api/v1/sites/st_.../upload-bundle #
PATCH /api/v1/sites/{id} PATCH /api/v1/sites/{id} #
GET /api/v1/sites/{id}/versions GET /api/v1/sites/{id}/versions #
GET /api/v1/usage GET /api/v1/usage #
GET /sites List and read #
POST /sites Create a site #
DELETE /sites/{id} Delete #
GET /sites/{id} List and read #
PATCH /sites/{id} Update settings #
POST /sites/{id}/upload Upload a single file #
POST /sites/{id}/upload-bundle Upload a folder or .zip #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/htmldrop-app:htmldrop-app-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

htmldrop-app-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: htmldrop API
  version: '2026-11-11'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-11: 20 operation(s) read from 14 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; htmldrop has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 15
    documentation: 5
    pages-with-code: 13
    pages-read: 14
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-11'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.htmldrop.app/api/sites.md
  - https://docs.htmldrop.app/api/versions.md
  - https://docs.htmldrop.app/api/authentication.md
  - https://docs.htmldrop.app/api/anonymous-drops.md
  - https://docs.htmldrop.app/quickstart.md
  - https://docs.htmldrop.app/quickstart
  - https://docs.htmldrop.app/publishing/markdown
  - https://docs.htmldrop.app/publishing/folders-and-zip
  - https://docs.htmldrop.app/publishing/updating-and-rollback
  - https://docs.htmldrop.app/api/authentication
  - https://docs.htmldrop.app/api/anonymous-drops
  - https://docs.htmldrop.app/api/sites
  - https://docs.htmldrop.app/api/versions
  - https://docs.htmldrop.app/account/billing
servers:
- url: https://htmldrop.app
paths:
  /api/v1/drops:
    get:
      operationId: get_api_v1_drops
      tags:
      - Api
      summary: GET /api/v1/drops
      x-source: https://docs.htmldrop.app/api/anonymous-drops.md
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1DropsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -F "file=@page.html" https://htmldrop.app/api/v1/drops

          ```'
  /api/v1/drops-md:
    post:
      operationId: post_api_v1_drops_md
      tags:
      - Api
      summary: POST /api/v1/drops-md
      x-source: https://docs.htmldrop.app/api/anonymous-drops.md
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1DropsMdRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://htmldrop.app/api/v1/drops-md  -H "Content-Type: application/json"  -d ''{"title":"Release notes","markdown":"#
          1.2\n\nShipped."}''

          ```'
  /api/v1/me:
    get:
      operationId: get_api_v1_me
      tags:
      - Api
      summary: GET /api/v1/me
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/me  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"

          ```'
  /api/v1/sites:
    get:
      operationId: get_api_v1_sites
      tags:
      - Api
      summary: GET /api/v1/sites
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/sites  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"'
    post:
      operationId: post_api_v1_sites
      tags:
      - Api
      summary: POST /api/v1/sites
      x-source: https://docs.htmldrop.app/api/sites.md
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1SitesRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1SitesResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://htmldrop.app/api/v1/sites  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"  -H "Content-Type: application/json"  -d
          ''{"slug": "my-project", "name": "My Project"}''

          ```'
  /api/v1/sites/export:
    get:
      operationId: get_api_v1_sites_export
      tags:
      - Api
      summary: GET /api/v1/sites/export
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/sites/export -H "Authorization: Bearer $HTMLDROP_API_TOKEN" -o export.zip

          ```'
  /api/v1/sites/st_:
    delete:
      operationId: delete_api_v1_sites_st
      tags:
      - Api
      summary: DELETE /api/v1/sites/st_
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X DELETE https://htmldrop.app/api/v1/sites/st_...  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"

          ```'
    get:
      operationId: get_api_v1_sites_st
      tags:
      - Api
      summary: GET /api/v1/sites/st_
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/sites/st_...  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"

          ```'
  /api/v1/sites/st_.../upload:
    post:
      operationId: post_api_v1_sites_st_upload
      tags:
      - Api
      summary: POST /api/v1/sites/st_.../upload
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1SitesStUploadResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://htmldrop.app/api/v1/sites/st_.../upload  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"  -F "file=@./index.html"

          ```'
  /api/v1/sites/st_.../upload-bundle:
    post:
      operationId: post_api_v1_sites_st_upload_bundle
      tags:
      - Api
      summary: POST /api/v1/sites/st_.../upload-bundle
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://htmldrop.app/api/v1/sites/st_.../upload-bundle  >   -H "Authorization: Bearer $HTMLDROP_API_TOKEN"  >   -F
          "files=@./dist/index.html"       -F "paths=index.html"  >   -F "files=@./dist/assets/app.css"   -F "paths=assets/app.css"  >   -F "files=@./dist/assets/app.js"    -F
          "paths=assets/app.js"

          > ```'
  /api/v1/sites/{id}:
    patch:
      operationId: patch_api_v1_sites_id
      tags:
      - Api
      summary: PATCH /api/v1/sites/{id}
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchApiV1SitesIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X PATCH https://htmldrop.app/api/v1/sites/{id}  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"  -H "Content-Type: application/json"  -d
          ''{"spa_fallback": true}''

          ```'
  /api/v1/sites/{id}/versions:
    get:
      operationId: get_api_v1_sites_id_versions
      tags:
      - Api
      summary: GET /api/v1/sites/{id}/versions
      x-source: https://docs.htmldrop.app/api/versions.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/sites/{id}/versions  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"

          ```'
  /api/v1/usage:
    get:
      operationId: get_api_v1_usage
      tags:
      - Api
      summary: GET /api/v1/usage
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://htmldrop.app/api/v1/usage  -H "Authorization: Bearer $HTMLDROP_API_TOKEN"'
  /sites:
    get:
      operationId: get_sites
      tags:
      - Sites
      summary: List and read
      x-source: https://docs.htmldrop.app/api/sites.md
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSitesResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_sites
      tags:
      - Sites
      summary: Create a site
      x-source: https://docs.htmldrop.app/api/sites.md
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSitesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSitesResponse'
      x-evidence:
        kind: documentation
  /sites/{id}:
    delete:
      operationId: delete_sites_id
      tags:
      - Sites
      summary: Delete
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    get:
      operationId: get_sites_id
      tags:
      - Sites
      summary: List and read
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSitesIdResponse'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_sites_id
      tags:
      - Sites
      summary: Update settings
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSitesIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /sites/{id}/upload:
    post:
      operationId: post_sites_id_upload
      tags:
      - Sites
      summary: Upload a single file
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSitesIdUploadRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSitesIdUploadResponse'
      x-evidence:
        kind: documentation
  /sites/{id}/upload-bundle:
    post:
      operationId: post_sites_id_upload_bundle
      tags:
      - Sites
      summary: Upload a folder or .zip
      x-source: https://docs.htmldrop.app/api/sites.md
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSitesIdUploadBundleRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSitesIdUploadBundleResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetApiV1DropsResponse:
      type: object
      properties:
        url:
          type: string
        id:
          type: string
        slug:
          type: string
    PostApiV1DropsMdRequest:
      type: object
      properties:
        title:
          type: string
        markdown:
          type: string
    PostApiV1SitesRequest:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
    PostApiV1SitesResponse:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        name:
          type: string
        access_mode:
          type: string
        has_password:
          type: boolean
        branding_enabled:
          type: boolean
    PostApiV1SitesStUploadResponse:
      type: object
      properties:
        version_id:
          type: string
        version_number:
          type: integer
        byte_size:
          type: integer
        file_count:
          type: integer
    PatchApiV1SitesIdRequest:
      type: object
      properties:
        spa_fallback:
          type: boolean
    GetSitesResponse:
      type: object
      properties:
        '[]':
          type: array
          description: array of site objects in the same shape as POST /sites response
    PostSitesRequest:
      type: object
      properties:
        slug:
          type: string
          description: optional slug for the site
        name:
          type: string
          description: optional display name for the site
    PostSitesResponse:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        name:
          type: string
        access_mode:
          type: string
        has_password:
          type: boolean
        branding_enabled:
          type: boolean
    GetSitesIdResponse:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        name:
          type: string
        access_mode:
          type: string
        has_password:
          type: boolean
        branding_enabled:
          type: boolean
    PatchSitesIdRequest:
      type: object
      properties:
        spa_fallback:
          type: boolean
          description: enable SPA fallback
        name:
          type: string
          description: site name
        slug:
          type: string
          description: site slug
        password:
          type: string
          description: site password
        analytics:
          type: object
          description: analytics configuration
    PostSitesIdUploadRequest:
      type: object
      properties:
        file:
          type: string
          description: file to upload (.html, .htm or .md)
      required:
      - file
    PostSitesIdUploadResponse:
      type: object
      properties:
        version_id:
          type: string
        version_number:
          type: integer
        byte_size:
          type: integer
        file_count:
          type: integer
    PostSitesIdUploadBundleRequest:
      type: object
      properties:
        files:
          type: string
          description: repeated file fields when sending individual files
        paths:
          type: string
          description: parallel paths for each file in `files`
        file:
          type: string
          description: single .zip file containing the folder
    PostSitesIdUploadBundleResponse:
      type: object
      properties:
        version_id:
          type: string
        version_number:
          type: integer
        byte_size:
          type: integer
        file_count:
          type: integer
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Sites