Appwrite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Appwrite Storage API
14 actions
14 updates
phrasing
extends
openapi/appwrite-storage-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 14
$.info
$.paths['/storage/buckets'].get
$.paths['/storage/buckets'].post
$.paths['/storage/buckets/{bucketId}'].get
$.paths['/storage/buckets/{bucketId}'].put
$.paths['/storage/buckets/{bucketId}'].delete
$.paths['/storage/buckets/{bucketId}/files'].get
$.paths['/storage/buckets/{bucketId}/files'].post
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].put
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].delete
$.paths['/storage/buckets/{bucketId}/files/{fileId}/download'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}/preview'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}/view'].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 Storage API
version: 1.0.0
extends: openapi/appwrite-storage-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: 13
- target: $.paths['/storage/buckets'].get
update:
x-apievangelist-phrasing:
intent: List storage buckets
effect: read
questions:
- Which storage buckets exist in my project?
- Can I search my buckets by name?
instructions:
- text: List all my storage buckets.
- text: Search storage buckets for {search}.
slots:
search: query.search
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets'].post
update:
x-apievangelist-phrasing:
intent: Create a storage bucket
effect: write
questions:
- How do I create a bucket to hold uploaded files?
- Can I cap file size and allowed extensions when creating a bucket?
- Does a new bucket support encryption and antivirus scanning?
instructions:
- text: Create a storage bucket {name} with ID {bucketId}.
slots:
name: requestBody.name
bucketId: requestBody.bucketId
- text: Create bucket {bucketId} named {name} that only accepts {allowedFileExtensions} up to {maximumFileSize} bytes.
slots:
bucketId: requestBody.bucketId
name: requestBody.name
allowedFileExtensions: requestBody.allowedFileExtensions
maximumFileSize: requestBody.maximumFileSize
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].get
update:
x-apievangelist-phrasing:
intent: Get a bucket's settings
effect: read
questions:
- What limits and permissions are set on a bucket?
- Can I fetch a single bucket's metadata by ID?
instructions:
- text: Show bucket {bucketId}.
slots:
bucketId: path.bucketId
- text: Get the settings of storage bucket {bucketId}.
slots:
bucketId: path.bucketId
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].put
update:
x-apievangelist-phrasing:
intent: Change an existing bucket's settings
effect: write
questions:
- Can I turn on compression or antivirus for a bucket I already have?
- How do I rename an existing bucket or change its permissions?
instructions:
- text: Rename bucket {bucketId} to {name}.
slots:
bucketId: path.bucketId
name: requestBody.name
- text: Update bucket {bucketId}, keeping name {name}, to use compression {compression}.
slots:
bucketId: path.bucketId
name: requestBody.name
compression: requestBody.compression
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a storage bucket
effect: destructive
questions:
- How do I delete a bucket I no longer use?
- Can I remove an entire storage bucket by ID?
instructions:
- text: Delete bucket {bucketId}.
slots:
bucketId: path.bucketId
- text: Remove the storage bucket {bucketId}.
slots:
bucketId: path.bucketId
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files'].get
update:
x-apievangelist-phrasing:
intent: List files in a bucket
effect: read
questions:
- Which files are stored in a bucket?
- Can I search a bucket's files by name?
instructions:
- text: List files in bucket {bucketId}.
slots:
bucketId: path.bucketId
- text: Search bucket {bucketId} for files matching {search}.
slots:
bucketId: path.bucketId
search: query.search
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files'].post
update:
x-apievangelist-phrasing:
intent: Upload a file to a bucket
effect: write
questions:
- How do I upload a file into a storage bucket?
- How are large files uploaded, in chunks?
instructions:
- text: Upload {file} to bucket {bucketId} as file {fileId}.
slots:
file: requestBody.file
bucketId: path.bucketId
fileId: requestBody.fileId
- text: Upload {file} to {bucketId} with ID {fileId} and permissions {permissions}.
slots:
file: requestBody.file
bucketId: path.bucketId
fileId: requestBody.fileId
permissions: requestBody.permissions
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].get
update:
x-apievangelist-phrasing:
intent: Get a file's metadata
effect: read
questions:
- What size and type is a stored file?
- Can I get a file's metadata without downloading it?
instructions:
- text: Show metadata for file {fileId} in bucket {bucketId}.
slots:
fileId: path.fileId
bucketId: path.bucketId
- text: Get file info for {fileId} in {bucketId}.
slots:
fileId: path.fileId
bucketId: path.bucketId
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].put
update:
x-apievangelist-phrasing:
intent: Rename a file or change its permissions
effect: write
questions:
- Can I rename a file after uploading it?
- How do I change who can read an uploaded file?
instructions:
- text: Rename file {fileId} in bucket {bucketId} to {name}.
slots:
fileId: path.fileId
bucketId: path.bucketId
name: requestBody.name
- text: Set permissions on file {fileId} in {bucketId} to {permissions}.
slots:
fileId: path.fileId
bucketId: path.bucketId
permissions: requestBody.permissions
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a file
effect: destructive
questions:
- How do I delete an uploaded file?
- Who is allowed to delete a file in a bucket?
instructions:
- text: Delete file {fileId} from bucket {bucketId}.
slots:
fileId: path.fileId
bucketId: path.bucketId
- text: Remove {fileId} from storage bucket {bucketId}.
slots:
fileId: path.fileId
bucketId: path.bucketId
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/download'].get
update:
x-apievangelist-phrasing:
intent: Download a file as an attachment
effect: read
questions:
- How do I make the browser download a stored file?
- Can I download a file using a file token instead of a session?
instructions:
- text: Download file {fileId} from bucket {bucketId}.
slots:
fileId: path.fileId
bucketId: path.bucketId
- text: Download {fileId} from {bucketId} using token {token}.
slots:
fileId: path.fileId
bucketId: path.bucketId
token: query.token
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/preview'].get
update:
x-apievangelist-phrasing:
intent: Get a resized image preview of a file
effect: read
questions:
- Can I get a thumbnail of an uploaded image at a specific size?
- Which image formats can a file preview be output as?
- What preview do non-image files like PDFs return?
instructions:
- text: Get a {width}x{height} preview of file {fileId} in bucket {bucketId}.
slots:
width: query.width
height: query.height
fileId: path.fileId
bucketId: path.bucketId
- text: Preview {fileId} from {bucketId} as {output} at quality {quality}.
slots:
fileId: path.fileId
bucketId: path.bucketId
output: query.output
quality: query.quality
method: generated
generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/view'].get
update:
x-apievangelist-phrasing:
intent: View a file inline in the browser
effect: read
questions:
- How do I display a stored file inline instead of downloading it?
- Can I embed a stored PDF or image directly in a page?
instructions:
- text: Open file {fileId} from bucket {bucketId} for inline viewing.
slots:
fileId: path.fileId
bucketId: path.bucketId
- text: View {fileId} in {bucketId} inline with token {token}.
slots:
fileId: path.fileId
bucketId: path.bucketId
token: query.token
method: generated
generated: '2026-09-26'