---
title: "PDF annotation data formats: XFDF vs. JSON"
canonical_url: "https://www.nutrient.io/guides/ios/annotations/introduction-to-annotations/data-formats/"
md_url: "https://www.nutrient.io/guides/ios/annotations/introduction-to-annotations/data-formats.md"
last_updated: "2026-05-23T00:08:18.099Z"
description: "Explore XFDF and Instant JSON formats for managing PDF annotations, their benefits, and how to choose the right one for your needs."
---

# Compare XFDF and Instant JSON for PDF annotations

In addition to reading and writing annotations embedded into a PDF, Nutrient iOS SDK enables you to use external files to manage annotations.![Separating annotations and form data from the underlying document](@/assets/guides/shared/annotations/separating-annotations-from-pdf-ios.png)

Nutrient iOS 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 build-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/ios/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/ios/json/convert-to-xfdf.md) for use in third-party applications._

If you have a very specific use case, it's also possible to use a custom data format. However we don't recommend it.

## XML Forms Data Format (XFDF)

Nutrient iOS 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 cannot 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/ios/json/convert-to-xfdf.md) to make it interoperable.

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

The Instant JSON format is used by [Nutrient Instant](https://www.nutrient.io/guides/ios/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/ios/json.md) guide.
---

> Part of [PDF annotation library for iOS](/guides/ios/annotations/introduction-to-annotations.md)

## Related pages

- [Supported PDF annotation types on iOS](/guides/ios/annotations/introduction-to-annotations/annotation-types.md)
- [What are PDF annotations?](/guides/ios/annotations/introduction-to-annotations/what-are-annotations.md)

