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
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}.
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}.
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}.
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.
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}.
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}.
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}.
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}.
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.
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}.
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}.
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}.
Documentation
Specifications
SDKs
Other Resources
🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/overlays/appwrite-databases-overlay.yaml
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/postman/appwrite-databases-api.postman_collection.json
🔗
OpenCollection
https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/collections/appwrite-databases-api.opencollection.json