Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Projects API

19 actions 19 updates phrasing extends openapi/appwrite-projects-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 19 · first 16 shown; the file carries all of them

$.info
$.paths['/projects/{projectId}/addons'].get
$.paths['/projects/{projectId}/addons/premium-geo-db'].post
$.paths['/projects/{projectId}/addons/{addonId}'].get
$.paths['/projects/{projectId}/addons/{addonId}'].delete
$.paths['/projects/{projectId}/addons/{addonId}/confirmations'].post
$.paths['/projects/{projectId}/addons/{addon}/price'].get
$.paths['/projects/{projectId}/console-access'].patch
$.paths['/projects/{projectId}/dev-keys'].get
$.paths['/projects/{projectId}/dev-keys/{keyId}'].get
$.paths['/projects/{projectId}/dev-keys/{keyId}'].put
$.paths['/projects/{projectId}/dev-keys/{keyId}'].delete
$.paths['/projects/{projectId}/schedules'].get
$.paths['/projects/{projectId}/schedules'].post
$.paths['/projects/{projectId}/schedules/{scheduleId}'].get
$.paths['/projects/{projectId}/stages'].get

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 Projects API
  version: 1.0.0
extends: openapi/appwrite-projects-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: 18
- target: $.paths['/projects/{projectId}/addons'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's billing addons
      effect: read
      questions:
      - Which paid addons are active on my Appwrite project?
      - Where can I see every billing addon attached to one project?
      instructions:
      - text: List the billing addons on project {projectId}.
        slots:
          projectId: path.projectId
      - text: Show me which addons project {projectId} is paying for.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/addons/premium-geo-db'].post
  update:
    x-apievangelist-phrasing:
      intent: Add the Premium Geo DB addon to a project
      effect: write
      questions:
      - How do I turn on the Premium Geo DB addon for a project?
      - Can I buy premium geolocation data as an addon for just one project?
      instructions:
      - text: Add the Premium Geo DB addon to project {projectId}.
        slots:
          projectId: path.projectId
      - text: Subscribe project {projectId} to premium geo database lookups.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/addons/{addonId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one project addon
      effect: read
      questions:
      - What are the details of a specific billing addon on my project?
      - Can I check the status of one addon by its ID?
      instructions:
      - text: Show addon {addonId} on project {projectId}.
        slots:
          addonId: path.addonId
          projectId: path.projectId
      - text: Get the billing details of addon {addonId} for project {projectId}.
        slots:
          addonId: path.addonId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/addons/{addonId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a billing addon from a project
      effect: destructive
      questions:
      - How do I cancel a paid addon on one of my projects?
      - Can I drop an addon I no longer need from a project?
      instructions:
      - text: Delete addon {addonId} from project {projectId}.
        slots:
          addonId: path.addonId
          projectId: path.projectId
      - text: Cancel the billing addon {addonId} on project {projectId}.
        slots:
          addonId: path.addonId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/addons/{addonId}/confirmations'].post
  update:
    x-apievangelist-phrasing:
      intent: Confirm an addon payment after 3DS
      effect: write
      questions:
      - My addon purchase asked for 3D Secure, how do I finish the payment?
      - What call completes an addon payment once card authentication succeeds?
      instructions:
      - text: Confirm the payment for addon {addonId} on project {projectId} after 3DS authentication.
        slots:
          addonId: path.addonId
          projectId: path.projectId
      - text: Finalize the 3D Secure payment for project {projectId} addon {addonId}.
        slots:
          projectId: path.projectId
          addonId: path.addonId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/addons/{addon}/price'].get
  update:
    x-apievangelist-phrasing:
      intent: Check what an addon will cost a project
      effect: read
      questions:
      - How much will an addon cost if I add it partway through my billing cycle?
      - Can I see the prorated price of an addon before buying it?
      instructions:
      - text: Get the price of the {addon} addon for project {projectId}.
        slots:
          addon: path.addon
          projectId: path.projectId
      - text: Show the prorated amount for adding {addon} to project {projectId} this cycle.
        slots:
          addon: path.addon
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/console-access'].patch
  update:
    x-apievangelist-phrasing:
      intent: Record console access to a project
      effect: write
      questions:
      - How does the console track when a project was last opened?
      - Can I update a project's last-accessed timestamp?
      instructions:
      - text: Record console access to project {projectId}.
        slots:
          projectId: path.projectId
      - text: Bump the last accessed time on project {projectId}.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/dev-keys'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's dev keys
      effect: read
      questions:
      - Which dev keys exist for my project?
      - Can I filter a project's dev keys with queries?
      instructions:
      - text: List the dev keys for project {projectId}.
        slots:
          projectId: path.projectId
      - text: List dev keys on project {projectId} matching {queries}.
        slots:
          projectId: path.projectId
          queries: query.queries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/dev-keys/{keyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one dev key
      effect: read
      questions:
      - When does a particular dev key expire?
      - How do I look up a single dev key by its ID?
      instructions:
      - text: Show dev key {keyId} on project {projectId}.
        slots:
          keyId: path.keyId
          projectId: path.projectId
      - text: Get the name and expiry of dev key {keyId} in project {projectId}.
        slots:
          keyId: path.keyId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/dev-keys/{keyId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename a dev key or change its expiry
      effect: write
      questions:
      - Can I extend the expiration of an existing dev key?
      - How do I rename a dev key without creating a new one?
      instructions:
      - text: Rename dev key {keyId} in project {projectId} to {name} and set it to expire at {expire}.
        slots:
          keyId: path.keyId
          projectId: path.projectId
          name: requestBody.name
          expire: requestBody.expire
      - text: 'Update dev key {keyId} on project {projectId}: name {name}, expiry {expire}.'
        slots:
          keyId: path.keyId
          projectId: path.projectId
          name: requestBody.name
          expire: requestBody.expire
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/dev-keys/{keyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a dev key
      effect: destructive
      questions:
      - How do I revoke a dev key so it stops bypassing rate limits?
      - What happens to debugging and rate limits once a dev key is deleted?
      instructions:
      - text: Delete dev key {keyId} from project {projectId}.
        slots:
          keyId: path.keyId
          projectId: path.projectId
      - text: Revoke the dev key {keyId} on project {projectId}.
        slots:
          keyId: path.keyId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/schedules'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's schedules
      effect: read
      questions:
      - What scheduled jobs are set up in my project?
      - Can I filter a project's resource schedules with queries?
      instructions:
      - text: List all schedules in project {projectId}.
        slots:
          projectId: path.projectId
      - text: List schedules on project {projectId} matching {queries}.
        slots:
          projectId: path.projectId
          queries: query.queries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/schedules'].post
  update:
    x-apievangelist-phrasing:
      intent: Schedule a resource to run on a cron
      effect: write
      questions:
      - How do I put a function or other resource on a recurring schedule?
      - Can I create a schedule that starts out inactive?
      instructions:
      - text: Create a schedule in project {projectId} for {resourceType} {resourceId} running on {schedule}.
        slots:
          projectId: path.projectId
          resourceType: requestBody.resourceType
          resourceId: requestBody.resourceId
          schedule: requestBody.schedule
      - text: 'Schedule {resourceType} {resourceId} in project {projectId} with cron {schedule}, active: {active}.'
        slots:
          resourceType: requestBody.resourceType
          resourceId: requestBody.resourceId
          projectId: path.projectId
          schedule: requestBody.schedule
          active: requestBody.active
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/schedules/{scheduleId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one schedule
      effect: read
      questions:
      - What cron expression and resource does a given schedule use?
      - Is a specific schedule still active?
      instructions:
      - text: Show schedule {scheduleId} in project {projectId}.
        slots:
          scheduleId: path.scheduleId
          projectId: path.projectId
      - text: Get the cron and target of schedule {scheduleId} on project {projectId}.
        slots:
          scheduleId: path.scheduleId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/stages'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's onboarding stages
      effect: read
      questions:
      - Which onboarding steps have I finished or skipped for my project?
      - Can I see the SDK method tied to each onboarding stage?
      instructions:
      - text: List the onboarding stages for project {projectId}.
        slots:
          projectId: path.projectId
      - text: Show which onboarding stages are still pending on project {projectId}.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/stages/{stageId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Skip an onboarding stage
      effect: write
      questions:
      - Can I skip an onboarding step without doing the API action it asks for?
      - How do I mark a project onboarding stage as skipped?
      instructions:
      - text: Skip onboarding stage {stageId} on project {projectId}.
        slots:
          stageId: path.stageId
          projectId: path.projectId
      - text: Set skip to {skip} for stage {stageId} in project {projectId}.
        slots:
          skip: requestBody.skip
          stageId: path.stageId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/status'].patch
  update:
    x-apievangelist-phrasing:
      intent: Archive, restore or unpause a project
      effect: write
      questions:
      - How do I archive a project I'm not using anymore?
      - Can I bring a paused project back online?
      instructions:
      - text: Set the status of project {projectId} to {status}.
        slots:
          projectId: path.projectId
          status: requestBody.status
      - text: Archive project {projectId} by changing its status to {status}.
        slots:
          projectId: path.projectId
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{projectId}/team'].patch
  update:
    x-apievangelist-phrasing:
      intent: Transfer a project to another team
      effect: write
      questions:
      - Can I move a project to a different team?
      - What call hands ownership of a project over to another team?
      instructions:
      - text: Transfer project {projectId} to team {teamId}.
        slots:
          projectId: path.projectId
          teamId: requestBody.teamId
      - text: Change the owning team of project {projectId} to {teamId}.
        slots:
          projectId: path.projectId
          teamId: requestBody.teamId
      method: generated
      generated: '2026-09-26'