openapi: 3.1.0 info: description: REST API for Adobe Substance 3D - Firefly Services. title: Adobe Substance 3D API - Firefly Services version: 1.0.0 servers: - url: 'https://s3d.adobe.io' paths: /v1/composites/compose: post: operationId: v1/composites/compose summary: Generate 3D object composite description: Generate a 3D Object Composite with the Substance 3D API. parameters: - name: X-User-Token in: header description: 'A user token referencing the user''s individual account, obtained using their credentials.' schema: type: string - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1.ComposeSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.ComposeSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Composites x-s3d-public: true '/v1/jobs/{id}': {} /v1/scenes/assemble: post: operationId: v1/scenes/assemble summary: Create 3D scene description: Assemble a 3D scene with the Substance 3D API. parameters: - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1beta.CreateSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.CreateSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Scenes x-s3d-public: true /v1/scenes/convert: post: operationId: v1/scenes/convert summary: Convert 3D files description: Convert a 3D file into another 3D format with the Substance 3D API. parameters: - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1beta.ModelConvertRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.ModelConvertResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Scenes x-s3d-public: true /v1/scenes/describe: post: operationId: v1/scenes/describe summary: Describe 3D scene description: Describe a 3D scene. parameters: - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1beta.SceneDescRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.SceneDescResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Scenes x-s3d-public: true /v1/scenes/render: post: operationId: v1/scenes/render summary: Render 3D object description: Render a 3D object with the Substance 3D API. parameters: - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1beta.RenderSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.RenderSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Scenes x-s3d-public: true /v1/scenes/render-basic: post: operationId: v1/scenes/render-basic summary: Render 3D object (basic version) description: Render a 3D object (basic version) with the Substance 3D API. parameters: - name: wait in: query description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' schema: description: 'Blocking mode (acts like a synchronous API call). Wait for the result before returning. ⚠️ Some operations are long, please be sure to configure your client timeout settings accordingly.' type: boolean default: false explode: false requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/restv1beta.RenderModelRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/restv1beta.RenderModelResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Scenes x-s3d-public: true /v1/spaces: post: operationId: createSpace_v1 summary: Create Space description: Create a Space from 3D files. requestBody: required: true content: multipart/form-data: schema: type: object properties: filename: description: Filename of the file being uploaded. type: string format: binary contentMediaType: application/octet-stream name: description: General purpose name for multipart form value. type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/rest_base.Space' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: - Spaces x-s3d-public: true '/v1/spaces/{id}': {} /v1beta/3dmodels/convert: {} /v1beta/3dmodels/render: {} /v1beta/3dmodels/render-turntable: {} /v1beta/3dscenes/compose: {} /v1beta/3dscenes/create: {} /v1beta/3dscenes/get-description: {} /v1beta/3dscenes/render: {} '/v1beta/jobs/{id}': {} /v1beta/spaces: {} '/v1beta/spaces/{id}': {} '/v2/jobs/{id}': {} /v2/spaces: post: operationId: createSpace_v2 summary: Create Space API description: | ## Overview The **Substance 3D API** provides a way to upload and temporarily store files. Uploading files requires a **multipart/form-data** request to send data. The request requires a **files** field containing a list of files. Each file's **filename** field can contain a filepath to specify where the file will be stored in the space. Example for this files tree: ``` ├── textures │ ├── diffuse.png │ └── normal.png └── lighthouse.fbx ``` HTTP data relative to the previous files tree: ```HTTP POST /spaces HTTP/1.1 Host: localhost:8080 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="files"; filename="lighthouse.fbx" Content-Type: model/vnd.autodesk.fbx (data) ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="files"; filename="textures/diffuse.png" Content-Type: image/png (data) ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="files"; filename="textures/normal.png" Content-Type: image/png (data) ------WebKitFormBoundary7MA4YWxkTrZu0gW-- ``` Curl command to create this file tree: ``` curl -X POST https://s3d.adobe.io/v2/spaces \ -F "files=@Local/Path/To/The/Local/File/lighthouse.fbx;filename=lighthouse.fbx" \ -F "files=@Local/Path/To/The/Local/File/diffuse.png;filename=textures/diffuse.png" \ -F "files=@Local/Path/To/The/Local/File/normal.png;filename=textures/normal.png" ``` The result of the post is a **JSON** which contained the **id** of the space created. Space **id** can be used into a space source to use space content as a source for API operations. Example of a space source: ```json { "space": { "id": "" } } ``` requestBody: required: true content: multipart/form-data: schema: type: object properties: files: type: array items: contentMediaType: application/octet-stream format: binary type: string minItems: 1 required: - files responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/rest_base.Space' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_multipart: value: error_code: invalid_multipart message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: [] x-s3d-public: true '/v2/spaces/{id}': {} /v2/spacesFrameIO: post: operationId: createSpaceFromFrameIO_v2 summary: Create Space From Frame IO API description: |- ## Overview The **Substance 3D API** provides a way to upload and temporary store files. You can upload folders from **frame.io** to create a space. To upload a folder from frame.io, you must pass the following parameters: - **access Token** - **folder ID** The result of the post is a **JSON** which contained the **id** of the space created. Space **id** can be used into a space source to use space content as a source for API operations. Example of a space source: ```json { "space": { "id": "" } } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/rest_base.FileFrameIO' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/rest_base.Space' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: [] x-s3d-public: true /v2/spacesNextFrameIO: post: operationId: createSpaceFromNextFrameIO_v2 summary: Create Space From Next Frame IO API description: |+ ## Overview The **Substance 3D API** provides a way to upload and temporary store files. You can upload folders from **next.frame.io** to create a space. To upload a folder from next.frame.io, you must pass the following parameters: - **access Token** - **account ID** - **folder ID** The result of the post is a **JSON** which contained the **id** of the space created. Space **id** can be used into a space source to use space content as a source for API operations. Example of a space source: ```json { "space": { "id": "" } } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/rest_base.FileNextFrameIO' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/rest_base.Space' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: [] x-s3d-public: true /v2/spacesURL: post: operationId: createSpaceURL_v2 summary: Create Space from URL API description: | ## Overview The **Substance 3D API** provides a way to upload and temporary store files. You can upload one or more files from one or more URLs. For each URL, there is an optional **filepath** parameter that allows you to specify the file name and its path. By combining multiple URLs with different **filepath** paths, you can compose a complete file tree structure. Example for this files tree: ``` ├── textures │ ├── diffuse.png │ └── normal.png └── lighthouse.fbx ``` Curl request: ``` curl --request POST \ --url https://s3d.adobe.io/v2/spacesURL \ --header 'Accept: application/json' \ --header 'Authorization: Bearer 123' \ --header 'Content-Type: application/json' \ --data '[ { "filepath": "lighthouse.fbx", "url": "https://url/to/lighthouse.fbx" }, { "filepath": "textures/diffuse.png", "url": "https://url/to/diffuse.png" }, { "filepath": "textures/normal.png", "url": "https://url/to/normal.png" } ]' ``` The result of the post is a **JSON** which contained the **id** of the space created. Space **id** can be used into a space source to use space content as a source for API operations. Example of a space source: ```json { "space": { "id": "" } } ``` requestBody: required: true content: application/json: schema: type: - array - 'null' items: $ref: '#/components/schemas/rest_base.FileURL' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/rest_base.Space' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/ffapierrors.FFAPIError' tags: [] x-s3d-public: true components: schemas: ffapierrors.FFAPIError: description: The error within the error response. type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/ffapierrors.FFAPIError.json' readOnly: true error_code: description: Associated error code. type: string error_details: description: Optional list of individual error details. type: array items: type: object message: description: Error message. type: string additionalProperties: false required: - error_code ffapierrors.FFAPIErrorDetail: type: object properties: error_code: description: Error code. type: string error_context: description: Additional context for the error. loc: description: 'Where the error occurred, indicated in dot notation (e.g., body.items[3].tags or path.thing-id).' type: string msg: description: Error message text. type: string additionalProperties: false required: - loc - msg - error_code rest_base.FileFrameIO: type: object properties: $schema: description: A URL to the JSON Schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/rest_base.FileFrameIO.json' readOnly: true accessToken: description: 'Frame.io access token or Developer token. See https://developer.frame.io/docs/getting-started/authentication for obtaining a token.' type: string examples: - base64.jwt.token folderId: description: 'Frame.io folder ID containing the assets. This should be the ID of the folder (not an asset ID). For best performance and to avoid [size limitations](/#what-is-the-maximum-size-of-assets-i-can-process), use the folder ID closest to your target assets. The system will retrieve all content from the specified folder, so choosing a parent folder with many subfolders may exceed the maximum retrieval size limit' type: string examples: - 01234567-89ab-cdef-0123-456789abcdef additionalProperties: false required: - folderId - accessToken rest_base.FileNextFrameIO: type: object properties: $schema: description: A URL to the JSON Schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/rest_base.FileNextFrameIO.json' readOnly: true accessToken: description: 'Frame.io access token. See https://developer.adobe.com/frameio/guides/Authentication/ for obtaining a token.' type: string examples: - fio-u-base64url accountId: description: 'Frame.io account ID. This is the account identifier for the next.frame.io account owner. To find your account ID, log in to next.frame.io, navigate to your inbox, and extract the UUID from the URL (e.g., in https://next.frame.io/inbox/abcdefgh-1234-1234-1234-abcdefghijk, the account ID is abcdefgh-1234-1234-1234-abcdefghijk)' type: string examples: - 01234567-89ab-cdef-0123-456789abcdef folderId: description: 'Frame.io folder ID containing the assets. This should be the ID of the folder (not an asset ID). For best performance and to avoid [size limitations](/#what-is-the-maximum-size-of-assets-i-can-process), use the folder ID closest to your target assets. The system will retrieve all content from the specified folder, so choosing a parent folder with many subfolders may exceed the maximum retrieval size limit' type: string examples: - 01234567-89ab-cdef-0123-456789abcdef additionalProperties: false required: - folderId - accountId - accessToken rest_base.FileURL: type: object properties: filepath: description: 'The filename in the filepath overrides filename. If filepath is unset, will try to detect filename from content disposition header, then url itself. If a path is specified before the filename in the filepath, the file will be mounted at that location in the space.' type: string url: type: string examples: - 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' additionalProperties: false required: - url rest_base.MountedSource: type: object properties: frame.io: description: Fetch content from a Frame.io folder. ⚠️ All sources are exclusive. $ref: '#/components/schemas/rest_base.SourceFrameIO' deprecated: true mountPoint: description: Where to mount the content of the source in the virtual job working directory. type: string default: / next.frame.io: description: Fetch content from a next.frame.io folder. ⚠️ All sources are exclusive. $ref: '#/components/schemas/rest_base.SourceFrameIOV4' space: description: 'Read content from an existing space (can be another job''s output, or uploaded manually with the space API). ⚠️ All sources are exclusive.''' $ref: '#/components/schemas/rest_base.SourceSpace' url: description: Fetch content from a URL. ⚠️ All sources are exclusive. $ref: '#/components/schemas/rest_base.SourceURL' additionalProperties: false rest_base.SourceFrameIO: type: object properties: accessToken: description: 'Frame.io access token or Developer token. See https://developer.frame.io/docs/getting-started/authentication for obtaining a token.' type: string folderId: description: 'Frame.io folder ID containing the assets. This should be the ID of the folder (not an asset ID). For best performance and to avoid [size limitations](/#what-is-the-maximum-size-of-assets-i-can-process), use the folder ID closest to your target assets. The system will retrieve all content from the specified folder, so choosing a parent folder with many subfolders may exceed the maximum retrieval size limit' type: string additionalProperties: false required: - folderId - accessToken rest_base.SourceFrameIOV4: type: object properties: accessToken: description: 'Frame.io access token. See https://developer.adobe.com/frameio/guides/Authentication/ for obtaining a token.' type: string accountId: description: 'Frame.io account ID. This is the account identifier for the next.frame.io account owner. To find your account ID, log in to next.frame.io, navigate to your inbox, and extract the UUID from the URL (e.g., in https://next.frame.io/inbox/abcdefgh-1234-1234-1234-abcdefghijk, the account ID is abcdefgh-1234-1234-1234-abcdefghijk)' type: string folderId: description: 'Frame.io folder ID containing the assets. This should be the ID of the folder (not an asset ID). For best performance and to avoid [size limitations](/#what-is-the-maximum-size-of-assets-i-can-process), use the folder ID closest to your target assets. The system will retrieve all content from the specified folder, so choosing a parent folder with many subfolders may exceed the maximum retrieval size limit' type: string additionalProperties: false required: - folderId - accountId - accessToken rest_base.SourceSpace: type: object properties: id: description: A space ID. type: string additionalProperties: false required: - id rest_base.SourceURL: type: object properties: filename: description: 'Filename override. If unset, the service will try to detect the filename from the content disposition header, then the URL itself.' type: string url: description: URL to fetch content from. type: string examples: - 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' additionalProperties: false required: - url rest_base.Space: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/rest_base.Space.json' readOnly: true expiry: description: time at which the space will be deleted type: string format: date-time files: description: 'List of all files contained in Space, ordered by name.' type: - array - 'null' items: $ref: '#/components/schemas/rest_base.SpaceFile' id: description: Unique identifier of this Space. type: string url: description: URL to the full description of this Space. type: string archiveUrl: description: URL to fetch the whole space as an archive (usually a ZIP file). additionalProperties: false required: - url - id - expiry - files rest_base.SpaceFile: type: object properties: name: type: string size: type: integer format: int64 minimum: 0 url: type: string additionalProperties: false required: - url - name - size restv1.ComposeSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1.ComposeSceneRequest.json' readOnly: true cameraName: description: Name of an existing camera in the source 3D scene. The camera has to be defined in the scene. type: string contentClass: description: Class of content to generate. type: string default: photo enum: - art - photo customModelId: description: 'ID of the custom model to be used for the generation. You can retrieve your custom model ID (assetId) with the Firefly retrieve custom model endpoint (https://developer.adobe.com/firefly-services/docs/firefly-api/api/#operation/getCustomModels).' type: string enableGroundPlane: description: 'Enable the auto-generated ground plane under the hero asset. This is useful if the 3D scene contains only a hero asset, without additional elements.' type: boolean default: false environment: description: 'Optional environment settings used for all variations. If omitted, an environment will be generated based on the background. If set, the `lightingSeeds` parameter will be ignored.' $ref: '#/components/schemas/types.ComposeEnvironment' environmentExposure: description: 'Exposure, in EV (0=neutral).' type: number format: double maximum: 10 minimum: -10 heroAsset: description: Name of an existing 'hero asset' in the source 3D scene. The asset has to be defined in the scene. type: string minLength: 1 lightingSeeds: description: 'Optional seeds to be used to generate the lighting for the scene. The first seed will be used with the first seed of the background, the second one with the second seed of the background and so on. Background seeds must be defined and the number of lighting seeds should equal the number of background seeds. If not set, random seeds will be used. You will be able to retrieve the seeds used for the generation in the output details of the job.' type: array items: format: int64 type: integer maxItems: 4 modelVersion: description: Model version to be used to generate the background image with Adobe Firefly. type: string default: image4_ultra enum: - image3_fast - image4_standard - image4_ultra numVariations: description: 'The number of variations to generate. `numVariations` will default to the number of seeds, or to 1 if `seeds` is not specified.' type: integer format: int64 maximum: 4 minimum: 1 prompt: description: Prompt to be used to generate the background image with Adobe Firefly. type: string minLength: 1 scene: description: 'Optional scene-level details, such as a custom camera.' $ref: '#/components/schemas/types.ComposeSceneSceneDetails' sceneFile: description: 'The path of the scene file in `sources`. If value is null, the first found scene file will be used.' type: string seeds: description: 'Optional seed value to be used to generate the background image with Adobe Firefly. A seed ensures consistent background image generation. If `seed` is not set, a random seed will be used. Retrieve the seed used for the generation in the output details of the job. If specified with `numVariations`, the number of seeds must be the equal to `numVariations`.' type: array items: format: int64 type: integer maxItems: 4 size: description: |- The size of the image generations. The supported dimensions for image generations are: | Dimensions | Description | | -----------| ----- | | { "width": 2048, "height": 2048} | Square (1:1) | | { "width": 2304, "height": 1792 } | Landscape (4:3) | | { "width": 1792, "height": 2304 } | Portrait (3:4) | | { "width": 2688, "height": 1536 } | Widescreen (16:9) | | { "width": 1344, "height": 768 } |(7:4) | |{ "width": 1152, "height": 896 } |(9:7) | |{ "width": 896, "height": 1152 } |(7:9) | | { "width": 1024, "height": 1024} | Square (1:1) | $ref: '#/components/schemas/types.OutputSize' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 styleImage: description: Optional 'style image' to be used to generate the background. The style image has to be present in `sources`. type: string additionalProperties: false examples: - cameraName: main_camera heroAsset: bottle prompt: french style kitchen with a glass bottle sitting on an empty wooden table window on the left focal length 50mm sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/compositing_table_bottle.glb' required: - sources - prompt - heroAsset restv1beta.ComposeOutput: type: object properties: backgroundImage: $ref: '#/components/schemas/restv1beta.ComposeOutputImage' image: $ref: '#/components/schemas/restv1beta.ComposeOutputImage' lightingSeed: type: integer format: int64 maskImage: $ref: '#/components/schemas/restv1beta.ComposeOutputImage' seed: type: integer format: int64 additionalProperties: false required: - seed - lightingSeed - image - backgroundImage - maskImage restv1beta.ComposeOutputImage: type: object properties: url: type: string additionalProperties: false required: - url restv1beta.ComposeSceneJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/rest_base.Space' outputs: type: array items: $ref: '#/components/schemas/restv1beta.ComposeOutput' promptHasBlockedArtists: type: boolean promptHasDeniedWords: type: boolean warnings: type: - array - 'null' items: $ref: '#/components/schemas/types.Warning' additionalProperties: false required: - outputSpace - outputs - promptHasDeniedWords - promptHasBlockedArtists restv1beta.ComposeSceneRequest: type: object properties: $schema: description: A URL to the JSON Schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.ComposeSceneRequest.json' readOnly: true cameraName: description: Name of an existing camera in the 3D scene (must be defined in the scene). Mutually exclusive with 'scene.camera'. type: string contentClass: description: 'Class of content to generate: ''photo'' for photorealistic images or ''art'' for artistic renditions. Defaults to ''photo''.' type: string default: photo enum: - art - photo customModelId: description: 'ID of the custom model to be used for the generation. You can retrieve your custom model ID (assetId) with the Firefly retrieve custom model endpoint (https://developer.adobe.com/firefly-services/docs/firefly-api/api/#operation/getCustomModels).' type: string enableGroundPlane: description: Allow to enable the auto-generated ground plane under the hero asset. Useful if the 3D scene contains only a hero asset without additional elements. Disabled by default. type: boolean default: false environment: description: 'Optional environment settings used for all variations. If omitted, an environment will be generated based on the background. If set, the `lightingSeeds` parameter will be ignored.' $ref: '#/components/schemas/types.ComposeEnvironment' environmentExposure: description: 'Exposure, in EV (0=neutral).' type: number format: double maximum: 10 minimum: -10 heroAsset: description: Name of an existing 'hero asset' in the source 3D scene (the asset has to be defined in the scene). type: string minLength: 1 lightingSeeds: description: 'LightingSeeds defines optional, fixed random seeds for reproducible Image-Based Lighting (IBL) when generating AI backgrounds. It is only used when ''environment'' is not provided. Each lighting seed maps to the corresponding background seed by index (first lighting seed with first background seed, etc.) when ''seeds'' is specified. If the number of lighting seeds does not match the number of background seeds, the slice is automatically truncated or padded with random values. When omitted or set to nil, random lighting seeds are generated. The actual seeds used are returned in the response payload.' type: array items: format: int64 type: integer maxItems: 4 modelVersion: description: 'Model version to be used to generate the background image with Adobe Firefly. If omitted, defaults to ''image3_fast''.' type: string default: image3_fast enum: - image3_fast - image4_standard - image4_ultra numVariations: description: 'The number of variations to generate. `numVariations` will default to the number of seeds, or to 1 if `seeds` is not specified.' type: integer format: int64 maximum: 4 minimum: 1 prompt: description: Prompt to be used to generate the background image with Adobe Firefly. type: string minLength: 1 scene: description: 'Optional scene-level details, such as a custom camera.' $ref: '#/components/schemas/types.ComposeSceneSceneDetails' sceneFile: description: 'The path of the scene file in `sources`. If value is null, the first found scene file will be used.' type: string seeds: description: 'Optional seed to be used to generate the background image with Adobe Firefly. Seed ensures consistent background image generation. If `seed` is not set, a random seed will be used. You will be able to retrieve the seed used for the generation in the output details of the job. If specified alongside `numVariations`, the number of seeds must be equal to `numVariations`.' type: array items: format: int64 type: integer maxItems: 4 size: description: |- Output image dimensions. Supported resolutions: | Dimensions | Description | | -----------| ----- | | { "width": 2048, "height": 2048} | Square (1:1) | | { "width": 2304, "height": 1792 } | Landscape (4:3) | | { "width": 1792, "height": 2304 } | Portrait (3:4) | | { "width": 2688, "height": 1536 } | Widescreen (16:9) | $ref: '#/components/schemas/types.OutputSize' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 styleImage: description: Optional reference image to influence the visual style and aesthetics of the generated background. Must be provided in sources. type: string additionalProperties: false examples: - cameraName: main_camera heroAsset: bottle prompt: french style kitchen with a glass bottle sitting on an empty wooden table window on the left focal length 50mm sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/compositing_table_bottle.glb' required: - sources - prompt - heroAsset restv1beta.ComposeSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.ComposeSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.ComposeSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: URL to fetch/poll for job result in case the job is not finished yet. type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.CreateSceneJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/rest_base.Space' sceneUrl: description: URL for the created scene. type: string additionalProperties: false required: - sceneUrl - outputSpace restv1beta.CreateSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.CreateSceneRequest.json' readOnly: true encoding: description: Encoding output format. type: string enum: - glb - gltf - fbx - usdz - usda - usdc - obj fileBaseName: description: Output filename. type: string minLength: 1 scene: $ref: '#/components/schemas/types.SceneDescription' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - encoding: usdz fileBaseName: scene scene: models: imports: - file: WaterBottle.glb - file: WaterBottle.glb transform: trs: rotation: euler: - 30 - 0 - 0 scale: - 1 - 1 - 1 translation: - 0.15 - 0 - 0 sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - encoding: usdz fileBaseName: scene scene: models: imports: - file: WaterBottle.glb - file: WaterBottle.glb transform: trs: rotation: euler: - 30 - 0 - 0 scale: - 1 - 1 - 1 translation: - 0.15 - 0 - 0 sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources - encoding - fileBaseName restv1beta.CreateSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.CreateSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.CreateSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.ModelConvertJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/rest_base.Space' additionalProperties: false required: - outputSpace restv1beta.ModelConvertRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.ModelConvertRequest.json' readOnly: true format: description: Output format. type: string enum: - glb - gltf - fbx - usdz - usda - usdc - obj examples: - glb modelEntrypoint: description: Conversion usually takes the first file that's considered a valid 3D model. Define this entry point to disambiguate when there are multiple options. type: string sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - format: glb sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' - format: glb sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' - format: glb sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' required: - format - sources restv1beta.ModelConvertResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.ModelConvertResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.ModelConvertJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.RenderModelRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderModelRequest.json' readOnly: true autoFraming: description: Options related to auto-framing. $ref: '#/components/schemas/types.AutoFramingOptions' background: description: Options related to the background. $ref: '#/components/schemas/types.BackgroundOptions' cameraName: description: 'If set, this camera is used to perform the render. The camera has to be defined in the scene.' type: string extraOutputs: description: Request additional outputs from the renderer. $ref: '#/components/schemas/types.RenderExtraOutputs' groundPlane: description: Options related to the ground plane. $ref: '#/components/schemas/types.GroundPlaneOptions' scene: description: Define rendering scene primitives. $ref: '#/components/schemas/types.SimpleSceneDescription' size: description: Options related to the render size. $ref: '#/components/schemas/types.SizeOptions' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - scene: modelFile: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - scene: modelFile: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources restv1beta.RenderModelResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderModelResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.RenderSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.RenderModelTurntableRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderModelTurntableRequest.json' readOnly: true autoFraming: description: Auto-framing related options. $ref: '#/components/schemas/types.AutoFramingOptions' background: description: Background related options. $ref: '#/components/schemas/types.BackgroundOptions' cameraName: description: 'If set, this camera is used to perform the render. The camera has to be defined in the scene.' type: string exportFrames: description: Whether to export individual frames along with the turntable product. type: boolean default: false framerate: type: integer format: int64 default: 25 maximum: 30 minimum: 5 groundPlane: description: Ground plane related options. $ref: '#/components/schemas/types.GroundPlaneOptions' mode: description: 'Set the rotation mode. Options are `rotate_camera` (camera rotates around model), `rotate_model` (model rotates), or `rotate_environment` (environment rotates).' type: string default: rotate_camera enum: - rotate_camera - rotate_model - rotate_environment rotationDirection: description: Set the rotation direction of the turntable. type: string default: clockwise enum: - clockwise - counter_clockwise scene: description: Define rendering scene primitives. $ref: '#/components/schemas/types.SimpleSceneDescription' seconds: type: integer format: int64 default: 2 maximum: 5 minimum: 1 size: description: Render size related options. $ref: '#/components/schemas/types.SizeOptions' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 useRasterizer: description: Set to true to use a very fast rendering technique but with less accurate lighting. type: boolean default: false additionalProperties: false examples: - scene: modelFile: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources restv1beta.RenderModelTurntableResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderModelTurntableResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.RenderSceneTurntableJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.RenderSceneJobResult: type: object properties: distanceToCameraUrl: description: 'URL to the distance-to-camera map in NumPy .npy format, present when exportDistanceToCamera was requested' type: string materialIds: $ref: '#/components/schemas/types.IdsMapData' materialMasks: type: array items: $ref: '#/components/schemas/types.MaskNameToFileBinding' matteUrl: description: 'URL to the matte grayscale image, present when exportMatte was requested' type: string objectIds: $ref: '#/components/schemas/types.IdsMapData' objectMasks: type: array items: $ref: '#/components/schemas/types.MaskNameToFileBinding' outputSpace: $ref: '#/components/schemas/rest_base.Space' renderUrl: description: URL to the rendered scene. type: string warnings: type: - array - 'null' items: $ref: '#/components/schemas/types.Warning' additionalProperties: false required: - renderUrl - outputSpace restv1beta.RenderSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderSceneRequest.json' readOnly: true autoFraming: description: Auto-framing related options. $ref: '#/components/schemas/types.AutoFramingOptions' background: description: Background related options. $ref: '#/components/schemas/types.BackgroundOptions' cameraName: description: 'If set, this camera is used to perform the render. The camera has to be defined in the scene.' type: string extraOutputs: description: Request additional outputs from the renderer. $ref: '#/components/schemas/types.RenderExtraOutputs' groundPlane: description: Options related to the ground plane. $ref: '#/components/schemas/types.GroundPlaneOptions' scene: description: Define rendering scene primitives. $ref: '#/components/schemas/types.SceneDescription' size: description: Render size related options. $ref: '#/components/schemas/types.SizeOptions' sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - scene: models: imports: - file: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - scene: models: imports: - file: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources restv1beta.RenderSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.RenderSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.RenderSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl restv1beta.RenderSceneTurntableJobResult: type: object properties: framesUrls: description: List of URLs to the rendered frames. The rendered frames are ordered by frame number. type: array items: type: string outputSpace: $ref: '#/components/schemas/rest_base.Space' renderUrl: description: URL to the rendered scene. type: string warnings: type: - array - 'null' items: $ref: '#/components/schemas/types.Warning' additionalProperties: false required: - framesUrls - renderUrl - outputSpace restv1beta.SceneDescJobResult: type: object properties: stats: $ref: '#/components/schemas/types.SceneStatsInfo' additionalProperties: false required: - stats restv1beta.SceneDescRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.SceneDescRequest.json' readOnly: true sceneFile: description: 'Path to the scene file in `sources`. If the value is `null`, the first found scene file will be used.' type: string sources: description: List of sources to aggregate and run the job against. type: array items: $ref: '#/components/schemas/rest_base.MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' - sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' required: - sources restv1beta.SceneDescResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/restv1beta.SceneDescResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/restv1beta.SceneDescJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl types.AutoFramingOptions: type: object properties: algorithm: type: string default: auto enum: - auto - bounding_cylinder - frustum_fit zoomFactor: description: A value of 1 indicates tight framing. Less than 1 is a zoom-out. Greater than 1 is a zoom-in. type: number format: double default: 0.8 maximum: 100 minimum: 0.001 additionalProperties: false types.AzimuthAltitude: type: object properties: altitude: description: 'Altitude, in degrees, from -90 to 90 degrees.' type: number format: double maximum: 90 minimum: -90 azimuth: description: 'Rotation around the vertical axis, in degrees.' type: number format: double lookAt: description: Look at point coordinates. type: - array - 'null' items: format: double type: number maxItems: 3 minItems: 3 radius: description: Distance to the `lookAt` point. type: number format: double minimum: 0 additionalProperties: false required: - azimuth - altitude - lookAt - radius types.BackgroundOptions: type: object properties: backgroundColor: description: 'RGBA background color. Has an effect only if `showEnvironment` is `false`. Each component has to be in the [0,1] range.' type: - array - 'null' items: format: double type: number default: - 0 - 0 - 0 - 0 examples: - - 0 - 0 - 0 - 0 maxItems: 4 minItems: 4 backgroundImage: description: 'Path to a background image. If set, will be used as the background.' type: string showEnvironment: description: Show the environment map as the background. type: boolean default: false additionalProperties: false types.CameraStats: type: object properties: aspectRatio: type: number format: double fStop: type: number format: double focalLength: type: number format: double focusDistance: type: number format: double horizontalAperture: type: number format: double horizontalApertureOffset: type: number format: double name: type: string projection: type: string verticalAperture: type: number format: double verticalApertureOffset: type: number format: double additionalProperties: false required: - name - focalLength - horizontalAperture - verticalAperture - aspectRatio - horizontalApertureOffset - verticalApertureOffset - fStop - focusDistance - projection types.ComposeEnvironment: type: object properties: file: description: 'Path of environment file in `sources`. If value is null, the environment file will be generated.' type: string rotation: description: Controls the orientation of the environment map. $ref: '#/components/schemas/types.Rotation' additionalProperties: false required: - file types.ComposeSceneSceneDetails: type: object properties: camera: description: Custom camera definition for the scene render. Mutually exclusive with 'cameraName' at the top level. Use this to define camera parameters programmatically instead of referencing a named camera from the 3D scene. $ref: '#/components/schemas/types.SceneCamera' additionalProperties: false types.ExportMasksOptions: type: object properties: selection: description: 'The list of masks to be exported, accepts glob expressions. If empty, all masks will be exported.' type: - array - 'null' items: type: string additionalProperties: false types.FormatOptions: type: object properties: usd: description: options specific to USD file format $ref: '#/components/schemas/types.UsdOptions' additionalProperties: false required: - usd types.GroundPlaneOptions: type: object properties: autoGroundScene: description: Automatically position the scene on the ground plane. Moves the scene along the vertical axis. type: boolean default: true enable: description: Enable/disable the ground plane. type: boolean default: true reflections: description: Enable/disable reflections onto the ground plane. type: boolean default: false reflectionsOpacity: description: Controls the opacity of the reflections. Useful for compositing purposes. type: number format: double default: 1 maximum: 1 minimum: 0 reflectionsRoughness: description: Controls the roughness of the reflections. Useful for compositing purposes. type: number format: double default: 0 maximum: 1 minimum: 0 shadows: description: Controls whether the ground plane catches shadows or not. type: boolean default: true shadowsOpacity: description: Controls the opacity of cast shadows. Only has effect if shadows are enabled. type: number format: double default: 1 maximum: 1 minimum: 0 additionalProperties: false types.IdsMapData: type: object properties: fileName: description: The Ids map file name. type: string ids: description: List of name to color bindings. type: - array - 'null' items: $ref: '#/components/schemas/types.NameToColorBinding' additionalProperties: false required: - fileName - ids types.MaskNameToFileBinding: type: object properties: fileName: description: The file name. type: string name: description: The name in the 3D scene. type: string additionalProperties: false required: - name - fileName types.Material: type: object properties: sbs: description: The PBR material definition. $ref: '#/components/schemas/types.SbsMaterial' solidColor: description: The solid color material definition. $ref: '#/components/schemas/types.SolidColorMaterial' additionalProperties: false types.MaterialAssign: type: object properties: material: description: The material definition. $ref: '#/components/schemas/types.Material' materialName: description: 'Desired material name, it will be sanitized to make a valid USD prim name.' type: string nodeList: description: List of nodes under which geometric primitives will have this material assigned. Each entry can be a full node name or a glob expression. type: - array - 'null' items: type: string assignByDefault: description: Set to true to assign this material by default to all geometric primitives. excludeFromDefault: description: List of nodes to exclude from default assignment. additionalProperties: false required: - materialName - material - nodeList types.MaterialOverride: type: object properties: absorptionColorFactor: description: 'RGB float color value, for example white is [1.0,1.0,1.0].' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 absorptionColorTexture: type: string absorptionDistanceFactor: type: number format: double minimum: 0 absorptionDistanceTexture: type: string baseColorFactor: description: 'RGB float color value, for example white is [1.0,1.0,1.0].' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 baseColorTexture: type: string coatColorFactor: description: 'RGB float color value, for example white is [1.0,1.0,1.0].' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 coatColorTexture: type: string coatOpacityFactor: type: number format: double maximum: 1 minimum: 0 coatOpacityTexture: type: string coatRoughnessFactor: type: number format: double maximum: 1 minimum: 0 coatRoughnessTexture: type: string materialName: type: string metallicFactor: type: number format: double maximum: 1 minimum: 0 metallicTexture: type: string normalFactor: type: array items: format: double type: number maxItems: 3 minItems: 3 normalTexture: type: string opacityFactor: type: number format: double minimum: 0 opacityTexture: type: string pbrMaterial: $ref: '#/components/schemas/types.SbsMaterial' roughnessFactor: type: number format: double maximum: 1 minimum: 0 roughnessTexture: type: string translucencyFactor: type: number format: double maximum: 1 minimum: 0 translucencyTexture: type: string volumeThicknessFactor: type: number format: double minimum: 0 volumeThicknessTexture: type: string additionalProperties: false required: - materialName types.NameToColorBinding: type: object properties: color: description: Corresponding color in the ID map. type: string default: - 0 - 0 - 0 contentEncoding: base64 name: description: Name in 3D scene. type: string additionalProperties: false required: - name - color types.OutputSize: type: object properties: height: type: integer format: int64 default: 1536 maximum: 2688 minimum: 1 width: type: integer format: int64 default: 2688 maximum: 2688 minimum: 1 additionalProperties: false required: - width - height types.RenderExtraOutputExportMatte: type: object properties: includeNodes: description: 'Nodes to be included into the matte, the list can contain glob patterns. If empty, the matte will contain all scene objects.' type: - array - 'null' items: type: string additionalProperties: false required: - includeNodes types.RenderExtraOutputs: type: object properties: exportDistanceToCamera: description: export a distance-to-camera map as a NumPy .npy file (float32 2D array) type: boolean default: false exportMaterialIds: description: Export an image with one color per material. type: boolean default: false exportMaterialMasks: description: Export one mask per material. $ref: '#/components/schemas/types.ExportMasksOptions' exportMatte: description: export compositing matte for a selection of objects $ref: '#/components/schemas/types.RenderExtraOutputExportMatte' exportObjectIds: description: Export an image with one color per object. type: boolean default: false exportObjectMasks: description: Export one mask per object. $ref: '#/components/schemas/types.ExportMasksOptions' additionalProperties: false types.RendererConfig: type: object properties: type: description: Renderer to use. 'ssca' is the default path-tracing renderer; 'rtx' uses NVidia RTX renderer. type: string enum: - ssca - rtx additionalProperties: false required: - type types.Rotation: type: object properties: euler: description: Euler angles in degrees. type: array items: format: double type: number examples: - - 0 - 0 - 0 maxItems: 3 minItems: 3 quaternion: description: 'In W,X,Y,Z order.' type: array items: format: double type: number examples: - - 1 - 0 - 0 - 0 maxItems: 4 minItems: 4 additionalProperties: false types.SbsMaterial: type: object properties: preset: description: Select a preset to be used for the substance material rendering. type: string resolution: description: Substance material render resolution. This should be a power of two. type: integer format: int64 enum: - 16 - 32 - 64 - 128 - 256 - 512 - 1024 - 2048 - 4096 maximum: 4096 minimum: 16 rotation: description: Texture space rotation. type: number format: double sbsar: description: 'Path to a substance material; if not set, the first substance 3D material found in sources will be used.' type: string scale: description: Texture space scale. type: array items: format: double type: number maxItems: 2 minItems: 2 translation: description: Texture space translation. type: array items: format: double type: number maxItems: 2 minItems: 2 additionalProperties: false types.SceneBaseFile: type: object properties: file: description: Path to the scene file in `sources`. type: string modelsRootNodeName: description: 'Define root node for models in scene graph. If not found, the node which is parent of all models in the scene will be used. If this node doesn''t exist, a new node will be created under global root.' type: string additionalProperties: false required: - file types.SceneCamera: type: object properties: focal: description: 'Camera focal length, in mm.' type: number format: double default: 50 maximum: 1000 minimum: 10 sensorWidth: description: 'Camera sensor width, in mm.' type: number format: double default: 36 maximum: 100 minimum: 1 transform: description: Controls the position and angle of the camera. $ref: '#/components/schemas/types.Transform' additionalProperties: false types.SceneDescription: type: object properties: baseFile: description: 'Define a scene from a file. If value is `null`, an empty scene will be created.' $ref: '#/components/schemas/types.SceneBaseFile' camera: description: Define a new camera for the scene. $ref: '#/components/schemas/types.SceneCamera' environment: description: Define the environment for the scene. Override the previous existing environment. $ref: '#/components/schemas/types.SceneEnvironment' formatOptions: description: define options specific for model file format $ref: '#/components/schemas/types.FormatOptions' materials: description: Assign new materials to geometric primitives. type: - array - 'null' items: $ref: '#/components/schemas/types.MaterialAssign' metersPerUnit: description: 'Length of a scene unit, in meters. Defaults to `baseFile` meters per unit if any, or 0.01 (centimeters) otherwise.' type: number format: double exclusiveMinimum: 0 models: description: Define additional models for the scene. $ref: '#/components/schemas/types.SceneModels' additionalProperties: false types.SceneEnvironment: type: object properties: exposure: description: 'Exposure, in EV (0=neutral).' type: number format: double default: 0 maximum: 10 minimum: -10 file: description: 'Path to the environment file in `sources`. If the value is `null`, the first found environment file will be used.' type: string preserveLights: description: 'A scene may contain 3D lights, like area lights or spot lights. By default, all those lights are removed when a new environment is set. Set this option to `true` to preserve the scene 3D lights.' type: boolean default: false rotation: description: Controls the orientation of the environment map. $ref: '#/components/schemas/types.Rotation' additionalProperties: false types.SceneModel: type: object properties: anchorName: description: 'Node name in scene graph which used as parent for the model. If anchor is not found, a node with the anchor name will be generated under models root node. And If value is `null`, a node will be generated under models root node.' type: string file: description: 'Path to the model file in `sources`. If the value is `null`, the first found model file will be used.' type: string formatOptions: description: Define options specific for the model file format. $ref: '#/components/schemas/types.FormatOptions' materialOverrides: description: Define material overrides. type: - array - 'null' items: $ref: '#/components/schemas/types.MaterialOverride' transform: description: 'Transform applied on the anchor node. Overrides the previous value, if it exists.' $ref: '#/components/schemas/types.Transform' additionalProperties: false types.SceneModels: type: object properties: imports: description: List of model import definitions. type: - array - 'null' items: $ref: '#/components/schemas/types.SceneModel' modelsRootNodeTransform: description: 'Global transformation applied on the models root node defined in the scene. Overrides the previous value, if it exists.' $ref: '#/components/schemas/types.Transform' additionalProperties: false types.SceneStatsBoundingBox: type: object properties: max: type: - array - 'null' items: format: double type: number min: type: - array - 'null' items: format: double type: number additionalProperties: false required: - min - max types.SceneStatsInfo: type: object properties: cameraNames: type: - array - 'null' items: type: string materialNames: type: - array - 'null' items: type: string metersPerSceneUnit: type: number format: double nodesHierarchy: $ref: '#/components/schemas/types.SceneStatsNode' numEquivalentTriangles: type: integer format: int64 numExtraPolygons: type: integer format: int64 numFaces: type: integer format: int64 numLines: type: integer format: int64 numMeshes: type: integer format: int64 numPoints: type: integer format: int64 numQuads: type: integer format: int64 numSubMeshes: type: integer format: int64 numTextures: type: integer format: int64 numTriangles: type: integer format: int64 numVertices: type: integer format: int64 sceneUpAxis: type: string additionalProperties: false required: - metersPerSceneUnit - sceneUpAxis - numVertices - numEquivalentTriangles - numPoints - numLines - numTriangles - numQuads - numExtraPolygons - numFaces - numMeshes - numSubMeshes - numTextures - cameraNames - materialNames - nodesHierarchy types.SceneStatsNode: type: object properties: assignedMaterialName: type: string cameraStats: $ref: '#/components/schemas/types.CameraStats' children: type: - array - 'null' items: $ref: '#/components/schemas/types.SceneStatsNode' name: type: string type: type: string variants: type: - array - 'null' items: $ref: '#/components/schemas/types.SceneStatsNodeVariant' worldSpaceBoundingBox: $ref: '#/components/schemas/types.SceneStatsBoundingBox' additionalProperties: false required: - name - type types.SceneStatsNodeVariant: type: object properties: currentValue: type: string name: type: string values: type: - array - 'null' items: type: string additionalProperties: false required: - name - values - currentValue types.ShadowCatchingMaterial: type: object properties: reflectionOpacity: type: number format: double default: 0 roughness: type: number format: double default: 0 shadowOpacity: type: number format: double default: 0 additionalProperties: false required: - reflectionOpacity - roughness - shadowOpacity types.SimpleSceneDescription: type: object properties: camera: description: Define a new camera for the scene. $ref: '#/components/schemas/types.SceneCamera' environment: description: Define the environment for the scene. Override the previous existing environment. $ref: '#/components/schemas/types.SceneEnvironment' formatOptions: description: Define options specific for the model file format. $ref: '#/components/schemas/types.FormatOptions' materialOverrides: description: Define material overrides. type: - array - 'null' items: $ref: '#/components/schemas/types.MaterialOverride' materials: description: Assign new materials to geometric primitives. type: - array - 'null' items: $ref: '#/components/schemas/types.MaterialAssign' metersPerUnit: description: 'Length of a scene unit, in meters. Defaults to 0.01 (centimeters).' type: number format: double exclusiveMinimum: 0 modelFile: description: 'Path to the model file in `sources`. If the value is `null`, the first found model file will be used.' type: string modelTransform: description: Transform applied on the model. $ref: '#/components/schemas/types.Transform' additionalProperties: false types.SizeOptions: type: object properties: height: description: Render height. type: integer format: int64 maximum: 2304 minimum: 16 width: description: Render width. type: integer format: int64 maximum: 3840 minimum: 16 additionalProperties: false required: - width - height types.SolidColorMaterial: type: object properties: color: description: 'RGB color of the solid material, each component has to be in the [0,1] range.' type: - array - 'null' items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 metallicFactor: description: 'Metallic factor of the solid material, has to be in the [0,1] range.' type: number format: double maximum: 1 minimum: 0 roughnessFactor: description: 'Roughness factor of the solid material, has to be in the [0,1] range.' type: number format: double maximum: 1 minimum: 0 additionalProperties: false required: - color types.TRS: type: object properties: rotation: $ref: '#/components/schemas/types.Rotation' scale: type: - array - 'null' items: format: double type: number maxItems: 3 minItems: 3 translation: type: - array - 'null' items: format: double type: number examples: - - 0 - 0 - 0 maxItems: 3 minItems: 3 additionalProperties: false required: - translation - rotation - scale types.Transform: type: object properties: azimuthAltitude: description: 'Transform is defined by azimuth, altitude and radius terms. If set, do not set `matrix` or `trs`.' $ref: '#/components/schemas/types.AzimuthAltitude' matrix: description: 'Transform is defined as a matrix. If set, do not set `trs` or `azimuthAltitude`.' type: array items: format: double type: number maxItems: 16 minItems: 16 trs: description: 'Transform is defined by translation, rotation and scale terms. If set, do not set `matrix` or `azimuthAltitude`.' $ref: '#/components/schemas/types.TRS' additionalProperties: false types.UsdOptions: type: object properties: variants: description: List of USD variants definition applied on USD primitives. type: - array - 'null' items: $ref: '#/components/schemas/types.UsdVariant' additionalProperties: false required: - variants types.UsdVariant: type: object properties: primName: description: name of the USD prim on which the variant is defined type: string variant: description: name of the variant option to apply from the variant set type: string variantSet: description: name of the variant set to select from type: string additionalProperties: false required: - primName - variantSet - variant types.Warning: type: object properties: context: type: string message: type: string additionalProperties: false required: - context - message securitySchemes: bearerAuth: description: 'Adobe service-to-service (S2S) access token. Pass `Authorization: Bearer `. The token is not a JWT.' scheme: bearer type: http ApiKeyAuth: type: apiKey in: header name: x-api-key description: 'Your client ID, which acts as the API key. Pass `x-api-key: ` using `` as the placeholder in examples.' security: - bearerAuth: [] ApiKeyAuth: []