Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
fc573b5
documentation for V4
SumitCo Aug 10, 2026
dab080b
more changes for V4
SumitCo Aug 10, 2026
fa03c3a
fixing linting error
SumitCo Aug 10, 2026
11d1433
chore: auto-generate contributors
github-actions[bot] Aug 10, 2026
fc4f291
minor fixes
SumitCo Aug 10, 2026
1f608e0
Merge branch 'V4Change' of https://github.com/AdobeDocs/ffs-indesign-…
SumitCo Aug 10, 2026
1ef35d3
Changes fo V4
SumitCo Aug 11, 2026
5dab7d7
More changes for V4
SumitCo Aug 11, 2026
ec2607c
Update screenshot for v3
Aug 11, 2026
84b2640
copyfitting changes
SumitCo Aug 11, 2026
55de329
Merge branch 'V4Change' of https://github.com/AdobeDocs/ffs-indesign-…
SumitCo Aug 11, 2026
30daf45
chore: auto-generate contributors
github-actions[bot] Aug 11, 2026
0df464c
More V4 changes
SumitCo Aug 11, 2026
4315a4a
Merge branch 'V4Change' of https://github.com/AdobeDocs/ffs-indesign-…
SumitCo Aug 11, 2026
83e1bb0
Bringing V4 change back
SumitCo Aug 12, 2026
c9f19bf
Changes as per styleguide
SumitCo Aug 14, 2026
0f40675
chore: auto-generate contributors
github-actions[bot] Aug 14, 2026
2ee4735
Merge pull request #69 from AdobeDocs/users-rhythmj-exporting_spread
rhythmjain18-adobe Aug 17, 2026
fc207dd
docs: document output file naming convention for multi-file exports
rhythmjain18-adobe Aug 27, 2026
96814be
chore: auto-generate contributors
github-actions[bot] Sep 1, 2026
8331cac
Adding Review (#71)
swaroop2512 Sep 15, 2026
dfb5faa
chore: auto-generate contributors
github-actions[bot] Sep 28, 2026
91c879c
documentation update
shreyaguptaforwork Sep 28, 2026
4d03b8e
update
shreyaguptaforwork Sep 28, 2026
eff55c4
update
shreyaguptaforwork Sep 28, 2026
b9e4534
resolved comments
shreyaguptaforwork Sep 28, 2026
3f50292
name change
shreyaguptaforwork Sep 29, 2026
8b8af55
update name
shreyaguptaforwork Sep 29, 2026
f4bfe84
Update indesignapi.json
shreyaguptaforwork Sep 29, 2026
a6aca84
resolved comments
shreyaguptaforwork Sep 30, 2026
7241a47
update endpoint name
shreyaguptaforwork Oct 1, 2026
f59f72c
documentation for V4
SumitCo Aug 10, 2026
479360c
more changes for V4
SumitCo Aug 10, 2026
b8d38d7
fixing linting error
SumitCo Aug 10, 2026
689c30c
minor fixes
SumitCo Aug 10, 2026
78a4f90
chore: auto-generate contributors
github-actions[bot] Aug 10, 2026
7157f83
Changes fo V4
SumitCo Aug 11, 2026
c0e942c
More changes for V4
SumitCo Aug 11, 2026
bcca32e
copyfitting changes
SumitCo Aug 11, 2026
b8e445c
Update screenshot for v3
Aug 11, 2026
6e1c678
More V4 changes
SumitCo Aug 11, 2026
7b30f6f
chore: auto-generate contributors
github-actions[bot] Aug 11, 2026
a377fb9
Bringing V4 change back
SumitCo Aug 12, 2026
9a9cdd5
Changes as per styleguide
SumitCo Aug 14, 2026
68415c0
chore: auto-generate contributors
github-actions[bot] Aug 14, 2026
0b87205
docs: document output file naming convention for multi-file exports
rhythmjain18-adobe Aug 27, 2026
0e779dd
chore: auto-generate contributors
github-actions[bot] Sep 1, 2026
4f6c399
Adding Review (#71)
swaroop2512 Sep 15, 2026
0c1ae7d
chore: auto-generate contributors
github-actions[bot] Sep 28, 2026
f3803c4
Merge branch 'V4Change' of https://github.com/AdobeDocs/ffs-indesign-…
SumitCo Nov 1, 2026
560a6e9
feedback changes
SumitCo Nov 1, 2026
f91aa2b
Adobe fonts documentation
SumitCo Nov 1, 2026
35da6b0
chore: auto-generate contributors
github-actions[bot] Nov 1, 2026
8d84f9a
Merge branch 'V4Change' into convert-to-idml-prod
shreyaguptaforwork Nov 2, 2026
9aa5b7e
update
shreyaguptaforwork Nov 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/pages/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ keywords:
- Remap Links API
- Document Info API
- Convert PDF to InDesign API
- Convert InDesign to IDML API
- REST API
- cloud services
- enterprise solutions
Expand Down
3 changes: 3 additions & 0 deletions src/pages/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
- Guides header
- [Working with Custom Scripts API](/guides/working-with-custom-scripts-api/index.md)
- [Working with Data Merge API](/guides/working-with-datamerge-api/index.md)
- [Working with Advanced Data Merge API](/guides/working-with-advanced-data-merge-api/index.md)
- [Working with Rendition API](/guides/working-with-rendition-api/index.md)
- [Working with the Convert InDesign to IDML API](/guides/working-with-convert-indesign-to-idml-api/index.md)
- [Writing Scripts for Custom Scripts API](/guides/writing-scripts-for-custom-scripts-api/index.md)
- [Tips for PDF to InDesign Conversion](/guides/pdf-to-indesign-conversion-notes/index.md)
- [Using Adobe Fonts](/guides/using-adobe-fonts/index.md)
41 changes: 30 additions & 11 deletions src/pages/contributors.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"total": 13,
"total": 15,
"offset": 0,
"limit": 13,
"limit": 15,
"data": [
{
"page": "/",
Expand All @@ -26,10 +26,11 @@
{
"page": "/config",
"avatars": [
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/195011431?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4"
],
"lastUpdated": "5/4/2026"
"lastUpdated": "11/1/2026"
},
{
"page": "/getting-started/",
Expand All @@ -41,20 +42,21 @@
{
"page": "/getting-started/changelog/",
"avatars": [
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/274493592?v=4",
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/264675027?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4"
],
"lastUpdated": "6/17/2026"
"lastUpdated": "9/15/2026"
},
{
"page": "/getting-started/concepts/",
"avatars": [
"https://avatars.githubusercontent.com/u/175690214?v=4",
"https://avatars.githubusercontent.com/u/264675027?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4"
],
"lastUpdated": "3/20/2026"
"lastUpdated": "8/27/2026"
},
{
"page": "/getting-started/usage/",
Expand All @@ -68,12 +70,12 @@
{
"page": "/guides/",
"avatars": [
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/195011431?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4",
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/51445330?v=4"
],
"lastUpdated": "3/26/2026"
"lastUpdated": "11/1/2026"
},
{
"page": "/guides/pdf-to-indesign-conversion-notes/",
Expand All @@ -83,6 +85,21 @@
],
"lastUpdated": "3/26/2026"
},
{
"page": "/guides/using-adobe-fonts/",
"avatars": [
"https://avatars.githubusercontent.com/u/66052604?v=4"
],
"lastUpdated": "11/1/2026"
},
{
"page": "/guides/working-with-advanced-data-merge-api/",
"avatars": [
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/274493592?v=4"
],
"lastUpdated": "11/1/2026"
},
{
"page": "/guides/working-with-custom-scripts-api/",
"avatars": [
Expand All @@ -97,20 +114,22 @@
{
"page": "/guides/working-with-datamerge-api/",
"avatars": [
"https://avatars.githubusercontent.com/u/175690214?v=4",
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/274493592?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4",
"https://avatars.githubusercontent.com/u/66052604?v=4",
"https://avatars.githubusercontent.com/u/195011431?v=4"
],
"lastUpdated": "5/5/2026"
"lastUpdated": "8/27/2026"
},
{
"page": "/guides/working-with-rendition-api/",
"avatars": [
"https://avatars.githubusercontent.com/u/175690214?v=4",
"https://avatars.githubusercontent.com/u/41382203?v=4",
"https://avatars.githubusercontent.com/u/195011431?v=4"
],
"lastUpdated": "2/25/2026"
"lastUpdated": "8/27/2026"
},
{
"page": "/guides/writing-scripts-for-custom-scripts-api/",
Expand Down
26 changes: 26 additions & 0 deletions src/pages/getting-started/changelog/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ keywords:
- Custom Scripts API
- Remap Links API
- Convert PDF to InDesign API
- Convert InDesign to IDML API
- PDF to InDesign
- REST API
- cloud services
Expand Down Expand Up @@ -41,6 +42,23 @@ twitter:

This page contains the release notes and version history for Adobe InDesign APIs. Stay updated with the latest features, improvements, and bug fixes.

## November 2, 2026

### New Features

*Convert InDesign to IDML API*

- **Convert an InDesign document to IDML:** New `POST /v3/convert-indesign-to-idml` endpoint converts an INDD file to IDML. [View endpoint documentation][22]. See [Working with the Convert InDesign to IDML API][23] for a quickstart.

*Advanced Data Merge*

- **Output Path Structure**: The `POST /v4/merge-data` endpoint no longer nests outputs into `rangeN` batch subfolders. Every output file is written directly into the resolved output folder, and naming collisions between batches or records are resolved with a `(n)` suffix on the filename instead. [Learn more about output path variations.][20]
- **Parameter Name Change**: The `pagesPerDocument` parameter from the base Data Merge API has been renamed to `recordsPerFile` in the `POST /v4/merge-data` endpoint. The underlying behavior is unchanged. [Learn more about the parameter name change.][21]
- **Conditional Visibility & Dynamic Styling**: The `POST /v4/merge-data` endpoint now accepts a `rulesFile` parameter, letting a rules JSON file show/hide layers, frames, and placeholders, restyle and recolor content, replace text, and resize or move frames — differently per record. [Learn more about conditional visibility & dynamic styling.][16]
- **Copyfitting**: New `copyfittingSettings` object in `params` automatically reduces font size within defined limits to resolve overset text after a merge. [Learn more about copyfitting.][17]
- **Folder Structure & Zipped Output**: The `POST /v4/merge-data` endpoint supports organizing merge outputs into a folder hierarchy via a `~`-prefixed CSV column, plus optional zipped output using `outputCompressMediaType`. [Learn more about folder structure and zipped output.][18]
- **Pre-signed URL Support in CSV**: A new `preSignedURL` parameter allows image placeholder columns (prefixed with `@`) to contain pre-signed URLs directly in the CSV, fetched during the merge. [Learn more about pre-signed URL support.][19]

## June 2, 2026

### Enhancements
Expand Down Expand Up @@ -145,3 +163,11 @@ This page contains the release notes and version history for Adobe InDesign APIs
[13]: ../concepts/index.md#api-capability-naming-rules
[14]: ../../guides/working-with-datamerge-api/index.md#variable-file-naming-support-in-data-merge-api
[15]: ../usage/index.md#file-size-limits
[16]: ../../guides/working-with-advanced-data-merge-api/index.md#conditional-visibility--dynamic-styling
[17]: ../../guides/working-with-advanced-data-merge-api/index.md#copyfitting
[18]: ../../guides/working-with-advanced-data-merge-api/index.md#folder-structure-and-zipped-output
[19]: ../../guides/working-with-advanced-data-merge-api/index.md#pre-signed-url-support
[20]: ../../guides/working-with-advanced-data-merge-api/index.md#output-path-variations-in-advanced-data-merge-api
[21]: ../../guides/working-with-advanced-data-merge-api/index.md#parameter-name-change-in-advanced-data-merge-api
[22]: ../../api/index.md#tag/Convert-InDesign-to-IDML
[23]: ../../guides/working-with-convert-indesign-to-idml-api/index.md
21 changes: 21 additions & 0 deletions src/pages/getting-started/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,25 @@ platform can upload. You can provide this information in the `outputs` array wit

Each storage provider may have its own requirements for creating PUT or POST pre-signed URLs. Please follow the documentation from the individual storage provider creating these URLs.

## Output file naming convention

When a request produces more than one output file from a single base name (for example, one file per page in the [Rendition API][10], or one file per record in the [Data Merge API][11]), the file names follow InDesign's own native sequential-export naming convention — not an underscore- or hyphen-delimited scheme:

- The first file uses the base name as-is: `{outputFileBaseString}.{ext}`
- Each subsequent file appends its index directly after the base name, with no separator: `{outputFileBaseString}{index}.{ext}`
- `{ext}` is derived from the requested `outputMediaType` (for example, `image/png` → `.png`, `image/jpeg` → `.jpg`).

For example, with `outputFileBaseString` set to `banner`:

- `banner.png`
- `banner2.png`
- `banner3.png`
- ...

**Caution:** Because there is no separator, a base string that ends in a digit makes the generated file names ambiguous to parse back into base + index without already knowing the base string. For example, base string `hero9` at index 10 produces `hero910.png`, which is indistinguishable from base string `hero91` at index 0. Avoid base strings that end in a digit if your integration needs to derive the page or record index from the file name, or track expected file names by position/index rather than by parsing the generated name.

If you register per-file destinations using the `outputs` array (see [Output assets](#output-assets)), predict each file's name using this convention when setting its `source` field — a mismatched `source` means that file silently fails to upload to your registered destination.

## About custom script bundles

To create a script to use with the Custom Scripts API, you'll need to prepare a script bundle, a ZIP file with a predefined structure.
Expand Down Expand Up @@ -436,3 +455,5 @@ Once validation is complete, update your production scripts to use the new app v
[7]: https://learn.microsoft.com/en-us/azure/ai-services/translator/document-translation/how-to-guides/create-sas-tokens?tabs=Containers
[8]: ../../guides/writing-scripts-for-custom-scripts-api/index.md
[9]: https://developer.adobe.com/events/docs/guides/using/indesign-apis/indesign-apis-events-data-stream-setup/
[10]: ../../guides/working-with-rendition-api/index.md
[11]: ../../guides/working-with-datamerge-api/index.md
5 changes: 5 additions & 0 deletions src/pages/guides/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ keywords:
- document processing
- Data Merge API
- Rendition API
- Convert InDesign to IDML API
- Custom Scripts API
- Remap Links API
- REST API
Expand All @@ -32,8 +33,12 @@ This guide covers advanced scripting techniques for automating InDesign tasks.
- [Working with Custom Scripts API](./working-with-custom-scripts-api/index.md) - Advanced scripting techniques
- [Writing Scripts for Custom Scripts API](./writing-scripts-for-custom-scripts-api/index.md) - Script development and logging
- [Working with Data Merge API](./working-with-datamerge-api/index.md) - Data merge automation
- [Working with Advanced Data Merge API](./working-with-advanced-data-merge-api/index.md) - Advanced data merge techniques, Conditional Visibility, Styling, Copyfitting and more
- [Working with Rendition API](./working-with-rendition-api/index.md) - Document rendering
- [Working with the Convert InDesign to IDML API](./working-with-convert-indesign-to-idml-api/index.md) - Convert an InDesign document to IDML
- [Tips for PDF to InDesign Conversion](./pdf-to-indesign-conversion-notes/index.md) - PDF To InDesign Points to note and limitations
- [Using Adobe Fonts(Free) with InDesign API](./using-adobe-fonts/index.md) - Enable Free Adobe Fonts


<HorizontalLine />

Expand Down
170 changes: 170 additions & 0 deletions src/pages/guides/using-adobe-fonts/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
---
title: Using Adobe Fonts with InDesign API
description: Use fonts from the Adobe Fonts Free library with InDesign API without uploading or hosting font files.
keywords:
- Adobe InDesign API
- Adobe Fonts
- fonts
- missing fonts
- missingFontStrategy
- Admin Console
- product profile
- custom fonts
hideBreadcrumbNav: true
---

# Using Adobe Fonts with InDesign API

InDesign API supports rendering documents that use fonts from the Adobe Fonts Free library. Fonts used in your InDesign documents are resolved automatically through your Adobe entitlement, so you do not need to upload or host those font files yourself.

<InlineAlert variant="info" slots="text" />

**Note:** This feature supports only fonts in the [Adobe Fonts Free library](https://fonts.adobe.com/fonts?library=basic). To use any other font, provide the font file as an asset using a pre-signed URL.

## Prerequisites

- A valid Firefly Services API key and access token. See [Authentication](../../getting-started/index.md).
- An Adobe entitlement that includes Adobe Fonts access.
- A font from the [Adobe Fonts Free library](https://fonts.adobe.com/fonts?library=basic).
- A Fonts product profile configured in the Adobe Admin Console and added to your credential in the Adobe Developer Console.


## Admin Console setup

Before you can use fonts from the Free library of Adobe Fonts in API calls, your organization must have a Fonts service enabled on a product profile in the Adobe Admin Console, and that profile must be associated with your API credential.

### Step 1: Create a product profile with Fonts enabled

1. Sign in to the [Adobe Admin Console](https://adminconsole.adobe.com/).
2. Go to **Products** and select **Firefly Creative Production for Enterprise**.
3. Click **New profile** and follow the setup steps.
4. On the **Enable services** step, ensure the **Fonts** toggle is turned on.
5. Click **Save**.

For detailed instructions on creating product profiles, see [Create product profiles](https://helpx.adobe.com/business/enterprise/products-entitlements/manage-product-profiles/create-product-profiles.html).

### Step 2: Add the product profile to your project in Developer Console

1. Sign in to the [Adobe Developer Console](https://developer.adobe.com/console).
2. Open your project. You will land on the project overview page showing your products and credentials.
3. Under **Products & services**, click the **InDesign API - Firefly Services** title to open the API detail page.
4. On the API detail page, click **Edit product profiles**.
5. Add the Fonts-enabled profile you created in Step 1 and save.

Once the profile is linked to your project, API calls made with that credential will have access to the fonts in the Adobe Fonts Free library.

## How it works

When InDesign API opens a document, it looks for every font used in the document. Fonts that are not supplied as assets (for example, in a `Document Fonts` folder or a configured font directory) are resolved through Adobe Fonts at processing time. No font file URL is required.

Only fonts from the [Adobe Fonts Free library](https://fonts.adobe.com/fonts?library=basic) can be resolved. If a font cannot be resolved because it is not in the Adobe Fonts Free library, or because it is not provided as input asset, the job will either fail or fallback to a default font, depending on your `missingFontStrategy` setting.

## Request structure

No additional parameters are needed to use Adobe Fonts. Use the `generalSettings.fonts` object in `params` to control how missing fonts are handled.

```json
{
"assets": [
{
"source": {
"url": "<PRE-SIGNED URL FOR DOCUMENT>"
},
"destination": "Document.indd"
}
],
"params": {
"generalSettings": {
"fonts": {
"missingFontStrategy": "fail"
}
},
"targetDocuments": [
"Document.indd"
],
"outputMediaType": "application/pdf"
}
}
```

## fonts reference

| Property | Type | Description |
| --- | --- | --- |
| `missingFontStrategy` | string | Strategy to use when a font cannot be found. One of `fallback` or `fail`. Defaults to `fallback`. |


## Submitting a request

Submit the job:

```curl
curl -X POST "https://indesign.adobe.io/v3/create-rendition" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assets": [
{
"source": {
"url": "<PRE-SIGNED URL FOR DOCUMENT>"
},
"destination": "Document.indd"
}
],
"params": {
"targetDocuments": [
"Document.indd"
],
"outputMediaType": "application/pdf",
"generalSettings": {
"fonts": {
"missingFontStrategy": "fail"
}
}
}
}'
```

A successful submission returns a `202` response with a `jobId` and `statusUrl`:

```json
{
"jobId": "9b9d00c5-8659-4766-8430-ed0a1c9bd87d",
"statusUrl": "https://indesign.adobe.io/v3/status/9b9d00c5-8659-4766-8430-ed0a1c9bd87d"
}
```


## Error handling

| Scenario | `missingFontStrategy` | Result |
| --- | --- | --- |
| Font is not in the Adobe Fonts Free library and not supplied as an asset | `fallback` | The job completes using a default font. The font is reported under `warnings.missingFonts` in the job status. |
| Font is not in the Adobe Fonts Free library and not supplied as an asset | `fail` | The job fails. |
| Fonts product profile is not added to your credential | `fallback` / `fail` | Adobe Fonts are not used to resolve any missing fonts. |

## Using custom fonts

If you need a font that is not in the Adobe Fonts Free library, including any Adobe Fonts that are in the Paid library, supply it as an asset. The font file must be accessible via a [pre-signed URL](../../getting-started/concepts/index.md#Pre-signed-URLs). Place it in a `Document Fonts` folder parallel to the document so it is found by default.

```json
{
"assets": [
{
"source": {
"url": "<PRE-SIGNED URL FOR DOCUMENT>"
},
"destination": "Document.indd"
},
{
"source": {
"url": "<PRE-SIGNED URL FOR FONT FILE>"
},
"destination": "Document Fonts/CustomFont-Regular.otf"
}
]
}
```

For more details, see [Using custom fonts](../../getting-started/concepts/index.md#using-custom-fonts).
Loading
Loading