Appwrite Databases API

The Databases service allows you to create structured collections of documents, query and filter lists of documents. 70 operations across 51 paths in the Appwrite 2.0.0 OpenAPI.

Operations 70

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /databases List databases in the project · List databases #
Ask an LLM
“Which databases exist in my Appwrite project?”
“Can I search my databases by name?”
Tell an agent
List all databases in this project.
Search my databases for {search}.
POST /databases Create a database · Create database #
Ask an LLM
“How do I create a new database to hold my app's collections?”
“Can I create a database in a disabled state?”
Tell an agent
Create database {databaseId} named {name}.
Create a new database called {name} with ID {databaseId} and enabled set to {enabled}.
GET /databases/transactions List transactions across all databases · List transactions #
Ask an LLM
“Which database transactions are currently open in my project?”
“Can I filter the list of transactions with queries?”
Tell an agent
List all database transactions.
List transactions matching {queries}.
POST /databases/transactions Start a database transaction · Create transaction #
Ask an LLM
“How do I make several document writes succeed or fail together?”
“Can I set a time-to-live on a new transaction?”
Tell an agent
Start a new database transaction.
Open a transaction that expires after {ttl} seconds.
GET /databases/transactions/{transactionId} Get a database transaction · Get transaction #
Ask an LLM
“What is the status of a particular transaction?”
“Can I look up a transaction by its ID?”
Tell an agent
Get transaction {transactionId}.
Show whether transaction {transactionId} is still pending.
PATCH /databases/transactions/{transactionId} Commit or roll back a database transaction · Update transaction #
Ask an LLM
“How do I commit all the operations staged in a transaction?”
“Can I roll back a transaction instead of committing it?”
Tell an agent
Commit transaction {transactionId}.
Roll back transaction {transactionId} with rollback set to {rollback}.
DELETE /databases/transactions/{transactionId} Delete a database transaction · Delete transaction #
Ask an LLM
“How do I delete a transaction record I no longer need?”
“Can a transaction be removed by its ID?”
Tell an agent destructive · confirm first
Delete transaction {transactionId}.
Remove database transaction {transactionId}.
POST /databases/transactions/{transactionId}/operations Stage multiple operations in a transaction · Create operations #
Ask an LLM
“Can I add a batch of document operations to an open transaction in one call?”
“How do I queue several writes inside a transaction before committing?”
Tell an agent
Add operations {operations} to transaction {transactionId}.
Stage these operations in transaction {transactionId}: {operations}.
GET /databases/{databaseId} Get a database's metadata · Get database #
Ask an LLM
“What are the settings of one specific database?”
“Can I fetch a database by its ID to see whether it is enabled?”
Tell an agent
Get database {databaseId}.
Show the metadata for database {databaseId}.
PUT /databases/{databaseId} Rename or enable a database · Update database #
Ask an LLM
“How do I rename an existing database?”
“Can I disable a database so clients can no longer access it?”
Tell an agent
Rename database {databaseId} to {name}.
Set enabled to {enabled} on database {databaseId}.
DELETE /databases/{databaseId} Delete a database · Delete database #
Ask an LLM
“How do I permanently delete a database and all of its collections?”
“Which API key scope do I need to delete a database?”
Tell an agent destructive · confirm first
Delete database {databaseId}.
Permanently remove database {databaseId} and everything in it.
GET /databases/{databaseId}/collections List collections in a database · List collections #
Ask an LLM
“What collections are in one of my databases?”
“Can I search a database's collections by name?”
Tell an agent
List collections in database {databaseId}.
Search database {databaseId} for collections named {search}.
POST /databases/{databaseId}/collections Create a collection in a database · Create collections #
Ask an LLM
“How do I add a new collection to a database?”
“Can I define attributes and indexes at the same time I create a collection?”
Tell an agent
Create collection {collectionId} named {name} in database {databaseId}.
Create collection {name} ({collectionId}) in {databaseId} with attributes {attributes} and indexes {indexes}.
GET /databases/{databaseId}/collections/{collectionId} Get a collection's metadata · Get collection #
Ask an LLM
“What permissions and security settings does a collection have?”
“Can I look up one collection by its ID?”
Tell an agent
Get collection {collectionId} in database {databaseId}.
Show the settings of collection {collectionId} in {databaseId}.
PUT /databases/{databaseId}/collections/{collectionId} Update a collection's name, permissions or security · Update collection #
Ask an LLM
“How do I change who can read and write a collection?”
“Can I purge a collection's cache when updating it?”
Tell an agent
Rename collection {collectionId} in {databaseId} to {name}.
Set permissions {permissions} on collection {collectionId} in database {databaseId}.
DELETE /databases/{databaseId}/collections/{collectionId} Delete a collection · Delete collection #
Ask an LLM
“How do I delete an entire collection including its documents?”
“Who has permission to delete a collection?”
Tell an agent destructive · confirm first
Delete collection {collectionId} from database {databaseId}.
Drop collection {collectionId} in {databaseId}.
GET /databases/{databaseId}/collections/{collectionId}/attributes List a collection's attributes · List attributes #
Ask an LLM
“What fields are defined on a collection?”
“Can I filter a collection's attributes with queries?”
Tell an agent
List the attributes of collection {collectionId} in {databaseId}.
Show attributes of {collectionId} in {databaseId} matching {queries}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/bigint Add a bigint field to a collection · Create bigint attribute #
Ask an LLM
“Which attribute type holds very large whole numbers in a collection?”
“Can a bigint attribute have minimum and maximum bounds?”
Tell an agent
Add bigint attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create bigint field {key} on {collectionId} ({databaseId}) with required {required}, min {min} and max {max}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/bigint/{key} Change an existing bigint field · Update bigint attribute #
Ask an LLM
“Can I change the bounds of a bigint field that already exists?”
“Does changing a bigint field's default affect documents already saved?”
Tell an agent
Update bigint attribute {key} on {collectionId} in {databaseId} to default {default}.
Set the max of existing bigint field {key} in {collectionId} ({databaseId}) to {max}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/boolean Add a true/false field to a collection · Create boolean attribute #
Ask an LLM
“What's the way to add a yes/no flag field to my documents?”
“Can a boolean attribute have a default value?”
Tell an agent
Add boolean attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create true/false field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key} Change an existing boolean field · Update boolean attribute #
Ask an LLM
“Can I flip the default of a boolean field I already created?”
“Is it possible to rename an existing boolean attribute?”
Tell an agent
Change the default of boolean attribute {key} on {collectionId} in {databaseId} to {default}.
Rename boolean field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/datetime Add a date-time field to a collection · Create datetime attribute #
Ask an LLM
“Is there an attribute for ISO 8601 timestamps on a collection?”
“Can a datetime attribute store an array of dates?”
Tell an agent
Add datetime attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create date-time field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key} Change an existing datetime field · Update datetime attribute #
Ask an LLM
“Can I change the default timestamp on a datetime field that already exists?”
“How do I rename a datetime attribute?”
Tell an agent
Change the default of datetime attribute {key} on {collectionId} in {databaseId} to {default}.
Rename datetime field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/email Add an email address field to a collection · Create email attribute #
Ask an LLM
“Can I add a field that only accepts valid email addresses?”
“Can an email attribute hold a list of addresses?”
Tell an agent
Add email attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create email field {key} on {collectionId} ({databaseId}) as an array {array}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/email/{key} Change an existing email field · Update email attribute #
Ask an LLM
“Can I set a new default address on an email field already in use?”
“How do I make an existing email attribute required?”
Tell an agent
Change the default of email attribute {key} on {collectionId} in {databaseId} to {default}.
Set required to {required} on email field {key} in {collectionId} ({databaseId}).
POST /databases/{databaseId}/collections/{collectionId}/attributes/enum Add a fixed-choice enum field to a collection · Create enum attribute #
Ask an LLM
“How do I restrict a field to a whitelist of allowed values?”
“Can an enum attribute have a default choice?”
Tell an agent
Add enum attribute {key} with values {elements} to {collectionId} in {databaseId}, required {required}.
Create a choice field {key} on {collectionId} ({databaseId}) allowing only {elements}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/enum/{key} Change the allowed values of an enum field · Update enum attribute #
Ask an LLM
“Can I add new allowed values to an enum field that already exists?”
“How do I change the default choice of an existing enum attribute?”
Tell an agent
Set the allowed values of enum attribute {key} on {collectionId} in {databaseId} to {elements}.
Change the default of existing enum field {key} in {collectionId} ({databaseId}) to {default}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/float Add a decimal number field to a collection · Create float attribute #
Ask an LLM
“Which field type should I use for prices or other decimal numbers?”
“Can a float attribute enforce a minimum and maximum value?”
Tell an agent
Add float attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create decimal field {key} on {collectionId} ({databaseId}) between {min} and {max}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/float/{key} Change an existing float field · Update float attribute #
Ask an LLM
“Can I widen the allowed range of a decimal field already in use?”
“How do I change the default on an existing float attribute?”
Tell an agent
Change the default of float attribute {key} on {collectionId} in {databaseId} to {default}.
Set the min of existing float field {key} in {collectionId} ({databaseId}) to {min}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/integer Add a whole number field to a collection · Create integer attribute #
Ask an LLM
“How do I add a counter or quantity field that holds integers?”
“Can an integer attribute be limited to a range of values?”
Tell an agent
Add integer attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create integer field {key} on {collectionId} ({databaseId}) from {min} to {max}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/integer/{key} Change an existing integer field · Update integer attribute #
Ask an LLM
“Can I change the range of an integer field that already exists?”
“Will a new default on an integer attribute backfill existing documents?”
Tell an agent
Change the default of integer attribute {key} on {collectionId} in {databaseId} to {default}.
Set existing integer field {key} in {collectionId} ({databaseId}) to allow {min} through {max}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/ip Add an IP address field to a collection · Create IP address attribute #
Ask an LLM
“Is there a field type that validates IP addresses?”
“Can an IP address attribute store multiple addresses?”
Tell an agent
Add IP address attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create IP field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/ip/{key} Change an existing IP address field · Update IP address attribute #
Ask an LLM
“Can I change the default IP on an IP address field already created?”
“How do I rename an existing IP attribute?”
Tell an agent
Change the default of IP attribute {key} on {collectionId} in {databaseId} to {default}.
Rename IP address field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/line Add a geometric line field to a collection · Create line attribute #
Ask an LLM
“How do I store a route or path as a geometric line in my documents?”
“Can a line attribute have a default geometry?”
Tell an agent
Add line attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create geo line field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/line/{key} Change an existing line geometry field · Update line attribute #
Ask an LLM
“Can I change the default line geometry on an existing field?”
“How do I rename a line attribute I already created?”
Tell an agent
Change the default of line attribute {key} on {collectionId} in {databaseId} to {default}.
Rename geo line field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/longtext Add a long text field to a collection · Create longtext attribute #
Ask an LLM
“How do I add a field big enough for article bodies or long notes?”
“Can a longtext attribute be encrypted at rest?”
Tell an agent
Add longtext attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create longtext field {key} on {collectionId} ({databaseId}) with encryption {encrypt}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/longtext/{key} Change an existing longtext field · Update longtext attribute #
Ask an LLM
“Can I set a new default value on a longtext field already in use?”
“How do I rename an existing longtext attribute?”
Tell an agent
Change the default of longtext attribute {key} on {collectionId} in {databaseId} to {default}.
Rename longtext field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/mediumtext Add a medium-length text field to a collection · Create mediumtext attribute #
Ask an LLM
“What attribute should I use for descriptions longer than a short string but not huge?”
“Can a mediumtext attribute be encrypted?”
Tell an agent
Add mediumtext attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create mediumtext field {key} on {collectionId} ({databaseId}) with encryption {encrypt}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/mediumtext/{key} Change an existing mediumtext field · Update mediumtext attribute #
Ask an LLM
“Can I change the default of a mediumtext field I already have?”
“How do I rename an existing mediumtext attribute?”
Tell an agent
Change the default of mediumtext attribute {key} on {collectionId} in {databaseId} to {default}.
Rename mediumtext field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/point Add a geographic point field to a collection · Create point attribute #
Ask an LLM
“Can each document store a location as a coordinate point?”
“Can a point attribute have a default location?”
Tell an agent
Add point attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create geo point field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/point/{key} Change an existing point geometry field · Update point attribute #
Ask an LLM
“Can I change the default coordinates on a point field already created?”
“How do I rename an existing point attribute?”
Tell an agent
Change the default of point attribute {key} on {collectionId} in {databaseId} to {default}.
Rename geo point field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/polygon Add a geographic polygon field to a collection · Create polygon attribute #
Ask an LLM
“How do I store an area such as a delivery zone as a polygon?”
“Can a polygon attribute have a default shape?”
Tell an agent
Add polygon attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create geo polygon field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/polygon/{key} Change an existing polygon geometry field · Update polygon attribute #
Ask an LLM
“Can I change the default shape of a polygon field already in use?”
“How do I rename an existing polygon attribute?”
Tell an agent
Change the default of polygon attribute {key} on {collectionId} in {databaseId} to {default}.
Rename geo polygon field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/relationship Link two collections with a relationship field · Create relationship attribute #
Ask an LLM
“How do I relate documents in one collection to documents in another?”
“Can a relationship be two-way, and what happens to related documents on delete?”
Tell an agent
Create a {type} relationship from {collectionId} in {databaseId} to collection {relatedCollectionId}.
Link {collectionId} ({databaseId}) to {relatedCollectionId} as a two-way {type} relationship with on-delete {onDelete}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/relationship/{key} Change the on-delete behaviour of a relationship · Update relationship attribute #
Ask an LLM
“Can I switch an existing relationship to cascade deletes to related documents?”
“How do I rename a relationship attribute that already exists?”
Tell an agent
Set on-delete behaviour of relationship {key} on {collectionId} in {databaseId} to {onDelete}.
Rename relationship field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/string Add a sized string field to a collection · Create string attribute #
Ask an LLM
“How do I add a text field with a maximum character size?”
“Can a string attribute be encrypted or hold an array of values?”
Tell an agent
Add string attribute {key} of size {size} to collection {collectionId} in {databaseId}, required {required}.
Create a {size}-character string field {key} on {collectionId} ({databaseId}), encrypted {encrypt}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/string/{key} Change an existing string field · Update string attribute #
Ask an LLM
“Can I increase the size limit of a string field that already has data?”
“How do I change the default text of an existing string attribute?”
Tell an agent
Change the default of string attribute {key} on {collectionId} in {databaseId} to {default}.
Resize existing string field {key} in {collectionId} ({databaseId}) to {size} characters.
POST /databases/{databaseId}/collections/{collectionId}/attributes/text Add a text field to a collection · Create text attribute #
Ask an LLM
“When should I add a plain text attribute instead of a sized string?”
“Can a text attribute be encrypted at rest?”
Tell an agent
Add text attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create text field {key} on {collectionId} ({databaseId}) with encryption {encrypt}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/text/{key} Change an existing text field · Update text attribute #
Ask an LLM
“Can I change the default of a text field already in use?”
“How do I rename an existing text attribute?”
Tell an agent
Change the default of text attribute {key} on {collectionId} in {databaseId} to {default}.
Rename text field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/url Add a URL field to a collection · Create URL attribute #
Ask an LLM
“Is there a field type that only accepts valid web links?”
“Can a URL attribute hold a list of links per document?”
Tell an agent
Add URL attribute {key} to collection {collectionId} in {databaseId}, required {required}.
Create link field {key} on {collectionId} ({databaseId}) defaulting to {default}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/url/{key} Change an existing URL field · Update URL attribute #
Ask an LLM
“Can I change the default link on a URL field already created?”
“How do I rename an existing URL attribute?”
Tell an agent
Change the default of URL attribute {key} on {collectionId} in {databaseId} to {default}.
Rename link field {key} in {collectionId} ({databaseId}) to {newKey}.
POST /databases/{databaseId}/collections/{collectionId}/attributes/varchar Add a varchar field to a collection · Create varchar attribute #
Ask an LLM
“Can I add a variable-length varchar field with a size limit?”
“Can a varchar attribute be encrypted?”
Tell an agent
Add varchar attribute {key} of size {size} to collection {collectionId} in {databaseId}, required {required}.
Create varchar({size}) field {key} on {collectionId} ({databaseId}), encrypted {encrypt}, required {required}.
PATCH /databases/{databaseId}/collections/{collectionId}/attributes/varchar/{key} Change an existing varchar field · Update varchar attribute #
Ask an LLM
“Can I enlarge a varchar field that already holds data?”
“How do I change the default of an existing varchar attribute?”
Tell an agent
Change the default of varchar attribute {key} on {collectionId} in {databaseId} to {default}.
Resize existing varchar field {key} in {collectionId} ({databaseId}) to {size}.
GET /databases/{databaseId}/collections/{collectionId}/attributes/{key} Get one attribute of a collection · Get attribute #
Ask an LLM
“What type, default and status does a particular collection field have?”
“Can I check whether a newly added attribute is available yet?”
Tell an agent
Get attribute {key} of collection {collectionId} in {databaseId}.
Show the definition of field {key} in {collectionId} ({databaseId}).
DELETE /databases/{databaseId}/collections/{collectionId}/attributes/{key} Delete an attribute from a collection · Delete attribute #
Ask an LLM
“How do I remove a field of any type from a collection?”
“Is deleting a collection attribute permanent?”
Tell an agent destructive · confirm first
Delete attribute {key} from collection {collectionId} in {databaseId}.
Remove field {key} from {collectionId} ({databaseId}).
GET /databases/{databaseId}/collections/{collectionId}/documents List documents in a collection · List documents #
Ask an LLM
“What documents are stored in one of my collections?”
“Can I filter and paginate documents using query parameters?”
Tell an agent
List documents in collection {collectionId} of database {databaseId}.
List documents in {collectionId} of {databaseId} filtered by {queries}.
POST /databases/{databaseId}/collections/{collectionId}/documents Create a document in a collection · Create document #
Ask an LLM
“How do I save a new record to a collection?”
“Can I set read and write permissions on a document when creating it?”
Tell an agent
Create document {documentId} in collection {collectionId} of {databaseId} with data {data}.
Add a new document {documentId} with {data} and permissions {permissions} to {collectionId} in {databaseId}.
PUT /databases/{databaseId}/collections/{collectionId}/documents Bulk create or update documents · Upsert documents #
Ask an LLM
“How do I insert or update many documents in a single request?”
“Can a bulk upsert of documents be done within a transaction?”
Tell an agent
Upsert documents {documents} into collection {collectionId} of {databaseId}.
Bulk upsert {documents} into {collectionId} in {databaseId} as part of transaction {transactionId}.
PATCH /databases/{databaseId}/collections/{collectionId}/documents Bulk update documents matching a query · Update documents #
Ask an LLM
“Can I change a field on every document that matches a filter at once?”
“What happens if I bulk update documents with no queries?”
Tell an agent
Set {data} on all documents in {collectionId} of {databaseId} matching {queries}.
Apply {data} to every document in collection {collectionId} of {databaseId}.
DELETE /databases/{databaseId}/collections/{collectionId}/documents Bulk delete documents matching a query · Delete documents #
Ask an LLM
“How do I delete every document that matches a filter in one call?”
“What happens if I bulk delete documents without passing any queries?”
Tell an agent destructive · confirm first
Delete documents in {collectionId} of {databaseId} matching {queries}.
Clear all documents out of collection {collectionId} in database {databaseId}.
GET /databases/{databaseId}/collections/{collectionId}/documents/{documentId} Get one document by ID · Get document #
Ask an LLM
“How can I fetch a single record from a collection by its ID?”
“Can I choose which fields come back when reading one document?”
Tell an agent
Get document {documentId} from collection {collectionId} in {databaseId}.
Read document {documentId} in {collectionId} of {databaseId} within transaction {transactionId}.
PUT /databases/{databaseId}/collections/{collectionId}/documents/{documentId} Create or replace a single document · Upsert a document #
Ask an LLM
“Can I write a document by ID whether or not it already exists?”
“What's the way to upsert just one record in a collection?”
Tell an agent
Upsert document {documentId} in {collectionId} of {databaseId} with {data}.
Create or overwrite document {documentId} in {collectionId} ({databaseId}) with {data}.
PATCH /databases/{databaseId}/collections/{collectionId}/documents/{documentId} Partially update one document · Update document #
Ask an LLM
“Can I change only a few fields of one existing document?”
“How do I update the permissions on a single document?”
Tell an agent
Update document {documentId} in {collectionId} of {databaseId} with {data}.
Set permissions {permissions} on document {documentId} in {collectionId} ({databaseId}).
DELETE /databases/{databaseId}/collections/{collectionId}/documents/{documentId} Delete one document · Delete document #
Ask an LLM
“How do I remove a single record from a collection by its ID?”
“Can deleting one document be part of a transaction?”
Tell an agent destructive · confirm first
Delete document {documentId} from {collectionId} in {databaseId}.
Remove document {documentId} in {collectionId} of {databaseId} as part of transaction {transactionId}.
PATCH /databases/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/decrement Decrease a numeric field on a document · Decrement document attribute #
Ask an LLM
“How do I atomically subtract from a counter like stock remaining?”
“Can I stop a decrement from going below a minimum value?”
Tell an agent
Decrement {attribute} on document {documentId} in {collectionId} of {databaseId} by {value}.
Lower {attribute} of document {documentId} ({collectionId}, {databaseId}) by {value} but not below {min}.
PATCH /databases/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/increment Increase a numeric field on a document · Increment document attribute #
Ask an LLM
“How do I atomically add to a counter like view count or likes?”
“Can I cap an increment so it never exceeds a maximum?”
Tell an agent
Increment {attribute} on document {documentId} in {collectionId} of {databaseId} by {value}.
Raise {attribute} of document {documentId} ({collectionId}, {databaseId}) by {value} up to at most {max}.
GET /databases/{databaseId}/collections/{collectionId}/indexes List indexes on a collection · List indexes #
Ask an LLM
“Which indexes are defined on my collection?”
“Can I filter a collection's indexes with queries?”
Tell an agent
List indexes on collection {collectionId} in {databaseId}.
Show indexes in {collectionId} of {databaseId} matching {queries}.
POST /databases/{databaseId}/collections/{collectionId}/indexes Create an index on a collection · Create index #
Ask an LLM
“How do I speed up queries by indexing the fields I filter on?”
“Can I create a unique or full-text index on a collection?”
Tell an agent
Create index {key} of type {type} on attributes {attributes} in {collectionId} of {databaseId}.
Add a {type} index {key} over {attributes} with orders {orders} to {collectionId} in {databaseId}.
GET /databases/{databaseId}/collections/{collectionId}/indexes/{key} Get one index on a collection · Get index #
Ask an LLM
“What attributes and type does a specific index cover?”
“Can I check whether an index has finished building?”
Tell an agent
Get index {key} on collection {collectionId} in {databaseId}.
Show the status of index {key} in {collectionId} ({databaseId}).
DELETE /databases/{databaseId}/collections/{collectionId}/indexes/{key} Delete an index from a collection · Delete index #
Ask an LLM
“How do I drop an index I no longer need?”
“Can I remove an index by its key?”
Tell an agent destructive · confirm first
Delete index {key} from collection {collectionId} in {databaseId}.
Drop index {key} on {collectionId} of {databaseId}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appwrite:appwrite-databases-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appwrite-databases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Databases API
  description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to https://appwrite.io/docs
  termsOfService: https://appwrite.io/policy/terms
  contact:
    name: Appwrite Team
    url: https://appwrite.io/support
    email: team@appwrite.io
  license:
    name: BSD-3-Clause
    url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
  description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
  description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
  variables:
    region:
      default: fra
      description: Appwrite Cloud region.
tags:


# --- truncated at 32 KB (263 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-databases-api-openapi.yml