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