Note
Updated pricing will take effect on April 10th, 2025. Check out this blog post for more information.
Appwrite provides powerful database capabilities through its Database API, allowing you to perform read and write operations across your application data. Understanding how these operations are counted and billed is essential for planning your application's scalability.
Database Operations
Database operations in Appwrite are categorized into two types:
Read Operations: Any action that retrieves data from your database, including:
Fetching documents with getDocument or listDocuments.
Write Operations: Any action that modifies data in your database, including:
Creating documents with createDocument.
Updating documents with updateDocument.
Deleting documents with deleteDocument.
How it works:
Perform database operations through the Appwrite SDK or API.
Appwrite automatically tracks and logs these operations.
Operations are counted based on the number of documents affected, not API calls.
Quotas are refreshed monthly based on your subscription plan.
For example, if you fetch a collection of 50 documents with a single API call, this counts as 50 read operations, not as a single operation. If your query returns no documents, this counts as a single operation.
Pricing
Free Plan
Included: 500,000 read operations and 250,000 write operations per month.
Overage: Not available (operations are throttled when limits are reached).
Pro and Scale Plans
Included: 1,750,000 read operations and 750,000 write operations per month.
Overage: $0.060 per 100,000 additional read operations and $0.10 per 100,000 additional write operations.
Enterprise Plan
Included: Unlimited read and write operations.
Overage: Not applicable.
For detailed information about the different pricing options and features, please visit the pricing page.
Best Practices
To optimize your database operations and control costs:
Use efficient queries: Filter data on the server side rather than retrieving large datasets and filtering client-side.
Implement pagination: Use the limit and offset parameters to retrieve only the data you need.
Monitor usage: Keep track of your database operations through the Appwrite Console.
Consider caching: Cache frequently accessed data to reduce repeated read operations.