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 formerAsset.viewsfield. The unfilteredassetsquery now returns each original's live variants inline invariants; previously only theassetquery populated them. SeeAssetandAssetVariant.
Deprecated
Asset.viewsis renamed toAsset.variants.viewsstill resolves as a deprecated alias returning the same[AssetVariant], so existingviews { … }queries keep working; new queries should selectvariants. TheAssetViewtype is renamed toAssetVariant.typeis deprecated onAsset,AssetVariant, andSearchHit. It is a constant —mainon an asset,varianton a nested entry,nullon a search hit — so it never told you anything. It still resolves to those same values, so existing selections keep working. ReadparentIdinstead:nullon 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.thumbUrlandAsset.thumbHighUrlare now deprecated and derived fromsizes—thumbUrlresolves to the standard rendition tier,thumbHighUrlto the largest, each falling back tourl. They still resolve, so existing queries keep working, but new integrations should readAsset.sizes(the responsive rendition map) andblurhashfor placeholders. SeeAsset.
Removed
thumbUrlremoved fromAssetVariant, andthumbUrl/thumbHighUrlremoved fromSearchHit. Both shapes exposesizesfor 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
viewerquery — resolve your key's{ organizationId, organizationName, plan, libraries }from just the key (the bootstrap before any org-scoped call). Seeviewer.assetquery — fetch a single asset by id; missing / cross-library / trashed all return a 404. Seeasset.createLibrarymutation — 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. SeecreateLibrary.renameLibrarymutation — rename a library. SeerenameLibrary.
Changed
deleteAssetsnow moves assets to trash (soft delete) instead of deleting them immediately, matching the web app. Assets leaveassets/searchAssetsat once but stay recoverable and are removed after 30 days.idsreturns the assets actually moved (soids.lengthmatches the message count); the call is idempotent (re-deleting already-trashed ids →Moved 0,ids: [],success: true). SeedeleteAssets.
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, returnsTagAssetsResult { taggedCount: Int! }. Idempotent on pairs the asset already carries; reserved tags (index,trash) are rejected withBAD_USER_INPUTbefore any write. SeetagAssets.untagAssets— symmetric remove, returnsUntagAssetsResult { untaggedCount: Int! }. SeeuntagAssets.updateAssetDescription— store a single asset's description verbatim, returnsUpdateAssetDescriptionResult { assetId: ID!, description: String! }. SeeupdateAssetDescription.transferAssets— move up to 100 assets to another library in the same organization, returnsTransferAssetsResult { transferredCount: Int!, sourceLibraryId: ID!, targetLibraryId: ID! }. Cross-org transfer is rejected withBAD_USER_INPUT. SeetransferAssets.
- New result types:
TagAssetsResult,UntagAssetsResult,UpdateAssetDescriptionResult,TransferAssetsResult.
0.4.0-alpha — 2026-05-27
Added
- New
searchAssetsquery — search assets across the libraries the API key authorizes. ReturnsSearchResult { hits: [SearchHit!]!, found: Int!, page: Int! }. EachSearchHitextendsAssetwith optionalhighlights(SearchHitHighlights) andscore. SeesearchAssetsand the Objects reference. - New types
SearchResult,SearchHit,SearchHitHighlights.
Removed
Uploader.integrationremoved from the schema. Clients selectinguploadedBy { integration }must drop the field. TheUploadertype 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.nullfor 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.nullfor older assets.uploadedBy: Uploader— attribution for the user who uploaded the asset. See theUploaderchange 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.nullwhen no source is recorded.
Changed
- More accurate HTTP status codes on errors. Several errors that
previously surfaced as
400now return their proper status — for exampleORGANIZATION_NOT_FOUNDis404. The same coded error now returns the same status on both the GraphQL and REST APIs. Clients dispatching onextensions.codeare unaffected; only clients switching onextensions.http.statussee the new values.
Removed
Asset.parentIdremoved from the schema. Clients queryingassets { parentId }must drop the field. TheparentIdfield onAssetVariant(returned insideAsset.variants[]) is unaffected.Uploader.uidremoved from the schema. Clients selectinguploadedBy { uid }must drop the field and selectname/integrationinstead. Allowed under the Alpha policy at the top of this page.
0.2.0-alpha — 2024-08-13
Added
assetsquery:pageandpageSizeparameters for pagination.assetsquery:tagsparameter to filter by up to 5 tags.Librarytype: atagsfield returning detailed tag information.- New
tagsquery for retrieving a library's tags.
Changed
assetsnow 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.