Appwrite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Appwrite Apps API
23 actions
23 updates
phrasing
extends
openapi/appwrite-apps-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 23 · first 16 shown; the file carries all of them
$.info
$.paths['/apps'].get
$.paths['/apps'].post
$.paths['/apps/scopes/installations'].get
$.paths['/apps/scopes/oauth2'].get
$.paths['/apps/{appId}'].get
$.paths['/apps/{appId}'].put
$.paths['/apps/{appId}'].delete
$.paths['/apps/{appId}/installations'].get
$.paths['/apps/{appId}/installations/{installationId}'].get
$.paths['/apps/{appId}/installations/{installationId}'].delete
$.paths['/apps/{appId}/installations/{installationId}/tokens'].post
$.paths['/apps/{appId}/keys'].get
$.paths['/apps/{appId}/keys'].post
$.paths['/apps/{appId}/keys/{keyId}'].get
$.paths['/apps/{appId}/keys/{keyId}'].delete
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 Apps API
version: 1.0.0
extends: openapi/appwrite-apps-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: 22
- target: $.paths['/apps'].get
update:
x-apievangelist-phrasing:
intent: List OAuth2 applications
effect: read
questions:
- Which third-party applications have I registered in Appwrite?
- Can I filter my registered applications with queries?
instructions:
- text: List all my registered applications.
- text: List applications matching {queries}.
slots:
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/apps'].post
update:
x-apievangelist-phrasing:
intent: Register a new OAuth2 application
effect: write
questions:
- How do I register an application that users can sign in to with OAuth2?
- Can I set a privacy policy URL, logo and redirect URIs when registering an app?
- Does a new application support the device authorization flow?
instructions:
- text: Register application {appId} named {name} with redirect URIs {redirectUris}.
slots:
appId: requestBody.appId
name: requestBody.name
redirectUris: requestBody.redirectUris
- text: Create app {appId} called {name} redirecting to {redirectUris}, owned by team {teamId}.
slots:
appId: requestBody.appId
name: requestBody.name
redirectUris: requestBody.redirectUris
teamId: requestBody.teamId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/scopes/installations'].get
update:
x-apievangelist-phrasing:
intent: List scopes an app can request on team install
effect: read
questions:
- What permissions can an application ask for when it is installed on a team?
- Which installation scopes are available to choose from for my app?
instructions:
- text: Show the scopes an application may request when installed on a team.
- text: List the available installation scopes.
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/scopes/oauth2'].get
update:
x-apievangelist-phrasing:
intent: List scopes an app can request during OAuth2
effect: read
questions:
- What scopes can my application request from users during the OAuth2 sign-in flow?
- Which OAuth2 permission scopes are supported for applications?
instructions:
- text: List the OAuth2 scopes an application can request.
- text: Show me every scope available in the OAuth2 consent flow.
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}'].get
update:
x-apievangelist-phrasing:
intent: Get an application's details
effect: read
questions:
- What redirect URIs and settings does a particular application have?
- Can I look up one registered application by its ID?
instructions:
- text: Get application {appId}.
slots:
appId: path.appId
- text: Show the configuration of app {appId}.
slots:
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}'].put
update:
x-apievangelist-phrasing:
intent: Update an application's settings
effect: write
questions:
- How do I change the redirect URIs of an application I already registered?
- Can I set the installation scopes and installation redirect URL on an existing app?
instructions:
- text: Rename application {appId} to {name}.
slots:
appId: path.appId
name: requestBody.name
- text: Update app {appId} named {name} to use redirect URIs {redirectUris}.
slots:
appId: path.appId
name: requestBody.name
redirectUris: requestBody.redirectUris
- text: Set installation scopes {installationScopes} on app {appId} named {name}.
slots:
installationScopes: requestBody.installationScopes
appId: path.appId
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an application
effect: destructive
questions:
- How do I permanently remove a registered application?
- Is deleting an OAuth2 application reversible?
instructions:
- text: Delete application {appId}.
slots:
appId: path.appId
- text: Remove app {appId} entirely.
slots:
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/installations'].get
update:
x-apievangelist-phrasing:
intent: List the teams where an app is installed
effect: read
questions:
- Which teams have installed my application?
- Can I list an app's installations using an app key instead of a user session?
instructions:
- text: List installations of application {appId}.
slots:
appId: path.appId
- text: Show installations of app {appId} matching {queries}.
slots:
appId: path.appId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/installations/{installationId}'].get
update:
x-apievangelist-phrasing:
intent: Get one installation of an application
effect: read
questions:
- What scopes were granted to a specific installation of my app?
- Can I look up a single app installation by its ID?
instructions:
- text: Get installation {installationId} of application {appId}.
slots:
installationId: path.installationId
appId: path.appId
- text: Show the details of app {appId} installation {installationId}.
slots:
appId: path.appId
installationId: path.installationId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/installations/{installationId}'].delete
update:
x-apievangelist-phrasing:
intent: Uninstall an application from a team
effect: destructive
questions:
- How do I remove my app's installation from a team?
- Are installation access tokens revoked when an installation is deleted?
instructions:
- text: Delete installation {installationId} of application {appId}.
slots:
installationId: path.installationId
appId: path.appId
- text: Uninstall app {appId} by removing installation {installationId} and its tokens.
slots:
appId: path.appId
installationId: path.installationId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/installations/{installationId}/tokens'].post
update:
x-apievangelist-phrasing:
intent: Issue an access token for an app installation
effect: write
questions:
- How do I get a bearer token that acts with an installation's granted scopes?
- Can several installation tokens be active at once, and when do they stop working?
instructions:
- text: Create an access token for installation {installationId} of app {appId}.
slots:
installationId: path.installationId
appId: path.appId
- text: Mint a bearer token for app {appId} acting as installation {installationId}.
slots:
appId: path.appId
installationId: path.installationId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/keys'].get
update:
x-apievangelist-phrasing:
intent: List an application's app keys
effect: read
questions:
- Which app keys exist for my application?
- Can I filter an application's keys with queries?
instructions:
- text: List the app keys for application {appId}.
slots:
appId: path.appId
- text: Show app keys of {appId} matching {queries}.
slots:
appId: path.appId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/keys'].post
update:
x-apievangelist-phrasing:
intent: Create an app key for an application
effect: write
questions:
- How do I get a key my app can send in the X-Appwrite-Key header to manage installations?
- Do app keys carry any scopes of their own?
instructions:
- text: Create a new app key for application {appId}.
slots:
appId: path.appId
- text: Generate an app key for {appId} so it can list installations and mint installation tokens.
slots:
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/keys/{keyId}'].get
update:
x-apievangelist-phrasing:
intent: Get one app key
effect: read
questions:
- What are the details of a specific app key?
- Can I look up an application's key by its ID?
instructions:
- text: Get app key {keyId} for application {appId}.
slots:
keyId: path.keyId
appId: path.appId
- text: Show details of key {keyId} on app {appId}.
slots:
keyId: path.keyId
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/keys/{keyId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an app key
effect: destructive
questions:
- How do I revoke an app key that may have leaked?
- Can I remove one app key without affecting the application's client secrets?
instructions:
- text: Delete app key {keyId} from application {appId}.
slots:
keyId: path.keyId
appId: path.appId
- text: Revoke key {keyId} on app {appId}.
slots:
keyId: path.keyId
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/labels'].put
update:
x-apievangelist-phrasing:
intent: Set the labels on an application
effect: write
questions:
- Can I tag an application with labels from my server SDK?
- Does setting application labels replace the ones already there?
instructions:
- text: Set the labels of application {appId} to {labels}.
slots:
appId: path.appId
labels: requestBody.labels
- text: Replace app {appId}'s labels with {labels}.
slots:
appId: path.appId
labels: requestBody.labels
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/secrets'].get
update:
x-apievangelist-phrasing:
intent: List an application's client secrets
effect: read
questions:
- Which client secrets have been generated for my OAuth2 app?
- Can I filter an application's client secrets with queries?
instructions:
- text: List the client secrets for application {appId}.
slots:
appId: path.appId
- text: Show client secrets of app {appId} matching {queries}.
slots:
appId: path.appId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/secrets'].post
update:
x-apievangelist-phrasing:
intent: Generate a new client secret for an application
effect: write
questions:
- How do I create a client secret for my application's OAuth2 token exchange?
- Can an application have more than one client secret for rotation?
instructions:
- text: Create a new client secret for application {appId}.
slots:
appId: path.appId
- text: Generate an additional client secret on app {appId} so I can rotate the old one.
slots:
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/secrets/{secretId}'].get
update:
x-apievangelist-phrasing:
intent: Get one client secret of an application
effect: read
questions:
- What are the details of a particular client secret on my app?
- Can I fetch a single application client secret by its ID?
instructions:
- text: Get client secret {secretId} of application {appId}.
slots:
secretId: path.secretId
appId: path.appId
- text: Show secret {secretId} on app {appId}.
slots:
secretId: path.secretId
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/secrets/{secretId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a client secret from an application
effect: destructive
questions:
- How do I retire an old client secret after rotating to a new one?
- Will deleting a client secret break integrations still using it?
instructions:
- text: Delete client secret {secretId} from application {appId}.
slots:
secretId: path.secretId
appId: path.appId
- text: Revoke secret {secretId} on app {appId}.
slots:
secretId: path.secretId
appId: path.appId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/team'].patch
update:
x-apievangelist-phrasing:
intent: Transfer an application to another team
effect: write
questions:
- Can I move ownership of an application to a different team?
- What do I need to transfer an app between teams?
instructions:
- text: Transfer application {appId} to team {teamId}.
slots:
appId: path.appId
teamId: requestBody.teamId
- text: Move app {appId} so it is owned by team {teamId}.
slots:
appId: path.appId
teamId: requestBody.teamId
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/{appId}/tokens'].delete
update:
x-apievangelist-phrasing:
intent: Revoke all tokens issued for an application
effect: destructive
questions:
- How do I invalidate every access token my application has issued at once?
- Is there a way to force all users of an app to re-authorize?
instructions:
- text: Revoke all tokens for application {appId}.
slots:
appId: path.appId
- text: Invalidate every token app {appId} has issued.
slots:
appId: path.appId
method: generated
generated: '2026-09-26'