---
title: "XFDF vs. Instant JSON: Annotation formats | Nutrient Web SDK"
canonical_url: "https://www.nutrient.io/guides/web/annotations/introduction-to-annotations/data-formats/"
md_url: "https://www.nutrient.io/guides/web/annotations/introduction-to-annotations/data-formats.md"
last_updated: "2026-05-23T00:08:18.167Z"
description: "Compare Instant JSON and XFDF for annotation data exchange, and understand when to pair them with server-backed synchronization for collaborative workflows."
---

# Comparing XFDF and Instant JSON for annotations

In addition to reading and writing annotations embedded into a PDF, Nutrient Web SDK enables you to use external files to manage annotations.

To decide between formats and a deployment model, start with [how to choose Instant JSON vs. XFDF vs. server-backed sync](https://www.nutrient.io/guides/web/annotations/import-and-export/choose-persistence-strategy.md).![Separating annotations and form data from the underlying document](@/assets/guides/shared/annotations/separating-annotations-from-pdf-web.png)

Nutrient Web SDK supports reading and writing annotations in the following external data file formats:

- XML Forms Data Format (XFDF)

- Instant JSON

For most use cases, we recommend Instant JSON because, unlike XFDF, it can store deleted annotations. It also has built-in support for comparing (diffing) changes to annotations. This makes it ideal for synchronizing annotations to a server or across users, devices, or sessions. Instant JSON can be [converted to XFDF](https://www.nutrient.io/guides/web/json/convert-to-xfdf.md). XFDF is best suited for importing data into the system or exporting it for integration with third-party PDF applications.

## Comparing data formats

| Criteria                                     | XFDF    | Instant JSON |
| -------------------------------------------- | ------- | ------------ |
| Compatible with third-party PDF applications | ✓       | \*           |
| ISO-standard format                          | ✓       |              |
| Built-in support for comparing changes       |         | ✓            |
| Can store deleted annotations                |         | ✓            |
| Syntax                                       | Verbose | Minimal      |
| File size                                    | Larger  | Compact      |
| Fully documented                             | ✓       | ✓            |

_\* Can be [converted to XFDF](https://www.nutrient.io/guides/web/json/convert-to-xfdf.md) for use in third-party applications._

## XML Forms Data Format (XFDF)

Nutrient Web SDK has full support for reading and writing XFDF.

XFDF is an XML-based standard from Adobe [XFDF (ISO 19444-1:2016)](https://www.iso.org/obp/ui/#iso:std:iso:19444:-1:ed-1:v1:en) for encoding annotations and form field values. It’s compatible with Adobe Acrobat and many other third-party PDF applications.

XFDF is a representation of all annotation and form data inside a PDF document at a point in time. It doesn’t have a concept of differentials (diffs) for managing changes made by multiple users annotating the same PDF simultaneously, and it can’t store deleted annotations. This makes XFDF a challenging format to use for comparing changes, managing conflicts, and synchronizing annotations across users, devices, or sessions.

## Instant JSON

Instant JSON is a format we created for bringing annotations and bookmarks into a modern format while keeping all important properties to make the Instant JSON spec work with PDF. It’s not directly supported by other frameworks; however, it can be [converted to XFDF](https://www.nutrient.io/guides/web/json/convert-to-xfdf.md) to make it interoperable.

Instant JSON is [fully documented](https://www.nutrient.io/guides/web/json.md) and supports persistent storage. It’s designed for synchronizing annotations to a server or across users, devices, or sessions.

The Instant JSON format is used by [Nutrient Instant](https://www.nutrient.io/guides/web/instant-synchronization.md), our solution for automatically synchronizing annotations from multiple concurrent users. Nutrient Instant is a licensable component that’s included as part of [Document Engine](https://www.nutrient.io/guides/document-engine.md), our solution for synchronizing documents and annotations and managing authentication.

Instant JSON can be used without licensing Nutrient Instant or Document Engine.

For more information, refer to the [Instant JSON](https://www.nutrient.io/guides/web/json.md) guide.
---

## Related pages

- [Supported annotation types](/guides/web/annotations/introduction-to-annotations.md)
- [Geometry primitives](/guides/web/annotations/geometry.md)
- [Display embedded audio and video files in PDFs using JavaScript](/guides/web/annotations/introduction-to-annotations/media-annotations.md)
- [What are PDF annotations?](/guides/web/annotations/introduction-to-annotations/what-are-annotations.md)
- [Working with annotations](/guides/web/annotations/introduction-to-annotations/working-with-annotations.md)

