- Breaking: Renamed
Themeenum toBrowserTheme, changingavatars.getScreenshot()themeparam type. - Breaking: Made
presenceslist/get/upsert/updatenon-generic and removedModels.DefaultPresence. - Added: Email metadata fields to
User(emailCanonical,emailIsFree,emailIsDisposable,emailIsCorporate,emailIsCanonical). - Added:
Membership.userAccessedAtandPresence.metadatafields. - Fixed: Removed
Client.setKey()andClient.setForwardedUserAgent()methods that were exposed on the client SDK by mistake. - Fixed:
toString()on response objects now returns valid JSON viaJSONbig.stringify, preserving large integers. - Updated: Requests now send an explicit
acceptheader matching each endpoint's response type.
- Fixed: Removed
Advisorservice andInsight,InsightCTA,InsightList,Report,ReportListmodels (admin-only endpoints, not intended for client SDKs) - Added:
sizeActualfield toFilemodel
- Added: Realtime
presenceschannel andRealtimePresencetypes for presence subscriptions - Added:
AdvisorandPresencesservices - Added:
Insight,Presence, andReportmodels with list variants - Added:
fusionauth,keycloak, andkickproviders toOAuthProviderenum - Added:
Client.setCookie()method for forwarding cookies in server-side runtimes - Updated:
X-Appwrite-Response-Formatheader to1.9.5
- Breaking: Added
unsubscribe(),update(), andclose()to Realtime subscriptions - Added: Added
userPhonefield toMembershipmodel - Updated: Updated
X-Appwrite-Response-Formatheader to1.9.2
- Added
xOAuth provider toOAuthProviderenum - Added
userTypefield toLogmodel - Updated
X-Appwrite-Response-Formatheader to1.9.1 - Updated TTL description for list caching in Databases and TablesDB
- Updated dev dependencies: Rollup 3→4, related plugin upgrades
- Fixed: Added
filesfield topackage.jsonto publish only built artifacts to npm
- Added: Added
getHeaders()method toClientto expose current request headers - Added: Added
package-lock.jsonto track dependency lockfile in version control
- [BREAKING] Changed
$sequencetype fromnumbertostringforRowandDocumentmodels - Added impersonation support:
setImpersonateUserId(),setImpersonateUserEmail(),setImpersonateUserPhone()onClient - Added
impersonatorandimpersonatorUserIdoptional fields toUsermodel - Added custom
toString()on response data objects usingJSONbig.stringifyto fix BigInt serialization - Updated
Logmodel field descriptions to clarify impersonation behavior foruserId,userEmail,userName - Updated
X-Appwrite-Response-Formatheader to1.9.0 - Updated devDependencies: Rollup 2→3, TypeScript 4.7→5.7, and related plugin upgrades
- Breaking: Made Channel.collection() require id parameter
- Breaking: Made Channel.table() require id parameter
- Breaking: Root factory methods require explicit IDs (databases, executions, tablesdb, bucket, function, team, membership)
- Added ttl option to listDocuments and listRows for caching
- Fix very large double values (for example 1.7976931348623157e+308) from being expanded into giant integer literals
- Added Query.containsAny(attribute, value[]) to filter resources where the attribute contains any of the given values.
- Added Query.containsAll(attribute, value[]) to filter resources where the attribute contains all of the given values.
- Updated Query.contains documentation to clarify behavior: string attributes are matched by substring, and for array attributes use containsAny/containsAll.
- Add
upsertmethod to RealtimeChannelshelper class - Fix
bignumber.jsbundler conflict with Next.js Turbopack by removing direct dependency in favor of transitive dependency fromjson-bigint
- Add
queriesparameter toRealtime.subscribe()andclient.subscribe()for server-side query filtering - Add slot-based subscription management with subscription ID mappings from backend
- Add
subscriptionsfield toRealtimeResponseEventtype - Fix
Rolesenum removed from Teams service;rolesparameter now acceptsstring[] - Fix parameter detection in overloaded methods to check for optional params (Account, Avatars, Graphql)
- Fix WebSocket connection handling with stale connection guards and improved close/reconnect logic
- Fix doc examples wrapped in markdown code fences
- Add array-based enum parameters (e.g.,
permissions: BrowserPermission[]). - Breaking change:
Outputenum has been removed; useImageFormatinstead. - Add
Channelhelpers for Realtime.
- Add
getScreenshotmethod toAvatarsservice - Add
Theme,TimezoneandOutputenums
- Add
totalparameter to list queries allowing skipping counting rows in a table for improved performance - Add
Operatorclass for atomic modification of rows via update, bulk update, upsert, and bulk upsert operations
- Add new
Realtimeservice with methods for subscribing to channels and receiving messages - Fix
client.setSessionnot working when using realtime - Deprecate
client.subscribemethod in favor ofRealtimeservice
Note: Deprecated methods are still available for backwards compatibility, but might be removed in future versions.
- Add transaction support for Databases and TablesDB
- Deprecate
createVerificationmethod inAccountservice - Add
createEmailVerificationmethod inAccountservice
- Add
incrementDocumentAttributeanddecrementDocumentAttributesupport toDatabasesservice - Add
gifsupport toImageFormatenum - Fix undefined
fileParamerror inchunkedUploadmethod - Fix autocompletion not working for
Documentmodel even when generic is passed
- Fix using
devKeysresulting in an error by conditionally removing credentials
- Add
devKeyssupport toClientservice - Add
upsertDocumentsupport toDatabasesservice
- Add
<REGION>to doc examples due to the new multi region endpoints - Remove
Giffrom ImageFormat enum - Remove
searchparam fromlistExecutionsmethod - Add
tokenparam togetFilePreviewandgetFileViewfor File tokens usage - Improve CORS error catching in
client.callmethod
- Fix requests failing by removing
Content-Typeheader fromGETandHEADrequests
- Remove unnecessary titles from method descriptions
- Fix duplicate adding of payload params
- Remove unnecessary awaits and asyncs
- Ensure
AppwriteExceptionresponse is always string
- Fix pong response & chunked upload
- Add
pingsupport toRealtimeservice