Changelog
Notable changes to the Spellweave API.
v1.2September 2026
- Collection imports accept up to 10,000 cards per request (was 500) and are much faster: a 10,000-card request typically completes in a few seconds. See Importing Large Collections.
- Fixed:
oracle_idwas ignored onPOST /api/v1/collectionsandPOST /api/v1/collections/{id}/cards, so rows identified only byoracle_idcame backmissing_identifier. It now works, and it takes precedence overnamewhen a row has both. An unknownoracle_idis reported asnot_found, a value that is not a UUID as the new per-row reasoninvalid_oracle_id, and an empty value is ignored. - A
nullentry incardsis now reported as a per-rowmissing_identifierinstead of failing the request. - Imports for one user run one at a time. A request that cannot start within a few seconds returns
409 import_in_progresswith aRetry-Afterheader. - New optional
Idempotency-Keyheader on both collection write endpoints, so a retried import is not counted twice. - Imports are atomic: if a request fails, none of its cards are written, and
POST /api/v1/collectionsno longer leaves an empty collection behind. - A card that the user already owns in another collection no longer counts against the plan's card limit when added to a second collection, matching how the limit is measured.
v1.1September 2026
GET /api/v1/collections/{id}is now paginated. It previously returned at most 100 cards with no way to reach the rest. It acceptslimit(1-500, default 100) andcursor, and returnshas_moreandnext_cursorinmeta. Cards are ordered byoracle_idrather than by name, which keeps every page fast no matter how deep you are in a large collection.- A malformed
cursornow returns400 invalid_cursorinstead of silently returning the first page. - Documentation moved to dev.spellweave.app
v1.0March 2026
- Initial release of the Spellweave API v1
- OAuth 2.0 Authorization Code + PKCE authentication
- Read-only endpoints: user profile, collections, decks, deck stats
- Three scopes: profile:read, collections:read, decks:read
- Cursor-based pagination on list endpoints
- Per-app rate limiting (60/min, 10K/day)
- Developer registration with admin approval