Adobe Spaces API

The Spaces API from Adobe — 2 operation(s) for spaces.

Operations 2

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/spaces Create a Space from 3D files (v1) · Create Space #
Ask an LLM
“How do I upload 3D files into a Space with the original v1 endpoint?”
“Can the v1 space call take a filename for the uploaded file?”
Tell an agent
Create a v1 space from my 3D file {filename}.
Upload 3D files into a new space with the v1 endpoint.
POST /v2/spaces Upload files to a new Space (v2) · Create Space API #
Ask an LLM
“Can I upload a whole folder tree of textures and models into a v2 space?”
“How long are files kept in a Substance 3D space?”
Tell an agent
Create a v2 space from these files {files}.
Upload {files} into a new space keeping their folder paths.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/adobe:adobe-spaces-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

adobe-spaces-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: REST API for Adobe Substance 3D - Firefly Services.
  title: Adobe Substance 3D API - Firefly Services Spaces API
  version: 1.0.0
servers:
- url: https://s3d.adobe.io
security:
- bearerAuth: []
  ApiKeyAuth: []
tags:
- name: Spaces
paths:
  /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
  /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:
      - Spaces
      x-s3d-public: true
components:
  schemas:
    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.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
    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
  securitySchemes:
    bearerAuth:
      description: 'Adobe service-to-service (S2S) access token. Pass `Authorization: Bearer <Token>`. 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: <API_KEY>` using `<API_KEY>` as the placeholder in examples.'