Image Uploader to API

by babarot
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Upload images to any API endpoint on drag & drop or paste, and insert the public URL as Markdown.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
2
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

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 ![](https://raw.githubusercontent.com/babarot/obsidian-image-uploader-to-api/HEAD/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

Setting Description
API Endpoint The URL to POST the image to
File Field Name The multipart/form-data field name for the file (e.g. file, image)
Image URL Path Dot-notation path to extract the URL from the JSON response (e.g. url, data.link)
PDF handling Choose how PDFs are handled: save locally (default), always upload, or ask each time
HTTP Headers Key-value pairs sent with the request (e.g. X-API-Key, Authorization)

Examples

Custom Upload API

Setting Value
API Endpoint https://example.com/api/upload
File Field Name file
Image URL Path url
Headers X-API-Key = your-api-key

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

Imgur

Setting Value
API Endpoint https://api.imgur.com/3/image
File Field Name image
Image URL Path data.link
Headers Authorization = Client-ID your-client-id

Comparison with Image Uploader

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

Image Uploader to API Image Uploader
Drag & Drop Yes No (paste only)
Multiple images at once Yes (parallel upload) No (single file only)
Header configuration Key-value UI Raw JSON textarea
HTTP client Obsidian requestUrl (no CORS issues) axios
PDF upload support Yes (configurable) No
External dependencies None axios, 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

  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