> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://uploadcare.com/docs/llms.txt.

# Plugin API

> Extend the File Uploader with custom upload sources, activities, file transformations, and more.

The Plugin API lets you extend the File Uploader without forking or patching the library.
Plugins can add upload sources, custom UI activities, per-file actions, file transformation hooks, icons, translations, and config options as a self-contained unit.

## What plugins can do

| Capability                     | API method                                                                               |
| ------------------------------ | ---------------------------------------------------------------------------------------- |
| Add a source to the picker     | [`registerSource`](/docs/file-uploader/plugins/extension-points/#registersource)         |
| Add a custom activity panel    | [`registerActivity`](/docs/file-uploader/plugins/extension-points/#registeractivity)     |
| Add a per-file action button   | [`registerFileAction`](/docs/file-uploader/plugins/extension-points/#registerfileaction) |
| Transform files before upload  | [`registerFileHook`](/docs/file-uploader/plugins/extension-points/#registerfilehook)     |
| Register an SVG icon           | [`registerIcon`](/docs/file-uploader/plugins/assets/#registericon)                       |
| Add translation strings        | [`registerL10n`](/docs/file-uploader/plugins/assets/#registerl10n)                       |
| Declare a custom config option | [`registerConfig`](/docs/file-uploader/plugins/extension-points/#registerconfig)         |

## In this section

If you are starting from scratch, begin with [Plugin structure & registration](/docs/file-uploader/plugins/plugin-structure/), then move to [Extension points](/docs/file-uploader/plugins/extension-points/).

* [Plugin structure & registration](/docs/file-uploader/plugins/plugin-structure/): how to write a plugin, register it, and clean up after it
* [Extension points](/docs/file-uploader/plugins/extension-points/): `registerSource`, `registerActivity`, `registerFileAction`, `registerFileHook`, `registerConfig`
* [Icons & Translations](/docs/file-uploader/plugins/assets/): `registerIcon`, `registerL10n`
* [Runtime API](/docs/file-uploader/plugins/runtime-api/): `pluginApi.config`, `pluginApi.activity`, `pluginApi.files`
* [Activity UI](/docs/file-uploader/plugins/activity-ui/): CSS classes and elements for building activity UIs
* [Complete example](/docs/file-uploader/plugins/example/): full Unsplash source plugin walkthrough
* [Built-in plugins](/docs/file-uploader/plugins/built-in/): plugins that ship with the uploader