NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2568 most downloaded on pub.dev
Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API
Last release today
07 Oct 2026
Ships on a steady schedule
a new release about every 3 weeks
Nearly every release is documented
notes for 55 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
118 releases · first in 2020
Fixed: host() reports the live connection state instead of always resolving open
host() reports the live connection state instead of always resolving openPush closed mid-connect now throws instead of silently proceedingFull Changelog: 27.1.0-rc.4...27.1.0-rc.7
One column per quarter.
Added: Analytics.createEvent for sending tracking events
Analytics.createEvent for sending tracking eventsAnalyticsTracking for app-lifecycle and screenView events, and AnalyticsObserver for automatic route trackingAdded: background push notifications render the server notification title, body, and image
notification title, body, and imagerequestNotificationPermission() on the Push servicePOST_NOTIFICATIONS itself on first background subscribeFull Changelog: 27.1.0-rc.2...27.1.0-rc.3
Added: Apps service to manage OAuth2 apps, keys, secrets, and installations
Apps service to manage OAuth2 apps, keys, secrets, and installationsOauth2 service for authorization, consent, device, PAR, and token flowsPush service for MQTT realtime push with iOS background deliveryTopic builder and a native android module for pushClient.setPushEndpoint() and Client.setPushClientId()Avatars.updatePhoto() and Avatars.deletePhoto() methodsApp, Oauth2*, and Account modelswebflow to the OAuthProvider enumFull Changelog: 27.1.0-rc.1...27.1.0-rc.2
Added: Push service over MQTT with subscribe , setForeground and onOpen / onClose / onError , plus PushSubscription.update and unsubscribe
Push service over MQTT with subscribe, setForeground and onOpen/onClose/onError, plus PushSubscription.update and unsubscribeClient.setPushEndpoint and Client.setPushClientId to configure the push broker, and the Topic helper for building topicsAnalytics.createEvent for sending tracking eventsAnalyticsTracking for app-lifecycle events and screenView, and AnalyticsObserver for automatic route trackingApps service for apps, installations, keys, secrets and scopes, and Oauth2 service for authorize, token, device flow, grants and revokeAvatars.updatePhoto and Avatars.deletePhoto, and the Account modeltotal on Account.listSessions, the Locale.list* methods and listTransactions across the database servicescurrent on Account.deleteSessions, optional duration on Account.createEmailPasswordSession, and OAuthProvider.webflowmqtt5_client, flutter_background_service and flutter_local_notifications dependencies and an Android plugin; Android builds need core library desugaringInputFile(path:) instead of being rejected as emptyMap fieldsBreaking: removed Account.listLogs and the Log , LogList models
Account.listLogs and the Log, LogList modelsClient.setDevKeyX-Appwrite-Response-Format: 2.3.0)Account.createIdTokenSession for native Apple and Google sign-in with IdTokenProvider enumAccount.createRecoveryOTP and Account.updateRecoveryOTP for code-based password recoveryAccount.createEmailVerificationOTP and Account.updateEmailVerificationOTPkakao and tiktok values to OAuthProviderpasswordPwned field on User and providerIdToken field on IdentityFull Changelog: 26.2.0...27.0.0
Added: DocumentsDB and VectorsDB services for document and vector database access
DocumentsDB and VectorsDB services for document and vector database accessuserId, emailHash and name parameters to Avatars.getPhoto()cloudflare and resend values to OAuthProvider enumauto value to ImageGravity enumX-Appwrite-Response-Format header to 2.0.0Full Changelog: 26.1.0...26.2.0
feat: deliver realtime errors to subscription streams (v26.1.0) by @ArnabChatterjee20k in #330
Full Changelog: 26.0.0...26.1.0
Breaking: Execution.functionId replaced by resourceId and resourceType , now that executions cover both functions and sites
Execution.functionId replaced by resourceId and resourceType, now that executions cover both functions and sitesavatars.getPhoto returning the user's best available profile photohuggingface OAuth providercustom authentication factorExecutionResourceType enum and resourceType attribute on the Execution modelFormatExceptiondevice_info_plus to <14.0.0 and package_info_plus to <11.0.0Full Changelog: 25.4.0...26.0.0
Added: Organization service for managing app installations
Organization service for managing app installationsTeams servicelistConsents, getConsent, deleteConsentlistConsentTokens, getConsentToken, deleteConsentTokenfolder parameter to storage.createFile, and folder and key to FileFull Changelog: 25.3.0...25.4.0
Added: Client.setBearer() method for OAuth access token authentication
Client.setBearer() method for OAuth access token authenticationQuery.vectorDot, Query.vectorCosine, Query.vectorEuclidean vector similarity query methodsappwrite value to OAuthProvider enumLocale model fields: city, timeZone, postalCode, latitude, longitude, ISP and connection detailsLog model docs now include hidden user typeFull Changelog: 25.2.0...25.3.0
Added: Realtime connections now authenticate with the configured JWT.
impersonateUserId on avatars and storage file requests.Full Changelog: 25.1.0...25.2.0
Added: Email metadata fields to User ( emailCanonical , emailIsFree , emailIsDisposable , emailIsCorporate , emailIsCanonical ).
User (emailCanonical, emailIsFree, emailIsDisposable, emailIsCorporate, emailIsCanonical).Membership.userAccessedAt field.accept header matching each endpoint's response type.Client.call() no longer sends the x-appwrite-project header by default.Full Changelog: 25.0.0...25.1.0
Breaking: avatars.getScreenshot theme parameter now uses the BrowserTheme enum
avatars.getScreenshot theme parameter now uses the BrowserTheme enumpresences service methodsBrowserTheme enumPresence model is now concrete and adds a metadata fieldFull Changelog: 24.2.0...25.0.0
feat: support concurrent chunk uploads by @TorstenDittmann in #314
Full Changelog: 24.1.1...24.2.0
Fixed: Removed Advisor service and Insight , InsightCTA , InsightList , Report , ReportList models (admin-only endpoints, not intended for client SDKs
Advisor service and Insight, InsightCTA, InsightList, Report, ReportList models (admin-only endpoints, not intended for client SDKs)sizeActual field to File modelFull Changelog: 24.1.0...24.1.1
Added: Realtime presences channel and RealtimePresence types for presence subscriptions
presences channel and RealtimePresence types for presence subscriptionsAdvisor and Presences servicesInsight, Presence, and Report models with list variantsfusionauth, keycloak, and kick providers to OAuthProvider enumX-Appwrite-Response-Format header to 1.9.5Full Changelog: 24.0.0...24.1.0
Breaking: Added unsubscribe() , update() , and close() to Realtime subscriptions
unsubscribe(), update(), and close() to Realtime subscriptionsuserPhone field to Membership modelX-Appwrite-Response-Format header to 1.9.2Full Changelog: 23.1.0...24.0.0
Added x OAuth provider to OAuthProvider enum
x OAuth provider to OAuthProvider enumuserType field to Log modelgetHeaders() method to ClientX-Appwrite-Response-Format header to 1.9.1[BREAKING] Changed $sequence type from int to String for Row and Document models
$sequence type from int to String for Row and Document modelssetImpersonateUserId(), setImpersonateUserEmail(), setImpersonateUserPhone() on Client, ClientBrowser, and ClientIOimpersonator and impersonatorUserId optional fields to User modelLog model field descriptions to clarify impersonation behavior for userId, userEmail, userNameX-Appwrite-Response-Format header to 1.9.01.9.x and dependency example to ^23.0.0Breaking: Channel API no longer defaults to '*'; explicit IDs required.
Nothing published for this version
Nothing published for this version
Add queries parameter to Realtime subscriptions for filtering events
queries parameter to Realtime subscriptions for filtering eventsRoles enum removed from Teams service; roles parameter now accepts List<String>Breaking change: Output enum has been removed; use ImageFormat instead.
permissions: List<BrowserPermission>).Output enum has been removed; use ImageFormat instead.Channel helpers for Realtime.Fix boolean parameter not handled correctly in Client requests
Fix OAuth2 browser infinite redirect issue
Fix passing of null values and stripping only non-nullable optional parameters from the request body
null values and stripping only non-nullable optional parameters from the request bodygetScreenshot method to Avatars serviceTheme, Timezone and Output enumsAdd total parameter to list queries allowing skipping counting rows in a table for improved performance
total parameter to list queries allowing skipping counting rows in a table for improved performanceOperator class for atomic modification of rows via update, bulk update, upsert, and bulk upsert operationsWiden device_info_plus and package_info_plus dependencies to allow for newer versions for Android 15+ support
device_info_plus and package_info_plus dependencies to allow for newer versions for Android 15+ supportCHUNK_SIZE constant to chunkSize@override annotation to toMap method in all model classesAdd transaction support for Databases and TablesDB
Deprecate createVerification method in Account service
createVerification method in Account servicecreateEmailVerification method in Account serviceNothing published for this version
* Add orderRandom query support
orderRandom query supportRename CreditCard enum value unionChinaPay to unionPay
CreditCard enum value unionChinaPay to unionPayDeprecated updateMagicURLSession
notContainsnotSearchnotBetweennotStartsWithnotEndsWithcreatedBeforecreatedAfterupdatedBeforeupdatedAfterupdateMagicURLSessionupdatePhoneSessionThe TablesDB service is the new recommended way to work with databases. Existing databases/collections/attributes/documents can be managed using the TablesDB service. Existing Databases service will continue to work, but new features may only be added to the TablesDB service.
Add incrementDocumentAttribute and decrementDocumentAttribute support to Databases service
incrementDocumentAttribute and decrementDocumentAttribute support to Databases servicegif support to ImageFormat enumsequence support to Document modelAdd gif support to ImageFormat enum
gif support to ImageFormat enumconvertTo() method in Document and Preferences models to correctly accept Map<String, dynamic>Fix devKeys support by conditionally including credentials during requests
devKeys support by conditionally including credentials during requestsUpdate flutter_web_auth_2 dependency to version 4.1.0
flutter_web_auth_2 dependency to version 4.1.0auth.html example in README.md to align with flutter_web_auth_2 documentationflutter_web_auth_2 version 4.1.0Add setDevKey method to Client service
setDevKey method to Client serviceupsertDocument method to Databases serviceRemove Gif from ImageFormat enum
Gif from ImageFormat enumsearch param from listExecutions methodtoken param to getFilePreview and getFileView for File tokens usagequality for getFilePreview from 0 to -1Avoid setting empty User-Agent header and only encode it when present.
User-Agent header and only encode it when present.https://<REGION>.cloud.appwrite.io/v1.Removed Content-Type header from GET and HEAD requests.
Content-Type header from GET and HEAD requests.setEndpoint and setEndPointRealtime methods.Encode User-Agent header to fix invalid HTTP header field value error.
User-Agent header to fix invalid HTTP header field value error.AppwriteException's response parameter from a dynamic object to an optional string (?String).Fixed issues with chunkedUpload method.
chunkedUpload method.Nothing published for this version
Nothing published for this version
Nothing published for this version
You can find the new syntax for breaking changes in the Appwrite API references. Select version 1.6.x.
scheduledAt attribute to Execution response modelscheduledAt parameter to createExecution(): Enables creating a delayed executionotp parameter from deleteMFAAuthenticator.You can find the new syntax for breaking changes in the Appwrite API references. Select version 1.6.x.
Please note: This version is compatible with Appwrite 1.6 and later only. If you do not update your Appwrite SDK, old SDKs will not break your app. Appwrite APIs are backwards compatible.
Nothing published for this version
Nothing published for this version
Fixed concurrent modification error when closing realtime socket
* Upgrade dependencies
Fixed realtime multiple subscription issues
Fixed parameters using enum types
Added messaging service support
Nothing published for this version
* Fix between queries
Parameter url is now optional in the createMembership endpoint
url is now optional in the createMembership endpointYour coding agent can read these notes before it upgrades. Set up the MCP server →