Raster

Changelog

Every notable change to the Raster GraphQL API, by version.

This page tracks every notable change to the Raster GraphQL API. The format follows Keep a Changelog, and the API follows Semantic Versioning.

The API is in Alpha. Until the Beta release, minor versions may include breaking changes — review this page before upgrading an integration.

0.8.0-alpha — 2026-07-16

Added

  • Asset.variants — the renamed, canonical form of the former Asset.views field. The unfiltered assets query now returns each original's live variants inline in variants; previously only the asset query populated them. See Asset and AssetVariant.

Deprecated

  • Asset.views is renamed to Asset.variants. views still resolves as a deprecated alias returning the same [AssetVariant], so existing views { … } queries keep working; new queries should select variants. The AssetView type is renamed to AssetVariant.
  • type is deprecated on Asset, AssetVariant, and SearchHit. It is a constant — main on an asset, variant on a nested entry, null on a search hit — so it never told you anything. It still resolves to those same values, so existing selections keep working. Read parentId instead: null on an original, the parent's id on a variant. REST and MCP have dropped the field.

0.7.0-alpha — 2026-07-08

Deprecated

  • Asset.thumbUrl and Asset.thumbHighUrl are now deprecated and derived from sizesthumbUrl resolves to the standard rendition tier, thumbHighUrl to the largest, each falling back to url. They still resolve, so existing queries keep working, but new integrations should read Asset.sizes (the responsive rendition map) and blurhash for placeholders. See Asset.

Removed

  • thumbUrl removed from AssetVariant, and thumbUrl / thumbHighUrl removed from SearchHit. Both shapes expose sizes for thumbnails instead. Clients selecting those fields must drop them. Allowed under the Alpha policy at the top of this page.

0.6.0-alpha — 2026-06-03

Added

  • viewer query — resolve your key's { organizationId, organizationName, plan, libraries } from just the key (the bootstrap before any org-scoped call). See viewer.
  • asset query — fetch a single asset by id; missing / cross-library / trashed all return a 404. See asset.
  • createLibrary mutation — create a library in an org you have a key for (grants it to your key + shows it to the team); needs a key with write access. See createLibrary.
  • renameLibrary mutation — rename a library. See renameLibrary.

Changed

  • deleteAssets now moves assets to trash (soft delete) instead of deleting them immediately, matching the web app. Assets leave assets / searchAssets at once but stay recoverable and are removed after 30 days. ids returns the assets actually moved (so ids.length matches the message count); the call is idempotent (re-deleting already-trashed ids → Moved 0, ids: [], success: true). See deleteAssets.

0.5.0-alpha — 2026-05-28

Added

  • Batch-tag, untag, transfer, and re-describe assets over GraphQL. Four new mutations round out the metadata surface — agents and clients can now keep tags, descriptions, and library organization in sync without falling back to the web app:
    • tagAssets — apply up to 20 tags to up to 100 assets, returns TagAssetsResult { taggedCount: Int! }. Idempotent on pairs the asset already carries; reserved tags (index, trash) are rejected with BAD_USER_INPUT before any write. See tagAssets.
    • untagAssets — symmetric remove, returns UntagAssetsResult { untaggedCount: Int! }. See untagAssets.
    • updateAssetDescription — store a single asset's description verbatim, returns UpdateAssetDescriptionResult { assetId: ID!, description: String! }. See updateAssetDescription.
    • transferAssets — move up to 100 assets to another library in the same organization, returns TransferAssetsResult { transferredCount: Int!, sourceLibraryId: ID!, targetLibraryId: ID! }. Cross-org transfer is rejected with BAD_USER_INPUT. See transferAssets.
  • New result types: TagAssetsResult, UntagAssetsResult, UpdateAssetDescriptionResult, TransferAssetsResult.

0.4.0-alpha — 2026-05-27

Added

Removed

  • Uploader.integration removed from the schema. Clients selecting uploadedBy { integration } must drop the field. The Uploader type is now { name: String }. Allowed under the Alpha policy at the top of this page.

0.3.0-alpha — 2026-05-22

Added

  • Six new fields on Asset, exposing metadata already captured at upload. Existing queries are unaffected; clients can select the new fields when they're useful:
    • contentType: String — MIME content type (e.g. image/jpeg).
    • size: Float — file size in bytes. null for older assets.
    • created: Float — creation time as unix milliseconds.
    • updated: Float — last-modified time as unix milliseconds. Bumped on rename / tag edit / variant-edit save — useful for cache invalidation and "sort by recently updated" UX.
    • thumbHighUrl: String — higher-resolution thumbnail CDN URL for retina / 2× displays. null for older assets.
    • uploadedBy: Uploader — attribution for the user who uploaded the asset. See the Uploader change below for the new shape.
  • Two new fields on Uploader (see Removed for the breaking part of this change):
    • name: String — display name of the uploader.
    • integration: String — the source the asset was added through. null when no source is recorded.

Changed

  • More accurate HTTP status codes on errors. Several errors that previously surfaced as 400 now return their proper status — for example ORGANIZATION_NOT_FOUND is 404. The same coded error now returns the same status on both the GraphQL and REST APIs. Clients dispatching on extensions.code are unaffected; only clients switching on extensions.http.status see the new values.

Removed

  • Asset.parentId removed from the schema. Clients querying assets { parentId } must drop the field. The parentId field on AssetVariant (returned inside Asset.variants[]) is unaffected.
  • Uploader.uid removed from the schema. Clients selecting uploadedBy { uid } must drop the field and select name / integration instead. Allowed under the Alpha policy at the top of this page.

0.2.0-alpha — 2024-08-13

Added

  • assets query: page and pageSize parameters for pagination.
  • assets query: tags parameter to filter by up to 5 tags.
  • Library type: a tags field returning detailed tag information.
  • New tags query for retrieving a library's tags.

Changed

  • assets now returns both user-created and AI-generated tags.

Security

  • Hardened API key authentication checks for library access.

0.1.0-alpha — 2023-06-20

Added

  • Initial Alpha release of the Raster GraphQL API.
  • Queries for assets, libraries, and tags.
  • API key authentication.

Security

  • Introduced API key authentication for all queries.

On this page