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.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 / view-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 onAssetView(returned insideAsset.views[]) 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.