Appwrite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Appwrite Documents DB API
37 actions
37 updates
phrasing
extends
openapi/appwrite-documentsdb-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Appwrite's API. It is a proposal applied on top of the contract, not a document Appwrite publishes.
What the actions change
x-apievangelist-phrasing
Targets 37 · first 16 shown; the file carries all of them
$.info
$.paths['/documentsdb'].get
$.paths['/documentsdb'].post
$.paths['/documentsdb/specifications'].get
$.paths['/documentsdb/transactions'].get
$.paths['/documentsdb/transactions'].post
$.paths['/documentsdb/transactions/{transactionId}'].get
$.paths['/documentsdb/transactions/{transactionId}'].delete
$.paths['/documentsdb/transactions/{transactionId}'].patch
$.paths['/documentsdb/transactions/{transactionId}/operations'].post
$.paths['/documentsdb/{databaseId}'].get
$.paths['/documentsdb/{databaseId}'].put
$.paths['/documentsdb/{databaseId}'].delete
$.paths['/documentsdb/{databaseId}/collections'].get
$.paths['/documentsdb/{databaseId}/collections'].post
$.paths['/documentsdb/{databaseId}/collections/{collectionId}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Appwrite Documents DB API
version: 1.0.0
extends: openapi/appwrite-documentsdb-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 36
- target: $.paths['/documentsdb'].get
update:
x-apievangelist-phrasing:
intent: List document databases in the project
effect: read
questions:
- Which DocumentsDB databases exist in my project?
- Can I filter my list of databases with queries?
instructions:
- text: List all document databases in this project.
- text: List the databases matching {queries}.
slots:
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb'].post
update:
x-apievangelist-phrasing:
intent: Create a document database
effect: write
questions:
- How do I create a new document database?
- Can I provision a dedicated database with high-availability replicas instead of serverless?
instructions:
- text: Create a database named {name} with ID {databaseId}.
slots:
name: requestBody.name
databaseId: requestBody.databaseId
- text: Create dedicated database {databaseId} called {name} on specification {specification} with {replicas} replicas.
slots:
databaseId: requestBody.databaseId
name: requestBody.name
specification: requestBody.specification
replicas: requestBody.replicas
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/specifications'].get
update:
x-apievangelist-phrasing:
intent: List dedicated database plans and prices
effect: read
questions:
- What dedicated database sizes can I choose on my plan?
- How much does each dedicated database specification cost, including overage?
instructions:
- text: Show the dedicated database specifications available on my plan.
- text: Compare the resource limits and prices of each database specification.
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions'].get
update:
x-apievangelist-phrasing:
intent: List database transactions
effect: read
questions:
- Which transactions are currently open across my databases?
- Can I filter the transactions list with queries?
instructions:
- text: List all transactions across my databases.
- text: List transactions matching {queries}.
slots:
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions'].post
update:
x-apievangelist-phrasing:
intent: Start a database transaction
effect: write
questions:
- How do I start a transaction so several document writes succeed or fail together?
- Can I set how long a transaction lives before it expires?
instructions:
- text: Begin a new database transaction.
- text: Start a transaction that expires after {ttl} seconds.
slots:
ttl: requestBody.ttl
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions/{transactionId}'].get
update:
x-apievangelist-phrasing:
intent: Get a transaction's details
effect: read
questions:
- What state is a specific transaction in?
- Can I look up one transaction by its ID?
instructions:
- text: Show transaction {transactionId}.
slots:
transactionId: path.transactionId
- text: Check whether transaction {transactionId} is still open.
slots:
transactionId: path.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions/{transactionId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a transaction
effect: destructive
questions:
- How do I throw away a transaction record entirely?
- Can a transaction be removed by its ID?
instructions:
- text: Delete transaction {transactionId}.
slots:
transactionId: path.transactionId
- text: Remove the transaction record {transactionId} permanently.
slots:
transactionId: path.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions/{transactionId}'].patch
update:
x-apievangelist-phrasing:
intent: Commit or roll back a transaction
effect: write
questions:
- How do I commit the staged changes in a transaction?
- Can I roll back a transaction instead of committing it?
instructions:
- text: Commit transaction {transactionId}.
slots:
transactionId: path.transactionId
- text: Roll back transaction {transactionId} with rollback set to {rollback}.
slots:
transactionId: path.transactionId
rollback: requestBody.rollback
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/transactions/{transactionId}/operations'].post
update:
x-apievangelist-phrasing:
intent: Stage several writes in a transaction
effect: write
questions:
- How do I add a batch of staged writes to an open transaction?
- Can I queue multiple document changes in one call inside a transaction?
instructions:
- text: 'Stage these operations in transaction {transactionId}: {operations}.'
slots:
transactionId: path.transactionId
operations: requestBody.operations
- text: Add a batch of staged writes to transaction {transactionId}.
slots:
transactionId: path.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}'].get
update:
x-apievangelist-phrasing:
intent: Get a database's metadata
effect: read
questions:
- What are the settings of one particular database?
- Can I fetch a database's metadata by its ID?
instructions:
- text: Show the metadata for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Fetch database {databaseId} and tell me whether it is enabled.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}'].put
update:
x-apievangelist-phrasing:
intent: Update a database's settings
effect: write
questions:
- How do I rename a database or disable it?
- Can I change the replica count or sync mode of an existing dedicated database?
instructions:
- text: Rename database {databaseId} to {name}.
slots:
databaseId: path.databaseId
name: requestBody.name
- text: Set database {databaseId} named {name} to {replicas} replicas with sync mode {syncMode}.
slots:
databaseId: path.databaseId
name: requestBody.name
replicas: requestBody.replicas
syncMode: requestBody.syncMode
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a database
effect: destructive
questions:
- How do I delete an entire database?
- What API key scope is needed to delete a database?
instructions:
- text: Delete database {databaseId}.
slots:
databaseId: path.databaseId
- text: Permanently remove database {databaseId} and everything in it.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections'].get
update:
x-apievangelist-phrasing:
intent: List collections in a database
effect: read
questions:
- Which collections does a database contain?
- Can I search a database's collections by name?
instructions:
- text: List the collections in database {databaseId}.
slots:
databaseId: path.databaseId
- text: Search collections in database {databaseId} for {search}.
slots:
databaseId: path.databaseId
search: query.search
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections'].post
update:
x-apievangelist-phrasing:
intent: Create a collection
effect: write
questions:
- How do I create a new collection inside a database?
- Can I define attributes and indexes when first creating a collection?
instructions:
- text: Create collection {name} with ID {collectionId} in database {databaseId}.
slots:
name: requestBody.name
collectionId: requestBody.collectionId
databaseId: path.databaseId
- text: Create collection {collectionId} named {name} in database {databaseId} with document-level security {documentSecurity}.
slots:
collectionId: requestBody.collectionId
name: requestBody.name
databaseId: path.databaseId
documentSecurity: requestBody.documentSecurity
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}'].get
update:
x-apievangelist-phrasing:
intent: Get a collection's metadata
effect: read
questions:
- What permissions and settings does one collection have?
- Can I retrieve a collection's metadata by ID?
instructions:
- text: Show collection {collectionId} in database {databaseId}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
- text: Tell me whether document security is on for collection {collectionId} in database {databaseId}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}'].put
update:
x-apievangelist-phrasing:
intent: Update a collection's settings
effect: write
questions:
- How do I rename a collection or change its permissions?
- Can I purge a collection's cached list results while updating it?
instructions:
- text: Rename collection {collectionId} in database {databaseId} to {name}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
name: requestBody.name
- text: Update collection {collectionId} in database {databaseId}, keep name {name}, and purge its cached lists.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a collection
effect: destructive
questions:
- How do I delete a whole collection?
- Who is allowed to delete a collection?
instructions:
- text: Delete collection {collectionId} from database {databaseId}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
- text: Drop the collection {collectionId} in database {databaseId} permanently.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents'].get
update:
x-apievangelist-phrasing:
intent: List or query documents in a collection
effect: read
questions:
- How do I fetch documents from a collection with filters?
- Can I read uncommitted changes inside a transaction when listing documents?
- Is it possible to cache list results for a while?
instructions:
- text: List documents in collection {collectionId} of database {databaseId}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
- text: Find documents in collection {collectionId} of database {databaseId} matching {queries}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents'].put
update:
x-apievangelist-phrasing:
intent: Create or update many documents at once
effect: write
questions:
- How do I bulk upsert a batch of documents into a collection?
- Can I insert-or-update several documents in one request?
instructions:
- text: 'Upsert these documents into collection {collectionId} of database {databaseId}: {documents}.'
slots:
collectionId: path.collectionId
databaseId: path.databaseId
documents: requestBody.documents
- text: Bulk upsert {documents} into collection {collectionId} of database {databaseId} within transaction {transactionId}.
slots:
documents: requestBody.documents
collectionId: path.collectionId
databaseId: path.databaseId
transactionId: requestBody.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents'].post
update:
x-apievangelist-phrasing:
intent: Create a new document
effect: write
questions:
- How do I add a new document to a collection?
- Can I set permissions on a document when I create it?
instructions:
- text: Create document {documentId} with data {data} in collection {collectionId} of database {databaseId}.
slots:
documentId: requestBody.documentId
data: requestBody.data
collectionId: path.collectionId
databaseId: path.databaseId
- text: Insert a new document {documentId} containing {data} into collection {collectionId} of database {databaseId} with permissions {permissions}.
slots:
documentId: requestBody.documentId
data: requestBody.data
collectionId: path.collectionId
databaseId: path.databaseId
permissions: requestBody.permissions
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents'].delete
update:
x-apievangelist-phrasing:
intent: Bulk delete documents by query
effect: destructive
questions:
- How do I delete every document matching a filter?
- What happens if I bulk delete documents without any queries?
instructions:
- text: Delete all documents in collection {collectionId} of database {databaseId} matching {queries}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
queries: query.queries
- text: Empty collection {collectionId} in database {databaseId} of all documents.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents'].patch
update:
x-apievangelist-phrasing:
intent: Bulk update documents matching a query
effect: write
questions:
- How do I change a field on every document that matches a filter?
- Can I bulk-update only specific fields across many documents?
instructions:
- text: Set {data} on all documents in collection {collectionId} of database {databaseId} matching {queries}.
slots:
data: requestBody.data
collectionId: path.collectionId
databaseId: path.databaseId
queries: requestBody.queries
- text: Apply {data} to every document in collection {collectionId} of database {databaseId}.
slots:
data: requestBody.data
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}'].get
update:
x-apievangelist-phrasing:
intent: Get one document by ID
effect: read
questions:
- How do I read a single document when I know its ID?
- Can I read a document's uncommitted version inside a transaction?
instructions:
- text: Get document {documentId} from collection {collectionId} of database {databaseId}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
- text: Read document {documentId} in collection {collectionId} of database {databaseId} as seen by transaction {transactionId}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
transactionId: query.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}'].put
update:
x-apievangelist-phrasing:
intent: Create or replace a single document
effect: write
questions:
- How do I write a document by ID whether or not it already exists?
- Can I upsert one document and set its permissions at the same time?
instructions:
- text: Upsert document {documentId} in collection {collectionId} of database {databaseId} with {data}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
data: requestBody.data
- text: Create document {documentId} in collection {collectionId} of database {databaseId} if missing, otherwise overwrite it with {data}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
data: requestBody.data
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a single document
effect: destructive
questions:
- How do I delete one document by its ID?
- Can I stage a single document deletion inside a transaction?
instructions:
- text: Delete document {documentId} from collection {collectionId} of database {databaseId}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
- text: Remove document {documentId} in collection {collectionId} of database {databaseId} as part of transaction {transactionId}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
transactionId: query.transactionId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}'].patch
update:
x-apievangelist-phrasing:
intent: Partially update one document
effect: write
questions:
- How do I change just a few fields on an existing document?
- Can I update a single document's permissions without touching its data?
instructions:
- text: Update document {documentId} in collection {collectionId} of database {databaseId} with {data}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
data: requestBody.data
- text: Change the permissions of document {documentId} in collection {collectionId} of database {databaseId} to {permissions}.
slots:
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
permissions: requestBody.permissions
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/decrement'].patch
update:
x-apievangelist-phrasing:
intent: Decrement a numeric field on a document
effect: write
questions:
- How do I atomically subtract from a counter on a document?
- Can I stop a decrement from going below a minimum value?
instructions:
- text: Decrease {attribute} on document {documentId} in collection {collectionId} of database {databaseId} by {value}.
slots:
attribute: path.attribute
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
value: requestBody.value
- text: Decrement {attribute} of document {documentId} in collection {collectionId}, database {databaseId}, but not below {min}.
slots:
attribute: path.attribute
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
min: requestBody.min
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/increment'].patch
update:
x-apievangelist-phrasing:
intent: Increment a numeric field on a document
effect: write
questions:
- How do I atomically add to a counter on a document?
- Can I cap an increment at a maximum value?
instructions:
- text: Increase {attribute} on document {documentId} in collection {collectionId} of database {databaseId} by {value}.
slots:
attribute: path.attribute
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
value: requestBody.value
- text: Increment {attribute} of document {documentId} in collection {collectionId}, database {databaseId}, up to at most {max}.
slots:
attribute: path.attribute
documentId: path.documentId
collectionId: path.collectionId
databaseId: path.databaseId
max: requestBody.max
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/indexes'].get
update:
x-apievangelist-phrasing:
intent: List a collection's indexes
effect: read
questions:
- Which indexes are defined on a collection?
- Can I filter a collection's index list with queries?
instructions:
- text: List the indexes on collection {collectionId} in database {databaseId}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
- text: Show indexes on collection {collectionId} in database {databaseId} matching {queries}.
slots:
collectionId: path.collectionId
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/indexes'].post
update:
x-apievangelist-phrasing:
intent: Create an index on a collection
effect: write
questions:
- How do I add an index so my document queries run faster?
- Can I create a unique or fulltext index across several attributes?
instructions:
- text: Create a {type} index {key} on {attributes} in collection {collectionId} of database {databaseId}.
slots:
type: requestBody.type
key: requestBody.key
attributes: requestBody.attributes
collectionId: path.collectionId
databaseId: path.databaseId
- text: Add a unique index {key} over {attributes} to collection {collectionId} in database {databaseId} with type {type}.
slots:
key: requestBody.key
attributes: requestBody.attributes
collectionId: path.collectionId
databaseId: path.databaseId
type: requestBody.type
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/indexes/{key}'].get
update:
x-apievangelist-phrasing:
intent: Get an index's definition
effect: read
questions:
- What attributes does a particular index cover?
- Can I look up one index on a collection by its key?
instructions:
- text: Show index {key} on collection {collectionId} in database {databaseId}.
slots:
key: path.key
collectionId: path.collectionId
databaseId: path.databaseId
- text: Tell me which attributes index {key} covers in collection {collectionId}, database {databaseId}.
slots:
key: path.key
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/collections/{collectionId}/indexes/{key}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an index
effect: destructive
questions:
- How do I drop an index I no longer need?
- Can I remove an index from a collection by key?
instructions:
- text: Delete index {key} from collection {collectionId} in database {databaseId}.
slots:
key: path.key
collectionId: path.collectionId
databaseId: path.databaseId
- text: Drop the {key} index on collection {collectionId}, database {databaseId}.
slots:
key: path.key
collectionId: path.collectionId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/failovers'].post
update:
x-apievangelist-phrasing:
intent: Fail over a dedicated database to a replica
effect: write
questions:
- How do I manually promote a replica to primary on my dedicated database?
- Can I repair a database stuck mid-operation by forcing a failover?
instructions:
- text: Trigger a failover on dedicated database {databaseId}.
slots:
databaseId: path.databaseId
- text: Fail over database {databaseId} and promote replica {targetReplicaId}.
slots:
databaseId: path.databaseId
targetReplicaId: requestBody.targetReplicaId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/operations'].get
update:
x-apievangelist-phrasing:
intent: List a dedicated database's lifecycle history
effect: read
questions:
- What provisioning, backup and restore actions have run on my dedicated database?
- Can I see only the failed lifecycle actions for a database?
instructions:
- text: Show the lifecycle history of dedicated database {databaseId}, newest first.
slots:
databaseId: path.databaseId
- text: List the last {limit} lifecycle actions on database {databaseId} with status {status}.
slots:
limit: query.limit
databaseId: path.databaseId
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/replicas'].get
update:
x-apievangelist-phrasing:
intent: Check replication status and lag
effect: read
questions:
- How far behind are my database replicas?
- What sync mode is my high-availability database using?
instructions:
- text: Show the replica statuses and replication lag for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Check the high-availability setup of database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/documentsdb/{databaseId}/status'].get
update:
x-apievangelist-phrasing:
intent: Check a dedicated database's health
effect: read
questions:
- Is my dedicated database healthy and ready right now?
- What are the uptime, connection info and volume usage of my database?
instructions:
- text: Check the health of dedicated database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show uptime, readiness and volume info for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'