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