Image Uploader to API

pending

by babarot

Upload images to any API endpoint on drag & drop or paste, and insert the public URL as Markdown.

Updated 1mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Image Uploader to API

An Obsidian plugin that uploads images to any API endpoint when you drag & drop or paste them, and inserts the public URL as Markdown.

Features

  • Drag & Drop — Drop images into the editor to upload automatically
  • Paste — Paste images from clipboard (Cmd/Ctrl+V) to upload
  • Any API — Works with any image hosting API (custom server, Imgur, Cloudflare Images, etc.)
  • Configurable Headers — Add any HTTP headers (API keys, auth tokens, etc.)
  • Configurable Response Parsing — Extract the image URL from any JSON response structure using dot-notation
  • Multiple Images — Upload multiple images at once in parallel
  • Upload Indicator — Shows ![Uploading...]() placeholder while uploading

Supported Formats

Images: .jpg, .jpeg, .png, .gif, .webp, .svg, .avif, .ico Documents: .pdf (opt-in via settings)

Images are inserted as ![](url). PDF handling is controlled by the PDF handling setting:

  • Save locally — Obsidian's default behavior (saved to vault attachment folder)
  • Always upload to API — Uploaded and inserted as [filename](url)
  • Ask each time — A dialog asks whether to upload or save locally

Unsupported file types are left to Obsidian's default behavior.

Settings

SettingDescription
API EndpointThe URL to POST the image to
File Field NameThe multipart/form-data field name for the file (e.g. file, image)
Image URL PathDot-notation path to extract the URL from the JSON response (e.g. url, data.link)
PDF handlingChoose how PDFs are handled: save locally (default), always upload, or ask each time
HTTP HeadersKey-value pairs sent with the request (e.g. X-API-Key, Authorization)

Examples

Custom Upload API

SettingValue
API Endpointhttps://example.com/api/upload
File Field Namefile
Image URL Pathurl
HeadersX-API-Key = your-api-key

Response: {"url": "https://example.com/files/image.png", "size": 204800}

Imgur

SettingValue
API Endpointhttps://api.imgur.com/3/image
File Field Nameimage
Image URL Pathdata.link
HeadersAuthorization = Client-ID your-client-id

Comparison with Image Uploader

This plugin is inspired by Image Uploader but addresses several limitations:

Image Uploader to APIImage Uploader
Drag & DropYesNo (paste only)
Multiple images at onceYes (parallel upload)No (single file only)
Header configurationKey-value UIRaw JSON textarea
HTTP clientObsidian requestUrl (no CORS issues)axios
PDF upload supportYes (configurable)No
External dependenciesNoneaxios, object-path, compressorjs

Network Usage

This plugin sends image files over the network to the API endpoint you configure in the settings. No data is sent to any service unless you explicitly set an endpoint. The plugin itself does not collect any telemetry or analytics.

Installation

From Community Plugins (Recommended)

  1. Open SettingsCommunity pluginsBrowse
  2. Search for "Image Uploader to API"
  3. Click Install, then Enable

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create a folder image-uploader-to-api in your vault's .obsidian/plugins/ directory
  3. Place the downloaded files into that folder
  4. Enable the plugin in SettingsCommunity plugins

Development

npm install
npm run dev    # watch mode
npm run build  # production build

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.