Cesium Archives API

Archives allow you to make downloadable versions of your assets for offline use or hosting outside of Cesium ion. With archives you can: * Create a full copy of an asset as a zip file * Clip out a subset of a 3D Tiles, terrain, or imagery asset as a glTF model or 3D Tiles 1.1 zip file Full asset downloads do not support Asset Depot assets or terrain assets which use a base terrain. Check the [archivable](#operation/getAsset) property of the asset to detect availability. Clips support both your assets and most Asset Depot assets, but have additional restrictions: * Clips can only be made from 3D Tiles or terrain & imagery assets. * Clips comprised of your assets have a geographic size limit of 200 km^2 * Clips comprised of Asset Depot assets have a geographic size limit of 25 km^2 * The number of Clips you can make with Asset Depot assets within a billing period is limited by your plan. See [Cesium ion pricing plans](https://cesium.com/platform/cesium-ion/pricing/) for specific limits. Individual archives count against your account storage quota. If your account goes over storage quota, additional archives will not be possible without upgrading your plan or deleting existing archives or assets to free up space.

Operations 11

GET /v1/archives List archives #
POST /v1/archives Create an archive #
GET /v1/archives/{archiveId} Get info about an archive #
PATCH /v1/archives/{archiveId} Update an archive name #
DELETE /v1/archives/{archiveId} Delete an archive #
GET /v1/archives/{archiveId}/download Download an archive #
GET /v1/assets/{assetId}/archives List archives for an asset #
POST /v1/assets/{assetId}/archives Create an archive #
GET /v1/assets/{assetId}/archives/{archiveId} Get info about an archive #
DELETE /v1/assets/{assetId}/archives/{archiveId} Delete an archive #
GET /v1/assets/{assetId}/archives/{archiveId}/download Download an archive #

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/cesium:cesium-archives-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

cesium-archives-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cesium ion Archives API
  version: v1
  description: '# Overview


    The Cesium ion REST API allows you to leverage ion''s powerful tiling and streaming capabilities from your own applications and workflows.'
servers:
- url: https://api.cesium.com
  description: Cesium ion API Server
security:
- OAuth2: []
tags:
- name: Archives
  description: Archives allow you to make downloadable versions of your assets for offline use or hosting outside of Cesium ion.
paths:
  /v1/archives:
    get:
      operationId: getArchives
      summary: List archives
      description: Retrieves all archives
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 1000
          example: 50
          minimum: 1
          maximum: 1000
        description: 'The maximum numbers of archives to return. Receiving fewer archives

          should not be interpreted as the end of the collection. The end of

          the collection is reached when the response does not contain a link

          header.

          '
      - name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
          example: 3
        description: The page number.
      - name: search
        in: query
        schema:
          type: string
          example: roads
        description: 'One or more keywords separated by whitespace by which to filter the

          list of archives.  The assets returned will contain each keyword of

          the search strings in either the archive name, or the asset names.

          '
      - name: sortBy
        in: query
        schema:
          type: string
          default: ID
          example: BYTES
          enum:
          - ID
          - BYTES
          - STATUS
          - DATE_ADDED
        description: The property by which to sort the results.  If undefined, archives are sorted by id.
      - name: sortOrder
        in: query
        schema:
          type: string
          default: ASC
          example: ASC
          enum:
          - ASC
          - DESC
        description: The order in which to sort the results.  If undefined, assets are sorted ascending.
      - name: assetId
        in: query
        description: The asset to find archives for.  The returned archives will contain the given asset id.
        schema:
          $ref: '#/components/schemas/AssetIdentifier'
      - name: clipped
        in: query
        description: Limit to only clipped or unclipped archives.  If undefined, include all archives.
        schema:
          type: boolean
          example: true
      responses:
        200:
          description: OK
          headers:
            link:
              $ref: '#/components/headers/link-next-prev'
          content:
            application/json:
              schema:
                title: Asset Archive Metadata
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ArchiveMetadata2'
              examples:
                exampleResponse:
                  value:
                    items:
                    - id: 10
                      name: Clip of Park
                      assetIds:
                      - 3812
                      - 4031
                      format: ZIP
                      type: CLIP_LATITUDE_LONGITUDE_RECTANGLE
                      clipRegion:
                      - -1.3194169616700622
                      - 0.6988112052237774
                      - -1.319410651520469
                      - 0.698813516991245
                      status: COMPLETE
                      bytesArchived: 102463
                    - id: 12
                      name: Courtyard
                      assetIds:
                      - 3813
                      type: FULL
                      format: ZIP
                      status: IN_PROGRESS
                      bytesArchived: 17
        401:
          $ref: '#/components/responses/401'
    post:
      operationId: postArchives
      summary: Create an archive
      description: Creates a new archive.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:write
      - AccessToken:
        - archives:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetArchiveOptions'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchiveMetadata2'
              examples:
                exampleResponse:
                  value:
                    id: 12
                    name: Courtyard
                    assetIds:
                    - 3813
                    type: FULL
                    format: ZIP
                    status: IN_PROGRESS
                    bytesArchived: 17
        401:
          $ref: '#/components/responses/401'
  /v1/archives/{archiveId}:
    parameters:
    - $ref: '#/components/parameters/archiveId'
    get:
      operationId: getArchive
      summary: Get info about an archive
      description: Retrieves the metadata information about a specific asset archive.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchiveMetadata2'
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
    patch:
      operationId: patchArchive
      summary: Update an archive name
      description: Updates the name of a clipped archive. This is not valid for an archive without a clipRegion.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:write
      - AccessToken:
        - archives:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the archive
              required:
              - name
      responses:
        204:
          description: No Content
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
    delete:
      operationId: deleteArchive
      summary: Delete an archive
      description: Deletes an asset archive.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:write
      - AccessToken:
        - archives:write
      responses:
        204:
          description: No Content
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
  /v1/archives/{archiveId}/download:
    parameters:
    - $ref: '#/components/parameters/archiveId'
    get:
      operationId: getArchivesDownload
      summary: Download an archive
      description: Fetches the asset archive as an octet stream. The archive is available to be downloaded once ion finishes archiving processing.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      responses:
        200:
          description: OK
          content:
            application/octet-stream:
              schema:
                format: binary
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
  /v1/assets/{assetId}/archives:
    parameters:
    - $ref: '#/components/parameters/assetId'
    get:
      deprecated: true
      operationId: getAssetArchives
      summary: List archives for an asset
      description: Retrieves all archives for the specified asset.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                title: Asset Archive Metadata
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ArchiveMetadata'
              examples:
                exampleResponse:
                  value:
                    items:
                    - id: 10
                      assetId: 3812
                      format: ZIP
                      status: COMPLETE
                      bytesArchived: 102463
                    - id: 12
                      assetId: 3812
                      format: ZIP
                      status: IN_PROGRESS
                      bytesArchived: 17
        401:
          $ref: '#/components/responses/401'
    post:
      deprecated: true
      operationId: postAssetArchives
      summary: Create an archive
      description: 'Creates a new archive for the asset that can be downloaded for offline use.


        Exports are not supported for assets subscribed to from the Asset Depot or terrain assets which use a base terrain.'
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:write
      - AccessToken:
        - archives:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                format:
                  $ref: '#/components/schemas/ArchiveFormat'
            examples:
              exampleBody:
                value:
                  format: ZIP
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchiveMetadata'
              examples:
                exampleResponse:
                  value:
                    id: 10
                    assetId: 3812
                    format: ZIP
                    status: NOT_STARTED
                    bytesArchived: 0
        401:
          $ref: '#/components/responses/401'
        402:
          $ref: '#/components/responses/402'
  /v1/assets/{assetId}/archives/{archiveId}:
    parameters:
    - $ref: '#/components/parameters/assetId'
    - $ref: '#/components/parameters/archiveId'
    get:
      deprecated: true
      operationId: getAssetArchive
      summary: Get info about an archive
      description: Retrieves the metadata information about a specific asset archive.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchiveMetadata'
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
    delete:
      deprecated: true
      operationId: deleteAssetArchive
      summary: Delete an archive
      description: Deletes an asset archive.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:write
      - AccessToken:
        - archives:write
      responses:
        204:
          description: No Content
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
  /v1/assets/{assetId}/archives/{archiveId}/download:
    parameters:
    - $ref: '#/components/parameters/assetId'
    - $ref: '#/components/parameters/archiveId'
    get:
      deprecated: true
      operationId: getAssetArchiveDownload
      summary: Download an archive
      description: Fetches the asset archive as an octet stream. The archive is available to be downloaded once ion finishes archiving processing.
      tags:
      - Archives
      security:
      - OAuth2:
        - archives:read
      - AccessToken:
        - archives:read
      responses:
        200:
          description: OK
          content:
            application/octet-stream:
              schema:
                format: binary
        401:
          $ref: '#/components/responses/401'
        404:
          $ref: '#/components/responses/404'
components:
  schemas:
    AssetIdentifier:
      type: integer
      description: The unique identifier for this asset.
      example: 3812
    ArchiveStatus:
      type: string
      enum:
      - NOT_STARTED
      - IN_PROGRESS
      - COMPLETE
      - ERROR
      description: 'Describes the state of the asset during the archival processes:


        | Value | Description |

        | - | - |

        | NOT_STARTED | The server was notified that the asset is to be archived and is waiting for the archival process to start. |

        | IN_PROGRESS | The asset is being archived, see `bytesArchived` to monitor progress. |

        | COMPLETE | The asset was archived successfully. |

        | ERROR | An error occurred during the archival process. Please retry the archival process again. |

        '
      example: COMPLETE
      readOnly: true
    ArchiveMetadata2:
      title: Archive Metadata
      type: object
      discriminator:
        propertyName: type
        mapping:
          FULL: '#/components/schemas/ArchiveMetadata2Full'
          CLIP_LATITUDE_LONGITUDE_RECTANGLE: '#/components/schemas/ArchiveMetadata2WithClip'
      properties:
        id:
          $ref: '#/components/schemas/ArchiveIdentifier'
        name:
          type: string
        assetIds:
          type: array
          items:
            $ref: '#/components/schemas/AssetIdentifier'
        format:
          $ref: '#/components/schemas/ArchiveFormat'
        status:
          $ref: '#/components/schemas/ArchiveStatus'
        bytesArchived:
          type: integer
          description: The total number of bytes of the archive that has been processed.
          minimum: 0
          example: 1024
          readOnly: true
        type:
          $ref: '#/components/schemas/ArchiveType'
    ArchiveFormat:
      type: string
      enum:
      - ZIP
      - TILESET
      - GLTF
      description: 'Specifies the format of the archive:


        | Value | Description |

        | - | - |

        | ZIP | Create a .zip archive containing a full copy of the asset as-hosted on ion.  Used only type FULL |

        | TILESET | Create a .zip archive containing a 3D Tiles 1.1 tileset.  Used only with type CLIP_LATITUDE_LONGITUDE_RECTANGLE |

        | GLTF | Create a GLB file. Used only with type CLIP_LATITUDE_LONGITUDE_RECTANGLE |

        '
      example: ZIP
    AssetArchiveOptions:
      type: object
      discriminator:
        propertyName: type
        mapping:
          FULL: '#/components/schemas/FullArchiveOptions'
          CLIP_LATITUDE_LONGITUDE_RECTANGLE: '#/components/schemas/LatitudeLongitudeClipArchiveOptions'
      properties:
        type:
          $ref: '#/components/schemas/ArchiveType'
        assetIds:
          type: array
          description: 'If creating a clipped archive this may be a single 3D Tiles asset,

            or IMAGERY and TERRAIN asset pair. All assets must be clippable. See

            the [requirements for clipping](#archive-clip-requirements).


            For a full archive of a single asset the asset must be marked as

            archivable.

            '
          items:
            $ref: '#/components/schemas/AssetIdentifier'
      required:
      - assetIds
      - type
    ArchiveMetadata:
      title: Archive Metadata
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ArchiveIdentifier'
        assetId:
          $ref: '#/components/schemas/AssetIdentifier'
        format:
          $ref: '#/components/schemas/ArchiveFormat'
        status:
          $ref: '#/components/schemas/ArchiveStatus'
        bytesArchived:
          type: integer
          description: The total number of bytes of the archive that has been processed.
          minimum: 0
          example: 1024
          readOnly: true
    ArchiveIdentifier:
      type: integer
      description: The unique identifier of this archive.
      example: 10
      readOnly: true
    ArchiveType:
      type: string
      enum:
      - FULL
      - CLIP_LATITUDE_LONGITUDE_RECTANGLE
      description: 'Describes the type of clip region for this archive:


        | Value | Description |

        | - | - |

        | FULL | The archive contains the full data of the asset.  Only valid for use with a single asset. |

        | CLIP_LATITUDE_LONGITUDE_RECTANGLE | Archive contains data around a rectangle defined by latitude and longitude. |

        '
      example: FULL
  parameters:
    archiveId:
      description: The unique identifier of a particular archive.
      in: path
      name: archiveId
      schema:
        $ref: '#/components/schemas/ArchiveIdentifier'
      required: true
    assetId:
      description: The asset identifier on which to perform the operation.
      in: path
      name: assetId
      schema:
        $ref: '#/components/schemas/AssetIdentifier'
      required: true
  headers:
    link-next-prev:
      schema:
        type: string
        description: 'An [RFC 5988](https://tools.ietf.org/html/rfc5988) formatted string with a relation type of `next` which points to the next page of data on the server, if it exists, and a relation type of `prev` which points to the previous page of data on the server, if it exists. This url should be treated as an opaque link as the actual format may change at any time.

          '
  securitySchemes:
    OAuth2:
      description: 'All Cesium ion endpoints require authentication in the form of an access token provided in the `Authorization` header of the request. ion uses the OAuth 2.0 `Bearer <your_access_token>` format.

        '
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://cesium.com/ion/oauth/
          tokenUrl: https://api.cesium.com/oauth/tokens
          scopes:
            assets:list: List the metadata for all assets available to the account.
            assets:limited-list: List the metadata for selected assets available to the account.
            assets:read: Read metadata and access the tiled data for individual assets available to the account.
            assets:write: Create, modify, and delete assets in the account.
            labels:read: List labels in the account.
            labels:write: Create, modify, and delete labels in the account.
            geocode: Enables the CesiumJS geocoder. Note geocoding via the REST API is not yet supported.
            profile:read: Read your username, email address, avatar, and storage quota.
            archives:read: List and download asset archives.
            archives:write: Create and delete asset archives.
            exports:read: List asset exports.
            exports:write: Export assets.
            tokens:read: Read token metadata and list all tokens for the account.
    AccessToken:
      description: 'A Cesium ion access token provided as a Bearer token in the `Authorization` header. An access token can be

        used anywhere an OAuth 2.0 token can, with the same scopes, and additionally supports the `tokens:write`

        scope, which is not available via OAuth 2.0 since granting a third-party OAuth client the ability to

        create, modify, and delete a user''s other tokens is out of scope for delegated access.

        '
      type: http
      scheme: bearer