openapi: 3.2.0 info: description: Firefly Service's RESTful InDesign API offers resources to automate tedious, time-consuming design tasks through scalable cloud services, encouraging more personalization at scale, creative automation, and faster content delivery. version: '' title: Firefly Services - InDesign Document Info API termsOfService: https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf contact: email: idservices@adobe.com servers: - url: https://indesign.adobe.io security: - AccessToken: [] X-Api-Key: [] tags: - name: Document Info description: Retrieve information from INDD / IDML documents including layers, links and fonts. paths: /v3/document-info: post: summary: Get document information description: Retrieve comprehensive information about INDD/IDML documents. Returns data based on the enabled information types specified in the request. operationId: getDocumentInfo tags: - Document Info parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentInfoRequest' description: This job request object specifies parameters for extracting document information. required: true responses: '202': $ref: '#/components/responses/Accepted' '400': $ref: '#/components/responses/BadParams' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v3/status/{document-info_job_id}: get: operationId: getDocumentInfoJobStatus summary: Get status - Document Info API description: Returns the latest status of a Document Info job. Poll this endpoint to retrieve the extracted document information including pages, links, fonts, page items, and text stories. tags: - Document Info parameters: - name: document-info_job_id in: path description: The ID of the Document Info job you want to see the status of. This comes from the response of the Document Info request. required: true schema: type: string responses: '200': description: Status of a Document Info job execution. content: application/json: schema: type: object oneOf: - $ref: '#/components/schemas/notstartedEvent' - $ref: '#/components/schemas/runningEvent' - $ref: '#/components/schemas/succeededEvent' - $ref: '#/components/schemas/failedEvent' - $ref: '#/components/schemas/partialSuccessEvent' examples: succeeded: summary: Document Info Job Succeeded description: Example response when a Document Info job completes successfully with extracted document information. value: jobId: f54e0fcb-260b-47c8-b340-f5a3bcf6b623 status: succeeded data: numSpreads: 6 numPages: 10 hiddenSpreads: 2 pageInfo: items: - isParentSpread: false spreadId: 215 spreadIndex: 3 spreadName: '' isHiddenSpread: false pages: - pageId: 237 pageIndexInDocument: 5 pageIndexInSpread: 0 appliedParentSpread: 248 pageSide: left_hand pageName: '6' bounds: left: 0 right: 595.275590551 top: 0 bottom: 841.889763778 pageItemInfo: items: - type: TextFrame itemId: 255 itemName: '' locked: false visible: true layerName: Layer 1 bounds: left: 201 right: 570 top: 168 bottom: 475 parentType: Spread parentId: 207 pageId: 212 pageIndex: 0 spreadIndex: 0 spreadId: 207 liesOnParentPage: false liesOnPasteboard: false layers: - layerName: Layer 1 layerId: 204 visible: true locked: false layerIndex: 0 textStoryInfo: items: - storyId: 237 textOnPath: false textContainers: - startIndex: 0 endIndex: 529 textContainerId: 255 paragraphStyles: - paragraphIndex: 0 styleName: '[Basic Paragraph]' fontName: Krungthep Regular fontStyle: Regular fontSize: 12 startCharIndex: 0 endCharIndex: 239 characterStyles: - styleName: '[None]' fontName: Krungthep Regular fontStyle: Regular fontSize: 12 startCharIndex: 0 endCharIndex: 238 fontInfo: items: - fontFamily: Minion Pro fontStyleName: Regular postscriptName: MinionPro-Regular available: true fontType: OPENTYPE_CFF - fontFamily: Krungthep fontStyleName: Regular postscriptName: Krungthep available: false fontType: OPENTYPE_CFF linkInfo: items: - linkId: 406 status: link_missing uri: file:/Users/paraggupta/Downloads/image1.jpg linkType: JPEG linkName: image1.jpg pages: - pageId: 234 pageIndex: 2 spreadIndex: 1 spreadId: 213 liesOnParentPage: false liesOnPasteboard: false headers: retry-after: schema: type: integer description: The number of seconds until the user should try again. Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response. components: schemas: failedEvent: allOf: - $ref: '#/components/schemas/BaseEvent' - description: The job is in a failed state. type: object properties: status: type: string description: The current state of the job. enum: - failed errors: type: array description: A list of errors that caused the job to fail. items: type: object properties: error_code: type: string description: The error code for the failure. message: type: string description: The error message for the failure source: type: string description: The source file of the error, if applicable. url: type: string description: A URL related to an asset causing the failure(if any), if applicable. BaseJobRequest: description: The base job request for any job. required: - assets properties: assets: type: array items: $ref: '#/components/schemas/InputAsset' description: Information about the assets, which will be used to process the job. params: type: object properties: generalSettings: description: General settings. type: object properties: fonts: description: Settings related to fonts. It is recommended to include fonts to avoid missing fonts warnings when processing the job. type: object properties: fontsDirectories: description: This lists the font directories for the input InDesign documents. "Document Fonts" in parallel to the document will continue to work even without specifying them.

If none are specified, a temporary base directory (working directory) will be considered as a font directory. type: array items: type: string description: This provides a path to a directory relative to a temporary base directory (working directory) where the fonts can be found. It cannot go up using '..' or '/'. Should be a valid path. For specifying a working directory, mention '.'. links: description: Settings related to links. type: object properties: replaceLinks: type: array items: type: object required: - targetDocument - mapping properties: targetDocument: description: The document in which the relinking is to be done. Relinking of assets is required to ensure that there are no missing links in the output document. type: string mapping: type: array items: type: object required: - newAssetRelativePath properties: newAssetRelativePath: type: string description: This provides a path relative to a temporary base directory (working directory) where the asset to be linked to can be found. It cannot go up using '..' or '/'. Should be a valid file name. currentURI: type: string description: The existing URI of the link that needs relinking. If multiple links with this URI are found, all will be relinked. If `linkID` is provided, this attribute will be ignored. Either `currentURI` or `linkID` should be present. linkID: type: integer description: The ID of the link which is to be relinked. If `currentURI` is also provided, it will be ignored. Either `currentURI` or `linkID` should be present. appLogs: description: Describes parameters regarding application logs. type: object properties: logsRelativePath: type: string description: This provides a path to a file, relative to the temporary base directory (working directory). This file is where the application's logs are to be dumped. runningEvent: allOf: - $ref: '#/components/schemas/BaseEvent' - description: Job is in running state. type: object properties: status: type: string description: The current state of the job. enum: - running message: type: string description: A description of the current running state. DocumentInfoRequest: allOf: - $ref: '#/components/schemas/BaseJobRequest' - description: Inputs for the document information request. type: object required: - params properties: params: type: object required: - targetDocument properties: targetDocument: description: The document to be used for data extraction. type: string pageInfo: description: Settings for extracting page information. type: object properties: enabled: type: boolean description: If true, return pages information. default: true linkInfo: description: Settings for extracting link information. type: object properties: enabled: type: boolean description: If true, return links information. default: false fontInfo: description: Settings for extracting font information. type: object properties: enabled: type: boolean description: If true, return fonts information. default: false pageItemInfo: description: Settings for extracting page item information. type: object properties: enabled: type: boolean description: If true, return page items details. default: false textStoryInfo: description: Settings for extracting text story information. type: object properties: enabled: type: boolean description: If true, return text stories information. default: false BaseEvent: type: object description: The job event response object. properties: jobId: description: The GUID for the job. type: string partialSuccessEvent: allOf: - $ref: '#/components/schemas/BaseEvent' - description: The job has succeeded with some non-critical errors. type: object properties: status: type: string description: The current state of the job. enum: - partial_success data: type: object description: The output response from the current state of the job. dataURL: type: string description: The data returned from the execution of the job. If the data size is between 250 KB and 20 MB, it will be provided as a pre-signed URL. If it is larger than 20 MB, the job will fail. outputs: type: object description: A list of URLs for all the successfully generated assets. errors: type: array description: A list of errors that occurred during a partially successful job. items: type: object properties: error_code: type: string description: The error code for the partial failure. message: type: string description: The error message for the partial failure source: type: string description: The source file of the partial failure error, if applicable. url: type: string description: A URL related to an asset causing the partial failure(if any), if applicable. succeededEvent: allOf: - $ref: '#/components/schemas/BaseEvent' - description: The job has succeeded. type: object properties: status: type: string description: The current state of the job. enum: - succeeded data: type: object description: The output response from the current state of the job. dataURL: type: string description: The data returned from the execution of the job. If the data size is between 250 KB and 20 MB, it will be provided as a pre-signed URL. If it is larger than 20 MB, the job will fail. outputs: type: object description: A list of URLs for all the generated assets. notstartedEvent: allOf: - $ref: '#/components/schemas/BaseEvent' - description: The status when a job is in queued state. type: object properties: status: type: string description: The current state of the job. enum: - not_started InputAsset: type: object description: The URL where the asset will be fetched. required: - source properties: source: type: object required: - url properties: url: type: string description: The pre-signed URL of the input asset. This is the URL of the asset that will be downloaded and acted upon during the job. destination: type: string description: This provides a path relative to a temporary base directory (working directory) where the resource would be downloaded. This would be used to identify the assets within the parameters. It cannot go up using '..' or '/'. Should be a valid file name. Error: type: object properties: message: type: string error_code: type: string required: - message - error_code responses: InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This header indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This header indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. TooManyRequests: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The format of the content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Retry-After: schema: type: integer description: The number of seconds until the user should try again. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This header indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. Accepted: description: The job has been accepted for processing. content: application/json: schema: properties: jobId: type: string description: The job ID. statusUrl: type: string description: The status URL. headers: link: schema: type: string description: The status URL for a retry. retry-after: schema: type: integer description: The number of seconds until the user should try again. Content-Type: schema: type: string description: The type of content that is returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. BadParams: description: Bad Parameter content: application/json: schema: $ref: '#/components/schemas/Error' headers: Content-Type: schema: type: string description: The type of content returned (e.g., `application/json`). Content-Length: schema: type: integer description: The length of the response content. Access-Control-Allow-Origin: schema: type: string description: The Cross Origin Resource Sharing (CORS) header. Access-Control-Allow-Methods: schema: type: string description: This header indicates what HTTP methods are allowed. Access-Control-Allow-Headers: schema: type: string description: This indicates which HTTP headers can be used during the actual request. Access-Control-Allow-Credentials: schema: type: string description: This header is used by servers to indicate that the client shall share HTTP responses. Access-Control-Max-Age: schema: type: integer description: This indicates how long the results of a preflight request can be cached. securitySchemes: AccessToken: type: http scheme: bearer description: The Adobe-generated access token, S2S format. X-Api-Key: type: apiKey name: x-api-key in: header description: The client ID for authentication.