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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'