Appwrite TablesDB API

The TablesDB service allows you to create structured tables of columns, query and filter lists of rows. 80 operations across 59 paths in the Appwrite 2.0.0 OpenAPI.

Operations 80

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 /tablesdb List TablesDB databases in a project · List databases #
Ask an LLM
“Which TablesDB databases exist in my Appwrite project?”
“Can I search my TablesDB databases by name?”
Tell an agent
List all TablesDB databases in this project.
Search my TablesDB databases for {search}.
POST /tablesdb Create a TablesDB database · Create database #
Ask an LLM
“How do I create a new TablesDB database?”
“Can I pick a dedicated specification and replica count when creating a TablesDB database?”
Tell an agent
Create a TablesDB database named {name} with ID {databaseId}.
Create TablesDB database {databaseId} called {name} on specification {specification} with {replicas} replicas.
GET /tablesdb/specifications List dedicated TablesDB compute specifications · List specifications #
Ask an LLM
“What dedicated database sizes can I use for TablesDB on my current plan?”
“What do the TablesDB dedicated specifications cost, including overage rates?”
Tell an agent
Show the dedicated TablesDB specifications available on my plan with their prices.
List TablesDB compute specifications and which ones are enabled for my organization.
GET /tablesdb/transactions List TablesDB transactions · List transactions #
Ask an LLM
“Which transactions are currently open across my TablesDB databases?”
“Can I see all TablesDB transactions in one list?”
Tell an agent
List all TablesDB transactions across my databases.
List TablesDB transactions matching {queries}.
POST /tablesdb/transactions Start a TablesDB transaction · Create transaction #
Ask an LLM
“How do I start a transaction so several row changes apply together in TablesDB?”
“Can I set how long a TablesDB transaction stays open before it expires?”
Tell an agent
Start a new TablesDB transaction.
Open a TablesDB transaction with a time-to-live of {ttl} seconds.
GET /tablesdb/transactions/{transactionId} Get a TablesDB transaction · Get transaction #
Ask an LLM
“What state is a specific TablesDB transaction in?”
“Can I look up one TablesDB transaction by its ID?”
Tell an agent
Get TablesDB transaction {transactionId}.
Show me the details of transaction {transactionId}.
PATCH /tablesdb/transactions/{transactionId} Commit or roll back a TablesDB transaction · Update transaction #
Ask an LLM
“How do I commit a TablesDB transaction once all its operations are staged?”
“Can I roll back a TablesDB transaction instead of committing it?”
Tell an agent
Commit transaction {transactionId}.
Roll back transaction {transactionId} and discard its staged changes.
DELETE /tablesdb/transactions/{transactionId} Delete a TablesDB transaction · Delete transaction #
Ask an LLM
“How do I delete a TablesDB transaction I no longer need?”
“Can I remove an abandoned transaction record from TablesDB?”
Tell an agent destructive · confirm first
Delete TablesDB transaction {transactionId}.
Remove the transaction {transactionId} entirely.
POST /tablesdb/transactions/{transactionId}/operations Stage multiple operations in a transaction · Create operations #
Ask an LLM
“Can I add a batch of row operations to an open TablesDB transaction in one call?”
“What is the way to stage several creates and updates inside one transaction?”
Tell an agent
Stage these operations in transaction {transactionId}: {operations}.
Add a batch of operations to transaction {transactionId}.
GET /tablesdb/{databaseId} Get a TablesDB database's metadata · Get database #
Ask an LLM
“What are the settings of one TablesDB database?”
“Can I fetch a single TablesDB database's metadata by ID?”
Tell an agent
Get TablesDB database {databaseId}.
Show the metadata for database {databaseId}.
PUT /tablesdb/{databaseId} Update a TablesDB database · Update database #
Ask an LLM
“How do I rename a TablesDB database or disable it?”
“Can I change the replica count or specification of an existing TablesDB database?”
Tell an agent
Rename TablesDB database {databaseId} to {name}.
Move database {databaseId} to specification {specification} with {replicas} replicas.
DELETE /tablesdb/{databaseId} Delete a TablesDB database · Delete database #
Ask an LLM
“How do I delete a whole TablesDB database?”
“What API key scope is needed to delete a TablesDB database?”
Tell an agent destructive · confirm first
Delete TablesDB database {databaseId}.
Permanently remove the database {databaseId} and everything in it.
POST /tablesdb/{databaseId}/failovers Fail over a dedicated TablesDB database · Create failover #
Ask an LLM
“How do I promote a replica to primary on a highly available TablesDB database?”
“Can I choose which replica becomes primary during a TablesDB failover?”
Tell an agent
Trigger a manual failover on TablesDB database {databaseId}.
Fail over TablesDB database {databaseId} and promote replica {targetReplicaId}.
GET /tablesdb/{databaseId}/migrations List dedicated migrations for a TablesDB database · List migrations #
Ask an LLM
“Is a dedicated migration currently in flight for my TablesDB database?”
“Where can I see the migrations that moved a TablesDB database to dedicated compute?”
Tell an agent
List the dedicated migrations for TablesDB database {databaseId}.
Show migration history for database {databaseId}.
POST /tablesdb/{databaseId}/migrations Migrate a TablesDB database to dedicated compute · Create migration #
Ask an LLM
“How do I move a serverless TablesDB database onto dedicated MySQL compute?”
“Can I make the dedicated migration wait for me before cutting over?”
Tell an agent
Migrate TablesDB database {databaseId} to dedicated specification {specification}.
Start a dedicated migration of {databaseId} onto {specification} with automatic cutover set to {autoCutover}.
GET /tablesdb/{databaseId}/migrations/{migrationId} Get a TablesDB dedicated migration · Get migration #
Ask an LLM
“What stage is my TablesDB dedicated migration at?”
“Is my TablesDB migration ready to cut over yet?”
Tell an agent
Get migration {migrationId} for TablesDB database {databaseId}.
Check the status of dedicated migration {migrationId} on {databaseId}.
DELETE /tablesdb/{databaseId}/migrations/{migrationId} Abort a TablesDB dedicated migration · Delete migration #
Ask an LLM
“Can I abort a TablesDB dedicated migration before it cuts over?”
“What happens if I try to cancel a TablesDB migration after cutover?”
Tell an agent destructive · confirm first
Abort migration {migrationId} on TablesDB database {databaseId}.
Cancel the in-flight dedicated migration {migrationId} for {databaseId}.
POST /tablesdb/{databaseId}/migrations/{migrationId}/cutovers Cut a verified TablesDB migration over · Cutover migration #
Ask an LLM
“How do I finish a TablesDB migration that is parked at ready to cutover?”
“Can I retry a TablesDB cutover that failed its checks?”
Tell an agent
Cut migration {migrationId} on database {databaseId} over to its dedicated compute.
Retry the cutover for TablesDB migration {migrationId} on {databaseId}.
GET /tablesdb/{databaseId}/operations List lifecycle operations on a TablesDB database · List operations #
Ask an LLM
“What provision, backup and replication actions have run on my dedicated TablesDB database?”
“Can I filter a TablesDB database's lifecycle operations by status?”
Tell an agent
List lifecycle operations for TablesDB database {databaseId}.
Show the last {limit} operations on {databaseId} with status {status}.
GET /tablesdb/{databaseId}/replicas Get TablesDB replica and HA status · Get replicas #
Ask an LLM
“How far behind are the replicas of my TablesDB database?”
“What sync mode is my TablesDB high availability using?”
Tell an agent
Get replica status for TablesDB database {databaseId}.
Show replication lag for {databaseId}.
GET /tablesdb/{databaseId}/status Get health of a dedicated TablesDB database · Get status #
Ask an LLM
“Is my dedicated TablesDB database healthy and ready right now?”
“Where can I see uptime and connection info for a TablesDB database?”
Tell an agent
Check the health of TablesDB database {databaseId}.
Get uptime, readiness and volume info for {databaseId}.
GET /tablesdb/{databaseId}/tables List tables in a database · List tables #
Ask an LLM
“Which tables are in my TablesDB database?”
“Can I search a database's tables by name?”
Tell an agent
List the tables in database {databaseId}.
Search tables in {databaseId} for {search}.
POST /tablesdb/{databaseId}/tables Create a table · Create table #
Ask an LLM
“How do I create a new table in a TablesDB database?”
“Can I define columns and indexes at the same time as creating the table?”
Tell an agent
Create a table named {name} with ID {tableId} in database {databaseId}.
Create table {tableId} called {name} in {databaseId} with row-level security set to {rowSecurity}.
GET /tablesdb/{databaseId}/tables/{tableId} Get a table's metadata · Get table #
Ask an LLM
“What are the settings and permissions of a specific table?”
“Can I fetch one table's metadata by its ID?”
Tell an agent
Get table {tableId} in database {databaseId}.
Show the metadata for table {tableId}.
PUT /tablesdb/{databaseId}/tables/{tableId} Update a table's settings · Update table #
Ask an LLM
“How do I rename a table or change its permissions?”
“Can I turn row-level security on for an existing table?”
Tell an agent
Rename table {tableId} in {databaseId} to {name}.
Disable table {tableId} in {databaseId} by setting enabled to {enabled}.
DELETE /tablesdb/{databaseId}/tables/{tableId} Delete a table · Delete table #
Ask an LLM
“How do I delete a table from a TablesDB database?”
“Who is allowed to delete a table?”
Tell an agent destructive · confirm first
Delete table {tableId} from database {databaseId}.
Drop the table {tableId} in {databaseId}.
GET /tablesdb/{databaseId}/tables/{tableId}/columns List a table's columns · List columns #
Ask an LLM
“What columns does my table have?”
“Can I get the full schema of a table's columns?”
Tell an agent
List the columns of table {tableId} in {databaseId}.
Show every column defined on table {tableId}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/bigint Add a bigint column to a table · Create bigint column #
Ask an LLM
“How do I add a bigint column for very large whole numbers?”
“Can a new bigint column have minimum and maximum values?”
Tell an agent
Add a bigint column {key} to table {tableId} in {databaseId}.
Add required bigint column {key} to {tableId} with range {min} to {max}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/bigint/{key} Change a bigint column · Update bigint column #
Ask an LLM
“Can I change the min and max of an existing bigint column?”
“Does changing a bigint column's default update rows I already have?”
Tell an agent
Set the default of bigint column {key} on table {tableId} in {databaseId} to {default}.
Rename bigint column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/boolean Add a boolean column to a table · Create boolean column #
Ask an LLM
“How do I add a true/false column to a table?”
“Can a new boolean column store an array of values?”
Tell an agent
Add a boolean column {key} to table {tableId} in {databaseId}.
Add boolean column {key} to {tableId} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/boolean/{key} Change a boolean column · Update boolean column #
Ask an LLM
“Can I change the default of an existing true/false column?”
“Is it possible to rename a boolean column after creating it?”
Tell an agent
Set boolean column {key} on table {tableId} in {databaseId} to default {default}.
Rename boolean column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/datetime Add a datetime column to a table · Create datetime column #
Ask an LLM
“How do I add an ISO 8601 date and time column to a table?”
“Can a new datetime column have a default timestamp?”
Tell an agent
Add a datetime column {key} to table {tableId} in {databaseId}.
Add required datetime column {key} to {tableId} with required set to {required}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/datetime/{key} Change a datetime column · Update datetime column #
Ask an LLM
“Can I change the default date on an existing datetime column?”
“Is it possible to make an existing datetime column optional?”
Tell an agent
Set the default of datetime column {key} on table {tableId} in {databaseId} to {default}.
Rename datetime column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/email Add an email column to a table · Create email column #
Ask an LLM
“How do I add a column that only accepts email addresses?”
“Can a new email column hold a list of addresses?”
Tell an agent
Add an email column {key} to table {tableId} in {databaseId}.
Add email array column {key} to {tableId} with array set to {array}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/email/{key} Change an email column · Update email column #
Ask an LLM
“Can I change the default address on an existing email column?”
“Is it possible to rename an email column in a table?”
Tell an agent
Set the default of email column {key} on table {tableId} in {databaseId} to {default}.
Rename email column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/enum Add an enum column to a table · Create enum column #
Ask an LLM
“How do I add a column that only accepts a fixed list of values?”
“Can I set a default for a new enumeration column?”
Tell an agent
Add an enum column {key} to table {tableId} in {databaseId} allowing {elements}.
Add enum column {key} to {tableId} with values {elements} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/enum/{key} Change an enum column's allowed values · Update enum column #
Ask an LLM
“Can I add new allowed values to an existing enum column?”
“Does changing an enum column's default affect existing rows?”
Tell an agent
Set the allowed values of enum column {key} on table {tableId} in {databaseId} to {elements}.
Rename enum column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/float Add a float column to a table · Create float column #
Ask an LLM
“How do I add a decimal number column to a table?”
“Can a new float column enforce a minimum and maximum?”
Tell an agent
Add a float column {key} to table {tableId} in {databaseId}.
Add float column {key} to {tableId} limited to {min} through {max}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/float/{key} Change a float column · Update float column #
Ask an LLM
“Can I change the allowed range of an existing float column?”
“Is it possible to change the default value of a decimal column?”
Tell an agent
Set the default of float column {key} on table {tableId} in {databaseId} to {default}.
Rename float column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/integer Add an integer column to a table · Create integer column #
Ask an LLM
“How do I add a whole-number integer column to a table?”
“Can I give a new integer column a default value?”
Tell an agent
Add an integer column {key} to table {tableId} in {databaseId}.
Add integer column {key} to {tableId} between {min} and {max}, defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/integer/{key} Change an integer column · Update integer column #
Ask an LLM
“Can I change the min and max of an existing integer column?”
“Does a new default on an integer column backfill existing rows?”
Tell an agent
Set the default of integer column {key} on table {tableId} in {databaseId} to {default}.
Rename integer column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/ip Add an IP address column to a table · Create IP address column #
Ask an LLM
“How do I add a column that stores IP addresses?”
“Can an IP address column hold multiple addresses per row?”
Tell an agent
Add an IP address column {key} to table {tableId} in {databaseId}.
Add IP column {key} to {tableId} with default {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/ip/{key} Change an IP address column · Update IP address column #
Ask an LLM
“Can I change the default on an existing IP address column?”
“Is it possible to rename an IP address column?”
Tell an agent
Set the default of IP column {key} on table {tableId} in {databaseId} to {default}.
Rename IP address column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/line Add a geometric line column to a table · Create line column #
Ask an LLM
“How do I store a geographic line or route in a table column?”
“Can a new line column have a default geometry?”
Tell an agent
Add a line column {key} to table {tableId} in {databaseId}.
Add line geometry column {key} to {tableId} with required set to {required}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/line/{key} Change a geometric line column · Update line column #
Ask an LLM
“Can I change the default geometry of an existing line column?”
“Is it possible to rename a line column?”
Tell an agent
Update line column {key} on table {tableId} in {databaseId} with required set to {required}.
Rename line column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/longtext Add a longtext column to a table · Create longtext column #
Ask an LLM
“How do I add a column for very long text like full articles?”
“Can a new longtext column be encrypted?”
Tell an agent
Add a longtext column {key} to table {tableId} in {databaseId}.
Add encrypted longtext column {key} to {tableId} with encrypt set to {encrypt}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/longtext/{key} Change a longtext column · Update longtext column #
Ask an LLM
“Can I change the default of an existing longtext column?”
“Is it possible to rename a longtext column?”
Tell an agent
Set the default of longtext column {key} on table {tableId} in {databaseId} to {default}.
Rename longtext column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/mediumtext Add a mediumtext column to a table · Create mediumtext column #
Ask an LLM
“How do I add a mediumtext column for moderately long text?”
“Can I encrypt a new mediumtext column?”
Tell an agent
Add a mediumtext column {key} to table {tableId} in {databaseId}.
Add mediumtext column {key} to {tableId} with encrypt set to {encrypt}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/mediumtext/{key} Change a mediumtext column · Update mediumtext column #
Ask an LLM
“Can I change the default of an existing mediumtext column?”
“Is it possible to rename a mediumtext column?”
Tell an agent
Set the default of mediumtext column {key} on table {tableId} in {databaseId} to {default}.
Rename mediumtext column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/point Add a geometric point column to a table · Create point column #
Ask an LLM
“How do I store a location coordinate as a point column?”
“Can a new point column have a default location?”
Tell an agent
Add a point column {key} to table {tableId} in {databaseId}.
Add point geometry column {key} to {tableId} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/point/{key} Change a geometric point column · Update point column #
Ask an LLM
“Can I change the default location of an existing point column?”
“Is it possible to rename a point column?”
Tell an agent
Set the default of point column {key} on table {tableId} in {databaseId} to {default}.
Rename point column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/polygon Add a geometric polygon column to a table · Create polygon column #
Ask an LLM
“How do I store an area or boundary shape as a polygon column?”
“Can a new polygon column be required?”
Tell an agent
Add a polygon column {key} to table {tableId} in {databaseId}.
Add polygon geometry column {key} to {tableId} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/polygon/{key} Change a geometric polygon column · Update polygon column #
Ask an LLM
“Can I change the default shape of an existing polygon column?”
“Is it possible to rename a polygon column?”
Tell an agent
Set the default of polygon column {key} on table {tableId} in {databaseId} to {default}.
Rename polygon column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/relationship Relate a table to another table · Create relationship column #
Ask an LLM
“How do I link rows in one table to rows in another table?”
“Can a relationship column be two-way and cascade on delete?”
Tell an agent
Create a {type} relationship from table {tableId} in {databaseId} to table {relatedTableId}.
Add a two-way relationship column {key} on {tableId} to {relatedTableId} with on-delete {onDelete}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/string Add a string column to a table · Create string column #
Ask an LLM
“How do I add a string column with a maximum size?”
“Can a new string column be encrypted at rest?”
Tell an agent
Add a string column {key} of size {size} to table {tableId} in {databaseId}.
Add string column {key} of size {size} to {tableId} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/string/{key} Change a string column · Update string column #
Ask an LLM
“Can I increase the size of an existing string column?”
“Is it possible to change a string column's default without touching old rows?”
Tell an agent
Resize string column {key} on table {tableId} in {databaseId} to {size}.
Rename string column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/text Add a text column to a table · Create text column #
Ask an LLM
“How do I add a text column for paragraphs of content?”
“Can a new text column be an array?”
Tell an agent
Add a text column {key} to table {tableId} in {databaseId}.
Add text column {key} to {tableId} with required set to {required}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/text/{key} Change a text column · Update text column #
Ask an LLM
“Can I change the default of an existing text column?”
“Is it possible to rename a text column?”
Tell an agent
Set the default of text column {key} on table {tableId} in {databaseId} to {default}.
Rename text column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/url Add a URL column to a table · Create URL column #
Ask an LLM
“How do I add a column that validates web addresses?”
“Can a new URL column have a default link?”
Tell an agent
Add a URL column {key} to table {tableId} in {databaseId}.
Add URL column {key} to {tableId} defaulting to {default}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/url/{key} Change a URL column · Update URL column #
Ask an LLM
“Can I change the default link on an existing URL column?”
“Is it possible to rename a URL column?”
Tell an agent
Set the default of URL column {key} on table {tableId} in {databaseId} to {default}.
Rename URL column {key} on {tableId} to {newKey}.
POST /tablesdb/{databaseId}/tables/{tableId}/columns/varchar Add a varchar column to a table · Create varchar column #
Ask an LLM
“How do I add a varchar column with a fixed maximum length?”
“Can I encrypt a new varchar column?”
Tell an agent
Add a varchar column {key} of size {size} to table {tableId} in {databaseId}.
Add varchar column {key} of length {size} to {tableId} with encrypt set to {encrypt}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/varchar/{key} Change a varchar column · Update varchar column #
Ask an LLM
“Can I change the length of an existing varchar column?”
“Is it possible to rename a varchar column?”
Tell an agent
Resize varchar column {key} on table {tableId} in {databaseId} to {size}.
Rename varchar column {key} on {tableId} to {newKey}.
GET /tablesdb/{databaseId}/tables/{tableId}/columns/{key} Get one column's definition · Get column #
Ask an LLM
“What type and default does a specific column have?”
“Can I look up one column of a table by its key?”
Tell an agent
Get column {key} of table {tableId} in {databaseId}.
Show the definition of column {key} on {tableId}.
DELETE /tablesdb/{databaseId}/tables/{tableId}/columns/{key} Delete a column from a table · Delete column #
Ask an LLM
“How do I remove a column from a table?”
“Can I drop a column I no longer use?”
Tell an agent destructive · confirm first
Delete column {key} from table {tableId} in {databaseId}.
Drop the column {key} on {tableId}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/columns/{key}/relationship Change a relationship column · Update relationship column #
Ask an LLM
“Can I change what happens to related rows when a row is deleted?”
“Is it possible to rename an existing relationship column?”
Tell an agent
Set the on-delete behaviour of relationship {key} on table {tableId} in {databaseId} to {onDelete}.
Rename relationship column {key} on {tableId} to {newKey}.
GET /tablesdb/{databaseId}/tables/{tableId}/indexes List a table's indexes · List indexes #
Ask an LLM
“What indexes exist on my table?”
“Can I check which columns are already indexed?”
Tell an agent
List the indexes on table {tableId} in {databaseId}.
Show every index defined for table {tableId}.
POST /tablesdb/{databaseId}/tables/{tableId}/indexes Create an index on a table · Create index #
Ask an LLM
“How do I speed up queries by indexing columns?”
“Can I create a unique or fulltext index on a table?”
Tell an agent
Create a {type} index {key} on columns {columns} of table {tableId} in {databaseId}.
Add a unique index {key} on {columns} in {tableId} with type {type}.
GET /tablesdb/{databaseId}/tables/{tableId}/indexes/{key} Get one index's definition · Get index #
Ask an LLM
“Which columns does a specific index cover?”
“Can I look up an index by its key?”
Tell an agent
Get index {key} on table {tableId} in {databaseId}.
Show the definition of index {key} for {tableId}.
DELETE /tablesdb/{databaseId}/tables/{tableId}/indexes/{key} Delete an index from a table · Delete index #
Ask an LLM
“How do I remove an index I no longer need?”
“Can I drop an index from a table?”
Tell an agent destructive · confirm first
Delete index {key} from table {tableId} in {databaseId}.
Drop the index {key} on {tableId}.
GET /tablesdb/{databaseId}/tables/{tableId}/rows List rows in a table · List rows #
Ask an LLM
“How do I read the rows stored in a table?”
“Can I filter the rows I get back from a table with queries?”
Tell an agent
List the rows in table {tableId} in {databaseId}.
List rows in {tableId} matching {queries}.
POST /tablesdb/{databaseId}/tables/{tableId}/rows Create a row in a table · Create row #
Ask an LLM
“How do I insert a new row into a table?”
“Can I set permissions on a row when I create it?”
Tell an agent
Create row {rowId} in table {tableId} in {databaseId} with data {data}.
Insert a new row {rowId} into {tableId} containing {data} with permissions {permissions}.
PUT /tablesdb/{databaseId}/tables/{tableId}/rows Bulk create or update rows · Upsert rows #
Ask an LLM
“Can I insert or update many rows in one request?”
“What happens to rows that already exist when I bulk upsert?”
Tell an agent
Upsert these rows into table {tableId} in {databaseId}: {rows}.
Bulk upsert {rows} into {tableId} as part of transaction {transactionId}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/rows Bulk update rows matching queries · Update rows #
Ask an LLM
“Can I change a field on every row that matches a filter at once?”
“Which rows get updated if I send no queries in a bulk update?”
Tell an agent
Set {data} on all rows in table {tableId} in {databaseId} matching {queries}.
Apply {data} to every row in {tableId}.
DELETE /tablesdb/{databaseId}/tables/{tableId}/rows Bulk delete rows matching queries · Delete rows #
Ask an LLM
“Can I delete every row that matches a filter in one call?”
“What happens if I bulk delete rows without passing any queries?”
Tell an agent destructive · confirm first
Delete all rows in table {tableId} in {databaseId} matching {queries}.
Empty table {tableId} in {databaseId} by deleting every row.
GET /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId} Get a single row · Get row #
Ask an LLM
“How do I fetch one row by its ID?”
“Can I read a row as it looks inside an uncommitted transaction?”
Tell an agent
Get row {rowId} from table {tableId} in {databaseId}.
Read row {rowId} in {tableId} within transaction {transactionId}.
PUT /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId} Create or update one row by ID · Upsert a row #
Ask an LLM
“Can I write a row by ID whether or not it already exists?”
“Is there a single call that inserts a row or replaces it if present?”
Tell an agent
Upsert row {rowId} in table {tableId} in {databaseId} with {data}.
Create or update row {rowId} in {tableId} with permissions {permissions}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId} Update fields on a single row · Update row #
Ask an LLM
“How do I change a few fields on one existing row?”
“Can I update a single row's permissions without touching its data?”
Tell an agent
Update row {rowId} in table {tableId} in {databaseId} with {data}.
Change the permissions on row {rowId} in {tableId} to {permissions}.
DELETE /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId} Delete a single row · Delete row #
Ask an LLM
“How do I delete one row by its ID?”
“Can I stage a single row deletion inside a transaction?”
Tell an agent destructive · confirm first
Delete row {rowId} from table {tableId} in {databaseId}.
Delete row {rowId} in {tableId} as part of transaction {transactionId}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}/{column}/decrement Decrement a numeric value in a row · Decrement row column #
Ask an LLM
“How do I subtract from a counter stored in a row without reading it first?”
“Can I stop a decrement from going below a minimum?”
Tell an agent
Decrement {column} on row {rowId} in table {tableId} in {databaseId} by {value}.
Reduce {column} on row {rowId} by {value} but not below {min}.
PATCH /tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}/{column}/increment Increment a numeric value in a row · Increment row column #
Ask an LLM
“How do I add to a counter stored in a row atomically?”
“Can I cap an increment at a maximum value?”
Tell an agent
Increment {column} on row {rowId} in table {tableId} in {databaseId} by {value}.
Raise {column} on row {rowId} by {value} but not above {max}.

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-tablesdb-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-tablesdb-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Tables DB 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 (304 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-tablesdb-api-openapi.yml