Nutrient Web SDK is built so every capability is reachable through the public API, and not only through the bundled user interface (UI). The pages in this section are the reference for the programmatic surface (annotation namespaces, the type-agnostic clipboard, the notes panel, and color presets), so you can drive the viewer entirely from your own UI or run it without one at all.
Looking for the visual side of headless? Refer to building headless document UIs for the preset: 'minimal' canvas-only viewer pattern. Then come back here for the APIs that drive it.
Shared cross-type operations
These operations work across any annotation type, regardless of the namespace.
| Operation | Page | What it covers |
|---|---|---|
| Clipboard | Clipboard | Copy, cut, paste, and duplicate any annotation type from a custom UI. |
| Notes panel | Notes panel | Open and close the annotation notes panel programmatically. |
| Color presets | Color presets | Read color presets for any annotation namespace and render your own pickers. |
By annotation type
Headless guides for each annotation type the SDK supports.
| Type | Page | Use when |
|---|---|---|
| Ink | Ink | You want a status indicator for the active stroke or to configure the eraser at load time or runtime. |
| Text markup | Text markup | You want to create highlights, underlines, strikeouts, or squiggles from your UI. |
| Text | Text annotations | You want a custom text-formatting toolbar that drives the inline text editor. |
| Redaction | Redactions from selection | You want to create redactions from the user’s text selection without our UI. |
| Shapes | Shapes | You want to compose rectangles, ellipses, lines, polylines, or polygons from code. |
| Links | Links | You want to create link annotations that target any PDF action without our editor. |
| Stamps | Stamps | You want a custom stamp picker that uses our stamp templates and custom stamps. |
| Images | Images | You want to create image annotations from a file upload, URL, or attachment. |
| Notes | Notes | You want to create sticky note annotations from a custom UI. |
| Callouts | Callouts | You want to create text annotations with leader lines from a custom UI. |
Annotation types covered elsewhere
A few annotation types have dedicated guides outside this section because they fit a different mental model:
- Form fields — Refer to the forms guides. Form widgets are technically annotations, but they’re documented as form fields.
- Signatures — Refer to the signatures guides. Electronic and digital signatures have their own slots, APIs, and workflows.
- Media annotations — Refer to the media annotations reference. The headless surface is the same as for any other annotation type; refer to the API documentation for the type-specific properties.
How headless fits with the rest of the SDK
The APIs documented in this section work whether the bundled viewer UI is visible, replaced, or hidden entirely. Three complementary configurations decide how much of the bundled UI you want:
- Default viewer — Call the namespaces here alongside the default UI. Use this when you want both the SDK’s UI and the programmatic surface available to your application code.
ui: { preset: 'minimal' }— Keep the rendering canvas, hide every default chrome surface, and bring back individual components via slot overrides. The building headless document UIs guide walks through this pattern. Pair it with the APIs on these pages to build a product-style experience like an embedded viewer or a signing flow.headless: true— Load the SDK without mounting any UI at all. This is useful for server-side scripts and pipelines that operate on documents (import/export, annotation processing, conversion) without ever showing a viewer. The APIs in this section are the only surface you have in this mode.
All three modes use the same instance API. Pick the one that matches how much UI your host application needs.
The pages in this section apply whether you’re running in standalone mode or in server-backed mode with Document Engine.