Adobe Scenes API
The Scenes API from Adobe — 5 operation(s) for scenes.
The Scenes API from Adobe — 5 operation(s) for scenes.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/adobe-scenes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
description: REST API for Adobe Substance 3D - Firefly Services.
title: Adobe Substance 3D API - Firefly Services Scenes API
version: 1.0.0
servers:
- url: https://s3d.adobe.io
security:
- bearerAuth: []
ApiKeyAuth: []
tags:
- name: Scenes
paths:
/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
components:
schemas:
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.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
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
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.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.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
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
rest_base.SourceSpace:
type: object
properties:
id:
description: A space ID.
type: string
additionalProperties: false
required:
- id
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.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
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
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
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
restv1beta.SceneDescJobResult:
type: object
properties:
stats:
$ref: '#/components/schemas/types.SceneStatsInfo'
additionalProperties: false
required:
- stats
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.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/
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adobe/refs/heads/main/openapi/adobe-scenes-api-openapi.yml