# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Appwrite Project API version: 1.0.0 extends: openapi/appwrite-project-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: 109 - target: $.paths['/project'].get update: x-apievangelist-phrasing: intent: Get the current project's details effect: read questions: - What are the settings and details of the project my key belongs to? - Can I read the current project's configuration in one call? instructions: - text: Show the details of this project. - text: Fetch the current project record. method: generated generated: '2026-09-26' - target: $.paths['/project'].delete update: x-apievangelist-phrasing: intent: Delete the whole project effect: destructive questions: - Can I permanently delete my entire Appwrite project? - What's the way to tear down the current project completely? instructions: - text: Delete this entire project. - text: Permanently remove the current project and everything in it. method: generated generated: '2026-09-26' - target: $.paths['/project/auth-methods/{methodId}'].patch update: x-apievangelist-phrasing: intent: Enable or disable a sign-in method effect: write questions: - Can I turn off email/password or anonymous login for my project? - Which built-in authentication methods can be switched on or off? instructions: - text: Set auth method {methodId} enabled to {enabled}. slots: methodId: path.methodId enabled: requestBody.enabled - text: Disable the {methodId} sign-in method, enabled {enabled}. slots: methodId: path.methodId enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/keys'].get update: x-apievangelist-phrasing: intent: List the project's API keys effect: read questions: - Which API keys exist on my project? - Can I filter my project's API keys with queries? instructions: - text: List all API keys in this project. - text: List API keys matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/keys'].post update: x-apievangelist-phrasing: intent: Create a long-lived scoped API key effect: write questions: - How do I create a server API key with only the scopes it needs? - Can a standard API key be set to expire on a specific date, or never? instructions: - text: Create API key {keyId} named {name} with scopes {scopes}. slots: keyId: requestBody.keyId name: requestBody.name scopes: requestBody.scopes - text: Create a standard key {name} (id {keyId}) with scopes {scopes} that expires at {expire}. slots: name: requestBody.name keyId: requestBody.keyId scopes: requestBody.scopes expire: requestBody.expire method: generated generated: '2026-09-26' - target: $.paths['/project/keys/ephemeral'].post update: x-apievangelist-phrasing: intent: Create a short-lived ephemeral API key effect: write questions: - Can I mint a temporary API key that expires within an hour? - What's the longest an ephemeral key can live? instructions: - text: Create an ephemeral key with scopes {scopes} that lasts {duration} seconds. slots: scopes: requestBody.scopes duration: requestBody.duration - text: Give me a short-lived key for {scopes} valid for {duration} seconds. slots: scopes: requestBody.scopes duration: requestBody.duration method: generated generated: '2026-09-26' - target: $.paths['/project/keys/{keyId}'].get update: x-apievangelist-phrasing: intent: Get one API key effect: read questions: - What scopes and expiry does a specific API key have? - Can I look up one API key by its ID? instructions: - text: Show API key {keyId}. slots: keyId: path.keyId - text: Tell me the scopes and expiration of key {keyId}. slots: keyId: path.keyId method: generated generated: '2026-09-26' - target: $.paths['/project/keys/{keyId}'].put update: x-apievangelist-phrasing: intent: Rename or rescope an API key effect: write questions: - Can I change the scopes on an API key I already created? - Is it possible to extend an existing key's expiration date? instructions: - text: Update key {keyId} to name {name} with scopes {scopes}. slots: keyId: path.keyId name: requestBody.name scopes: requestBody.scopes - text: Change existing key {keyId} ({name}, scopes {scopes}) to expire at {expire}. slots: keyId: path.keyId name: requestBody.name scopes: requestBody.scopes expire: requestBody.expire method: generated generated: '2026-09-26' - target: $.paths['/project/keys/{keyId}'].delete update: x-apievangelist-phrasing: intent: Revoke an API key effect: destructive questions: - How do I revoke a leaked API key? - Does deleting a key stop it from authenticating right away? instructions: - text: Delete API key {keyId}. slots: keyId: path.keyId - text: Revoke key {keyId} so it can no longer be used. slots: keyId: path.keyId method: generated generated: '2026-09-26' - target: $.paths['/project/labels'].put update: x-apievangelist-phrasing: intent: Set the project's labels effect: write questions: - Can I tag my project with labels so it's easier to filter in my organization? - How are project labels replaced? instructions: - text: Set this project's labels to {labels}. slots: labels: requestBody.labels - text: Label the project {labels}. slots: labels: requestBody.labels method: generated generated: '2026-09-26' - target: $.paths['/project/mock-phones'].get update: x-apievangelist-phrasing: intent: List test phone numbers and OTPs effect: read questions: - Which mock phone numbers have I set up for testers? - Can I see all mock phones along with their sign-in codes? instructions: - text: List all mock phone numbers in this project. - text: List mock phones matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/mock-phones'].post update: x-apievangelist-phrasing: intent: Add a mock phone number for testing effect: write questions: - How can testers sign in by phone without receiving a real SMS? - Can I give a test phone number a fixed OTP? instructions: - text: Add mock phone {number} with OTP {otp}. slots: number: requestBody.number otp: requestBody.otp - text: Register test number {number} that always signs in with code {otp}. slots: number: requestBody.number otp: requestBody.otp method: generated generated: '2026-09-26' - target: $.paths['/project/mock-phones/{number}'].get update: x-apievangelist-phrasing: intent: Get a mock phone's OTP effect: read questions: - What OTP is set for one of my test phone numbers? - Can I look up a single mock phone by its number? instructions: - text: Show mock phone {number}. slots: number: path.number - text: Tell me the sign-in code for test number {number}. slots: number: path.number method: generated generated: '2026-09-26' - target: $.paths['/project/mock-phones/{number}'].put update: x-apievangelist-phrasing: intent: Change a mock phone's OTP effect: write questions: - Can I change the sign-in code on an existing mock phone number? - Is it possible to rotate a test phone's OTP? instructions: - text: Change the OTP for mock phone {number} to {otp}. slots: number: path.number otp: requestBody.otp - text: Update existing test number {number} to use code {otp}. slots: number: path.number otp: requestBody.otp method: generated generated: '2026-09-26' - target: $.paths['/project/mock-phones/{number}'].delete update: x-apievangelist-phrasing: intent: Remove a mock phone number effect: destructive questions: - Can I remove a test phone number I no longer need? - What happens to a mock phone's OTP when it is deleted? instructions: - text: Delete mock phone {number}. slots: number: path.number - text: Remove test number {number} from the project. slots: number: path.number method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2'].get update: x-apievangelist-phrasing: intent: List OAuth2 providers and their config effect: read questions: - Which social login providers are supported and which have I enabled? - Why do client secrets come back empty when listing OAuth providers? instructions: - text: List every OAuth2 provider and its configuration. - text: List OAuth2 providers matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2-server'].put update: x-apievangelist-phrasing: intent: Configure the project as an OAuth2/OIDC server effect: write questions: - Can my project act as its own OpenID Connect provider for other apps? - How long do issued access and refresh tokens last, and can I change that? - Is device-code login supported, and can I set the user code format? instructions: - text: Enable the OAuth2 server {enabled} with authorization URL {authorizationUrl}. slots: enabled: requestBody.enabled authorizationUrl: requestBody.authorizationUrl - text: Set OAuth2 server access tokens to last {accessTokenDuration} and refresh tokens {refreshTokenDuration}. slots: accessTokenDuration: requestBody.accessTokenDuration refreshTokenDuration: requestBody.refreshTokenDuration - text: Set the OAuth2 server's supported scopes to {scopes} and default scopes to {defaultScopes}. slots: scopes: requestBody.scopes defaultScopes: requestBody.defaultScopes - text: Use device verification URL {verificationUrl} with {userCodeLength}-character user codes. slots: verificationUrl: requestBody.verificationUrl userCodeLength: requestBody.userCodeLength method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/amazon'].patch update: x-apievangelist-phrasing: intent: Configure Amazon sign-in effect: write questions: - Can users log in to my app with their Amazon account? - Where do I put the Amazon OAuth client ID and secret? instructions: - text: Enable Amazon sign-in with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Amazon login enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/apple'].patch update: x-apievangelist-phrasing: intent: Configure Sign in with Apple effect: write questions: - How do I add Sign in with Apple using my service ID, team ID and .p8 key? - Which Apple credentials does the OAuth setup need? instructions: - text: Configure Sign in with Apple with service ID {serviceId}, key ID {keyId}, team ID {teamId} and p8 file {p8File}. slots: serviceId: requestBody.serviceId keyId: requestBody.keyId teamId: requestBody.teamId p8File: requestBody.p8File - text: Switch Apple login to enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/appwrite'].patch update: x-apievangelist-phrasing: intent: Configure Appwrite as an OAuth login effect: write questions: - Can people sign in to my project using their Appwrite account? - What client credentials does the Appwrite OAuth option take? instructions: - text: Set up Appwrite account login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Toggle the Appwrite OAuth provider to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/auth0'].patch update: x-apievangelist-phrasing: intent: Configure Auth0 sign-in effect: write questions: - Can I connect my Auth0 tenant as a login option? - Where does the Auth0 tenant domain go in the OAuth settings? instructions: - text: Connect Auth0 at {endpoint} with client ID {clientId} and secret {clientSecret}. slots: endpoint: requestBody.endpoint clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Auth0 login to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/authentik'].patch update: x-apievangelist-phrasing: intent: Configure Authentik sign-in effect: write questions: - Can my self-hosted Authentik server act as a login provider? - What endpoint and credentials does Authentik OAuth need? instructions: - text: Configure Authentik at {endpoint} using client {clientId} and secret {clientSecret}. slots: endpoint: requestBody.endpoint clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Turn Authentik sign-in {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/autodesk'].patch update: x-apievangelist-phrasing: intent: Configure Autodesk sign-in effect: write questions: - Is it possible to let users authenticate with Autodesk? - Which Autodesk app credentials do I paste into the project? instructions: - text: Add Autodesk login using client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Mark the Autodesk OAuth provider enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/bitbucket'].patch update: x-apievangelist-phrasing: intent: Configure Bitbucket sign-in effect: write questions: - Can developers sign in to my app with Bitbucket? - Does Bitbucket OAuth use a key and secret rather than a client ID? instructions: - text: Set up Bitbucket login with key {key} and secret {secret}. slots: key: requestBody.key secret: requestBody.secret - text: Change Bitbucket sign-in to enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/bitly'].patch update: x-apievangelist-phrasing: intent: Configure Bitly sign-in effect: write questions: - Can users connect their Bitly account to log in? - Where do the Bitly OAuth credentials get saved? instructions: - text: Configure Bitly OAuth with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set the Bitly provider to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/box'].patch update: x-apievangelist-phrasing: intent: Configure Box sign-in effect: write questions: - Can people sign in with their Box account? - What do I need from my Box developer app to enable login? instructions: - text: Enable Box login with client ID {clientId} and client secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Flip Box sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/cloudflare'].patch update: x-apievangelist-phrasing: intent: Configure Cloudflare sign-in effect: write questions: - Can my users log in with a Cloudflare account? - Which Cloudflare OAuth values does the project store? instructions: - text: Configure Cloudflare login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Cloudflare OAuth enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/dailymotion'].patch update: x-apievangelist-phrasing: intent: Configure Dailymotion sign-in effect: write questions: - Can viewers sign in with Dailymotion? - Does Dailymotion login take an API key and API secret? instructions: - text: Set up Dailymotion login with API key {apiKey} and API secret {apiSecret}. slots: apiKey: requestBody.apiKey apiSecret: requestBody.apiSecret - text: Turn Dailymotion OAuth {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/discord'].patch update: x-apievangelist-phrasing: intent: Configure Discord sign-in effect: write questions: - How do I let gamers log in with Discord? - Where do I save my Discord application's client secret? instructions: - text: Enable Discord login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Discord sign-in enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/disqus'].patch update: x-apievangelist-phrasing: intent: Configure Disqus sign-in effect: write questions: - Can commenters sign in with their Disqus account? - Which Disqus public and secret keys does the login need? instructions: - text: Configure Disqus login with public key {publicKey} and secret key {secretKey}. slots: publicKey: requestBody.publicKey secretKey: requestBody.secretKey - text: Switch Disqus OAuth to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/dropbox'].patch update: x-apievangelist-phrasing: intent: Configure Dropbox sign-in effect: write questions: - Can users authenticate with Dropbox? - Does the Dropbox login use an app key and app secret? instructions: - text: Set up Dropbox sign-in with app key {appKey} and app secret {appSecret}. slots: appKey: requestBody.appKey appSecret: requestBody.appSecret - text: Set the Dropbox provider enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/etsy'].patch update: x-apievangelist-phrasing: intent: Configure Etsy sign-in effect: write questions: - Can sellers log in to my app with Etsy? - What are the keystring and shared secret for Etsy OAuth? instructions: - text: Configure Etsy login with keystring {keyString} and shared secret {sharedSecret}. slots: keyString: requestBody.keyString sharedSecret: requestBody.sharedSecret - text: Turn Etsy sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/facebook'].patch update: x-apievangelist-phrasing: intent: Configure Facebook sign-in effect: write questions: - How do I add a Log in with Facebook option? - Which Facebook app ID and secret does the project need? instructions: - text: Enable Facebook login with app ID {appId} and app secret {appSecret}. slots: appId: requestBody.appId appSecret: requestBody.appSecret - text: Set Facebook OAuth enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/figma'].patch update: x-apievangelist-phrasing: intent: Configure Figma sign-in effect: write questions: - Can designers sign in with their Figma account? - Where do I enter my Figma OAuth app credentials? instructions: - text: Set up Figma login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Change the Figma provider to enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/fusionauth'].patch update: x-apievangelist-phrasing: intent: Configure FusionAuth sign-in effect: write questions: - Can I plug my FusionAuth instance in as a login provider? - What FusionAuth endpoint and client values are required? instructions: - text: Connect FusionAuth at {endpoint} with client ID {clientId} and secret {clientSecret}. slots: endpoint: requestBody.endpoint clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set FusionAuth login to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/github'].patch update: x-apievangelist-phrasing: intent: Configure GitHub sign-in effect: write questions: - How do I let developers sign in with GitHub? - Where does my GitHub OAuth app's client secret go? instructions: - text: Enable GitHub login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set GitHub sign-in enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/gitlab'].patch update: x-apievangelist-phrasing: intent: Configure GitLab sign-in effect: write questions: - Can users log in with GitLab, including a self-managed GitLab instance? - Which GitLab application ID and secret does the login take? instructions: - text: Configure GitLab login at {endpoint} with application ID {applicationId} and secret {secret}. slots: endpoint: requestBody.endpoint applicationId: requestBody.applicationId secret: requestBody.secret - text: Turn GitLab sign-in {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/google'].patch update: x-apievangelist-phrasing: intent: Configure Google sign-in effect: write questions: - How do I add Sign in with Google to my project? - Can I force Google to show the account picker or consent prompt? instructions: - text: Enable Google login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set the Google sign-in prompt to {prompt}. slots: prompt: requestBody.prompt - text: Set Google OAuth enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/huggingface'].patch update: x-apievangelist-phrasing: intent: Configure Hugging Face sign-in effect: write questions: - Can ML users sign in with their Hugging Face account? - Where do the Hugging Face OAuth credentials go? instructions: - text: Set up Hugging Face login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Switch Hugging Face sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/kakao'].patch update: x-apievangelist-phrasing: intent: Configure Kakao sign-in effect: write questions: - Can Korean users log in with Kakao? - Which Kakao client ID and secret does the project store? instructions: - text: Configure Kakao login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Kakao OAuth to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/keycloak'].patch update: x-apievangelist-phrasing: intent: Configure Keycloak sign-in effect: write questions: - Can I use a Keycloak realm as my project's login provider? - Where do the Keycloak endpoint and realm name get configured? instructions: - text: Connect Keycloak realm {realmName} at {endpoint} with client {clientId} and secret {clientSecret}. slots: realmName: requestBody.realmName endpoint: requestBody.endpoint clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Keycloak sign-in enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/kick'].patch update: x-apievangelist-phrasing: intent: Configure Kick sign-in effect: write questions: - Can streamers sign in with a Kick account? - What Kick OAuth credentials does the project need? instructions: - text: Enable Kick login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Turn Kick OAuth {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/linkedin'].patch update: x-apievangelist-phrasing: intent: Configure LinkedIn sign-in effect: write questions: - Can professionals log in with LinkedIn? - Does LinkedIn login use a primary client secret? instructions: - text: Set up LinkedIn login with client ID {clientId} and primary client secret {primaryClientSecret}. slots: clientId: requestBody.clientId primaryClientSecret: requestBody.primaryClientSecret - text: Set LinkedIn sign-in to enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/microsoft'].patch update: x-apievangelist-phrasing: intent: Configure Microsoft sign-in effect: write questions: - How do I let users sign in with a Microsoft or Entra account? - Can I restrict Microsoft login to a single tenant? instructions: - text: Configure Microsoft login with application ID {applicationId} and secret {applicationSecret}. slots: applicationId: requestBody.applicationId applicationSecret: requestBody.applicationSecret - text: Set the Microsoft sign-in tenant to {tenant}. slots: tenant: requestBody.tenant - text: Set Microsoft OAuth enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/notion'].patch update: x-apievangelist-phrasing: intent: Configure Notion sign-in effect: write questions: - Can users log in with their Notion workspace account? - Where do I enter the Notion OAuth client ID and secret? instructions: - text: Enable Notion login with OAuth client {oauthClientId} and secret {oauthClientSecret}. slots: oauthClientId: requestBody.oauthClientId oauthClientSecret: requestBody.oauthClientSecret - text: Switch Notion sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/oidc'].patch update: x-apievangelist-phrasing: intent: Configure a generic OpenID Connect login effect: write questions: - Can I connect any OpenID Connect identity provider using its well-known URL? - What if my OIDC provider has no discovery document, can I set the authorization and token URLs by hand? instructions: - text: Configure OIDC login from {wellKnownURL} with client {clientId} and secret {clientSecret}. slots: wellKnownURL: requestBody.wellKnownURL clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set OIDC endpoints to authorize at {authorizationURL}, token at {tokenURL} and user info at {userInfoURL}. slots: authorizationURL: requestBody.authorizationURL tokenURL: requestBody.tokenURL userInfoURL: requestBody.userInfoURL - text: Set the OIDC prompt to {prompt} and max age to {maxAge}. slots: prompt: requestBody.prompt maxAge: requestBody.maxAge method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/okta'].patch update: x-apievangelist-phrasing: intent: Configure Okta sign-in effect: write questions: - Can employees sign in through our Okta org? - Can I point Okta login at a custom authorization server? instructions: - text: Connect Okta domain {domain} with client ID {clientId} and secret {clientSecret}. slots: domain: requestBody.domain clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Use Okta authorization server {authorizationServerId} for sign-in. slots: authorizationServerId: requestBody.authorizationServerId method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/paypal'].patch update: x-apievangelist-phrasing: intent: Configure PayPal sign-in effect: write questions: - Can shoppers log in with their live PayPal account? - Which PayPal client ID and secret key go into the production login? instructions: - text: Enable PayPal login with client ID {clientId} and secret key {secretKey}. slots: clientId: requestBody.clientId secretKey: requestBody.secretKey - text: Set live PayPal sign-in enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/paypalSandbox'].patch update: x-apievangelist-phrasing: intent: Configure PayPal sandbox sign-in effect: write questions: - Can I test PayPal login against the PayPal sandbox first? - Where do my PayPal sandbox app credentials go? instructions: - text: Configure PayPal sandbox login with client ID {clientId} and secret key {secretKey}. slots: clientId: requestBody.clientId secretKey: requestBody.secretKey - text: Turn the PayPal sandbox provider {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/podio'].patch update: x-apievangelist-phrasing: intent: Configure Podio sign-in effect: write questions: - Can teams sign in with their Podio account? - What Podio client credentials does the login need? instructions: - text: Set up Podio login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Podio OAuth to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/resend'].patch update: x-apievangelist-phrasing: intent: Configure Resend sign-in effect: write questions: - Can users sign in with a Resend account? - Where are the Resend OAuth client values saved? instructions: - text: Enable Resend login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Switch Resend sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/salesforce'].patch update: x-apievangelist-phrasing: intent: Configure Salesforce sign-in effect: write questions: - Can CRM users log in with Salesforce? - Does Salesforce login use a customer key and customer secret? instructions: - text: Configure Salesforce login with customer key {customerKey} and customer secret {customerSecret}. slots: customerKey: requestBody.customerKey customerSecret: requestBody.customerSecret - text: Set Salesforce sign-in enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/slack'].patch update: x-apievangelist-phrasing: intent: Configure Slack sign-in effect: write questions: - Can people sign in to my app with Slack? - Which Slack app credentials enable the login button? instructions: - text: Set up Slack login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Turn Slack OAuth {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/spotify'].patch update: x-apievangelist-phrasing: intent: Configure Spotify sign-in effect: write questions: - Can listeners log in with Spotify? - Where do I paste the Spotify app client secret? instructions: - text: Enable Spotify login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Spotify sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/stripe'].patch update: x-apievangelist-phrasing: intent: Configure Stripe sign-in effect: write questions: - Can merchants sign in with their Stripe account? - Does Stripe login need an API secret key plus a client ID? instructions: - text: Configure Stripe login with client ID {clientId} and API secret key {apiSecretKey}. slots: clientId: requestBody.clientId apiSecretKey: requestBody.apiSecretKey - text: Set Stripe OAuth enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/tiktok'].patch update: x-apievangelist-phrasing: intent: Configure TikTok sign-in effect: write questions: - Can creators log in with TikTok? - Which TikTok developer credentials does the project store? instructions: - text: Set up TikTok login with client key {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Switch TikTok sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/tradeshift'].patch update: x-apievangelist-phrasing: intent: Configure Tradeshift sign-in effect: write questions: - Can suppliers log in with their production Tradeshift account? - Which Tradeshift OAuth2 client ID and secret power the live login? instructions: - text: Enable Tradeshift login with OAuth2 client {oauth2ClientId} and secret {oauth2ClientSecret}. slots: oauth2ClientId: requestBody.oauth2ClientId oauth2ClientSecret: requestBody.oauth2ClientSecret - text: Set production Tradeshift sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/tradeshiftBox'].patch update: x-apievangelist-phrasing: intent: Configure Tradeshift sandbox sign-in effect: write questions: - Can I test Tradeshift login against the Tradeshift sandbox? - Where do my Tradeshift sandbox OAuth2 credentials go? instructions: - text: Configure the Tradeshift sandbox login with client {oauth2ClientId} and secret {oauth2ClientSecret}. slots: oauth2ClientId: requestBody.oauth2ClientId oauth2ClientSecret: requestBody.oauth2ClientSecret - text: Turn the Tradeshift sandbox provider {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/twitch'].patch update: x-apievangelist-phrasing: intent: Configure Twitch sign-in effect: write questions: - Can streamers and viewers sign in with Twitch? - What Twitch app client ID and secret are needed? instructions: - text: Set up Twitch login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Twitch OAuth enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/wordpress'].patch update: x-apievangelist-phrasing: intent: Configure WordPress sign-in effect: write questions: - Can bloggers log in with their WordPress.com account? - Where does the WordPress OAuth client secret go? instructions: - text: Enable WordPress login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Switch WordPress sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/x'].patch update: x-apievangelist-phrasing: intent: Configure X (Twitter) sign-in effect: write questions: - Can users log in with their X (formerly Twitter) account? - Does X login use a customer key and secret key? instructions: - text: Configure X login with customer key {customerKey} and secret key {secretKey}. slots: customerKey: requestBody.customerKey secretKey: requestBody.secretKey - text: Set X sign-in enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/yahoo'].patch update: x-apievangelist-phrasing: intent: Configure Yahoo sign-in effect: write questions: - Can people sign in with a Yahoo account? - Which Yahoo app credentials does the login use? instructions: - text: Set up Yahoo login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Turn Yahoo OAuth {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/yandex'].patch update: x-apievangelist-phrasing: intent: Configure Yandex sign-in effect: write questions: - Can users log in with Yandex ID? - Where do the Yandex OAuth client values get entered? instructions: - text: Enable Yandex login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Yandex sign-in to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/zoho'].patch update: x-apievangelist-phrasing: intent: Configure Zoho sign-in effect: write questions: - Can business users sign in with Zoho? - Which Zoho OAuth client credentials are needed? instructions: - text: Configure Zoho login with client ID {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Switch Zoho OAuth to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/zoom'].patch update: x-apievangelist-phrasing: intent: Configure Zoom sign-in effect: write questions: - Can meeting hosts log in with their Zoom account? - Where do I put my Zoom OAuth app's client secret? instructions: - text: Set up Zoom login with client {clientId} and secret {clientSecret}. slots: clientId: requestBody.clientId clientSecret: requestBody.clientSecret - text: Set Zoom sign-in enabled {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/oauth2/{providerId}'].get update: x-apievangelist-phrasing: intent: Get one OAuth2 provider's configuration effect: read questions: - Is a particular social login provider enabled on my project? - Can I read back one OAuth provider's settings by its ID? instructions: - text: Show the configuration of OAuth2 provider {providerId}. slots: providerId: path.providerId - text: Check whether {providerId} login is enabled. slots: providerId: path.providerId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms'].get update: x-apievangelist-phrasing: intent: List the project's client platforms effect: read questions: - Which web, mobile and desktop platforms are registered on my project? - Can I filter registered platforms with queries? instructions: - text: List all platforms registered in this project. - text: List platforms matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/android'].post update: x-apievangelist-phrasing: intent: Register an Android app platform effect: write questions: - How do I register my Android app so it can call the project? - What does an Android platform need besides a name? instructions: - text: Register Android platform {platformId} named {name} for package {applicationId}. slots: platformId: requestBody.platformId name: requestBody.name applicationId: requestBody.applicationId - text: Add a new Android app {name} with application ID {applicationId}, id {platformId}. slots: name: requestBody.name applicationId: requestBody.applicationId platformId: requestBody.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/android/{platformId}'].put update: x-apievangelist-phrasing: intent: Update an Android platform effect: write questions: - Can I change the application ID of an Android platform I already registered? - Is renaming an existing Android platform possible? instructions: - text: Update Android platform {platformId} to name {name} and application ID {applicationId}. slots: platformId: path.platformId name: requestBody.name applicationId: requestBody.applicationId - text: Change the package of existing Android app {platformId} to {applicationId}, keeping name {name}. slots: platformId: path.platformId applicationId: requestBody.applicationId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/apple'].post update: x-apievangelist-phrasing: intent: Register an Apple app platform effect: write questions: - Can my iOS or macOS app be allowed to call the project? - Which bundle identifier does a new Apple platform need? instructions: - text: Register Apple platform {platformId} named {name} with bundle ID {bundleIdentifier}. slots: platformId: requestBody.platformId name: requestBody.name bundleIdentifier: requestBody.bundleIdentifier - text: Add a new iOS app {name} for bundle {bundleIdentifier}, id {platformId}. slots: name: requestBody.name bundleIdentifier: requestBody.bundleIdentifier platformId: requestBody.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/apple/{platformId}'].put update: x-apievangelist-phrasing: intent: Update an Apple platform effect: write questions: - Can I change the bundle identifier on an Apple platform that already exists? - Is it possible to rename a registered iOS platform? instructions: - text: Update Apple platform {platformId} to name {name} and bundle ID {bundleIdentifier}. slots: platformId: path.platformId name: requestBody.name bundleIdentifier: requestBody.bundleIdentifier - text: Change the bundle of existing iOS app {platformId} to {bundleIdentifier}, name {name}. slots: platformId: path.platformId bundleIdentifier: requestBody.bundleIdentifier name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/linux'].post update: x-apievangelist-phrasing: intent: Register a Linux app platform effect: write questions: - Can a Linux desktop app be registered to use the project? - What package name does a new Linux platform require? instructions: - text: Register Linux platform {platformId} named {name} with package {packageName}. slots: platformId: requestBody.platformId name: requestBody.name packageName: requestBody.packageName - text: Add a new Linux app {name} for package {packageName}, id {platformId}. slots: name: requestBody.name packageName: requestBody.packageName platformId: requestBody.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/linux/{platformId}'].put update: x-apievangelist-phrasing: intent: Update a Linux platform effect: write questions: - Can I change the package name of an existing Linux platform? - Is renaming a registered Linux platform supported? instructions: - text: Update Linux platform {platformId} to name {name} and package {packageName}. slots: platformId: path.platformId name: requestBody.name packageName: requestBody.packageName - text: Change existing Linux app {platformId} to package {packageName}, name {name}. slots: platformId: path.platformId packageName: requestBody.packageName name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/web'].post update: x-apievangelist-phrasing: intent: Register a web app hostname effect: write questions: - How do I allow my website's domain to call the project from the browser? - Which hostname should a new web platform use? instructions: - text: Register web platform {platformId} named {name} for hostname {hostname}. slots: platformId: requestBody.platformId name: requestBody.name hostname: requestBody.hostname - text: Allow a new web app {name} on {hostname}, id {platformId}. slots: name: requestBody.name hostname: requestBody.hostname platformId: requestBody.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/web/{platformId}'].put update: x-apievangelist-phrasing: intent: Update a web platform's hostname effect: write questions: - Can I move an existing web platform to a new hostname? - Is it possible to rename a registered web platform? instructions: - text: Update web platform {platformId} to name {name} and hostname {hostname}. slots: platformId: path.platformId name: requestBody.name hostname: requestBody.hostname - text: Point existing web app {platformId} at {hostname}, name {name}. slots: platformId: path.platformId hostname: requestBody.hostname name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/windows'].post update: x-apievangelist-phrasing: intent: Register a Windows app platform effect: write questions: - Can a Windows desktop app be registered with the project? - What package identifier name does a Windows platform need? instructions: - text: Register Windows platform {platformId} named {name} with package identifier {packageIdentifierName}. slots: platformId: requestBody.platformId name: requestBody.name packageIdentifierName: requestBody.packageIdentifierName - text: Add a new Windows app {name} for {packageIdentifierName}, id {platformId}. slots: name: requestBody.name packageIdentifierName: requestBody.packageIdentifierName platformId: requestBody.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/windows/{platformId}'].put update: x-apievangelist-phrasing: intent: Update a Windows platform effect: write questions: - Can I change the package identifier on an existing Windows platform? - Is renaming a registered Windows platform allowed? instructions: - text: Update Windows platform {platformId} to name {name} and package identifier {packageIdentifierName}. slots: platformId: path.platformId name: requestBody.name packageIdentifierName: requestBody.packageIdentifierName - text: Change existing Windows app {platformId} to {packageIdentifierName}, name {name}. slots: platformId: path.platformId packageIdentifierName: requestBody.packageIdentifierName name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/{platformId}'].get update: x-apievangelist-phrasing: intent: Get one platform's details effect: read questions: - What type and configuration does a specific registered platform have? - Can I look up a single platform by its ID? instructions: - text: Show platform {platformId}. slots: platformId: path.platformId - text: Get the name, type and key settings of platform {platformId}. slots: platformId: path.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/platforms/{platformId}'].delete update: x-apievangelist-phrasing: intent: Remove a registered platform effect: destructive questions: - Can I unregister an app platform I no longer ship? - What gets removed when a platform is deleted? instructions: - text: Delete platform {platformId}. slots: platformId: path.platformId - text: Unregister platform {platformId} and its configuration. slots: platformId: path.platformId method: generated generated: '2026-09-26' - target: $.paths['/project/policies'].get update: x-apievangelist-phrasing: intent: List the project's security policies effect: read questions: - Which password, session and sign-up policies are configured on my project? - Can I filter project policies with queries? instructions: - text: List all project policies and their settings. - text: List project policies matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/policies/deny-aliased-email'].patch update: x-apievangelist-phrasing: intent: Block aliased emails at sign-up effect: write questions: - Can I stop people signing up with plus-addressed or subaddressed emails? - Does the aliased email rule also apply when users change their email? instructions: - text: Set the deny-aliased-email policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Reject sign-ups using email aliases or subaddresses: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/deny-corporate-email'].patch update: x-apievangelist-phrasing: intent: Allow only corporate email sign-ups effect: write questions: - Can I require work email addresses and block free or disposable ones at sign-up? - How do I make my app accept only company email domains? instructions: - text: Set the corporate-email-only policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Require business email addresses for new users: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/deny-disposable-email'].patch update: x-apievangelist-phrasing: intent: Block disposable emails at sign-up effect: write questions: - Can I block throwaway temporary email addresses from registering? - Is there a setting to reject known disposable email domains? instructions: - text: Set the deny-disposable-email policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Reject temporary-domain emails at sign-up and email change: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/deny-free-email'].patch update: x-apievangelist-phrasing: intent: Block free email providers at sign-up effect: write questions: - Can I stop users registering with free mailboxes like Gmail or Yahoo? - Is there a toggle that rejects free email providers? instructions: - text: Set the deny-free-email policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Block free webmail addresses for new sign-ups: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/membership-privacy'].patch update: x-apievangelist-phrasing: intent: Control what team members see of each other effect: write questions: - Can I hide team members' emails and phone numbers from each other? - Which member details are visible to other people on a team? instructions: - text: Show member emails {userEmail} and phone numbers {userPhone} to teammates. slots: userEmail: requestBody.userEmail userPhone: requestBody.userPhone - text: Set teammate visibility of names to {userName}, MFA status to {userMFA} and last access to {userAccessedAt}. slots: userName: requestBody.userName userMFA: requestBody.userMFA userAccessedAt: requestBody.userAccessedAt method: generated generated: '2026-09-26' - target: $.paths['/project/policies/mfa-factors'].patch update: x-apievangelist-phrasing: intent: Choose which MFA factors users may use effect: write questions: - Can I disable SMS as a second factor but keep authenticator apps? - Is the custom MFA factor off by default, and how do I turn it on? instructions: - text: Allow TOTP {totp}, email {email} and phone {phone} as MFA factors. slots: totp: requestBody.totp email: requestBody.email phone: requestBody.phone - text: Set the custom MFA factor to {custom}. slots: custom: requestBody.custom method: generated generated: '2026-09-26' - target: $.paths['/project/policies/password-dictionary'].patch update: x-apievangelist-phrasing: intent: Reject common passwords effect: write questions: - Can I stop users choosing well-known weak passwords like password123? - Is there a check against a common-passwords dictionary? instructions: - text: Set the password dictionary policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Block passwords found in the common-password list: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/password-history'].patch update: x-apievangelist-phrasing: intent: Prevent reuse of recent passwords effect: write questions: - Can I stop users from reusing their last few passwords? - How many previous passwords can be remembered per user? instructions: - text: Remember the last {total} passwords per user. slots: total: requestBody.total - text: Set password history length to {total}. slots: total: requestBody.total method: generated generated: '2026-09-26' - target: $.paths['/project/policies/password-personal-data'].patch update: x-apievangelist-phrasing: intent: Block passwords containing personal data effect: write questions: - Can I reject passwords that contain the user's name, email or phone? - Is there a rule against personal info inside passwords? instructions: - text: Set the password personal-data policy to {enabled}. slots: enabled: requestBody.enabled - text: 'Reject passwords that include a user''s own details: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/password-strength'].patch update: x-apievangelist-phrasing: intent: Set password strength requirements effect: write questions: - Can I require a minimum password length and a mix of character types? - What password complexity rules can I enforce? instructions: - text: Require passwords of at least {min} characters. slots: min: requestBody.min - text: Require uppercase {uppercase}, lowercase {lowercase}, numbers {number} and symbols {symbols} in passwords. slots: uppercase: requestBody.uppercase lowercase: requestBody.lowercase number: requestBody.number symbols: requestBody.symbols method: generated generated: '2026-09-26' - target: $.paths['/project/policies/session-alert'].patch update: x-apievangelist-phrasing: intent: Email users when a new session starts effect: write questions: - Can users get an email alert whenever someone signs into their account? - Does the first session after sign-up trigger a login alert? instructions: - text: Set new-session email alerts to {enabled}. slots: enabled: requestBody.enabled - text: 'Notify users by email on every sign-in: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/session-duration'].patch update: x-apievangelist-phrasing: intent: Set how long sessions stay active effect: write questions: - How long do user sessions last before they expire, and can I shorten it? - Can I make logins expire after a set duration? instructions: - text: Set the maximum session duration to {duration}. slots: duration: requestBody.duration - text: Expire user sessions after {duration}. slots: duration: requestBody.duration method: generated generated: '2026-09-26' - target: $.paths['/project/policies/session-invalidation'].patch update: x-apievangelist-phrasing: intent: Log out other sessions on password change effect: write questions: - When a user changes their password, can all their other sessions be signed out? - Is there a setting to invalidate existing sessions after a password reset? instructions: - text: Set session invalidation on password change to {enabled}. slots: enabled: requestBody.enabled - text: 'Sign users out everywhere after they change their password: {enabled}.' slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/policies/session-limit'].patch update: x-apievangelist-phrasing: intent: Limit concurrent sessions per user effect: write questions: - Can I cap how many devices a user is logged in on at once? - What happens to the oldest session when the session limit is reached? instructions: - text: Allow at most {total} sessions per user. slots: total: requestBody.total - text: Set the per-user session limit to {total}. slots: total: requestBody.total method: generated generated: '2026-09-26' - target: $.paths['/project/policies/user-limit'].patch update: x-apievangelist-phrasing: intent: Cap the number of users in the project effect: write questions: - Can I limit how many users can sign up to my project? - Do existing users stay active when the user limit is exceeded? instructions: - text: Cap this project at {total} users. slots: total: requestBody.total - text: Set the maximum number of project users to {total}. slots: total: requestBody.total method: generated generated: '2026-09-26' - target: $.paths['/project/policies/{policyId}'].get update: x-apievangelist-phrasing: intent: Get one project policy's configuration effect: read questions: - What is a specific project policy currently set to? - Can I read back one policy by its ID? instructions: - text: Show project policy {policyId}. slots: policyId: path.policyId - text: Get the current setting of the {policyId} policy. slots: policyId: path.policyId method: generated generated: '2026-09-26' - target: $.paths['/project/protocols/{protocolId}'].patch update: x-apievangelist-phrasing: intent: Enable or disable an API protocol effect: write questions: - Can I turn off the GraphQL or REST protocol for my project? - Which access protocols can be switched off? instructions: - text: Set protocol {protocolId} enabled to {enabled}. slots: protocolId: path.protocolId enabled: requestBody.enabled - text: Turn the {protocolId} protocol {enabled}. slots: protocolId: path.protocolId enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/services/{serviceId}'].patch update: x-apievangelist-phrasing: intent: Enable or disable a project service effect: write questions: - Can I disable a service like storage or functions for my project? - Which services can be switched on or off per project? instructions: - text: Set service {serviceId} enabled to {enabled}. slots: serviceId: path.serviceId enabled: requestBody.enabled - text: Turn the {serviceId} service {enabled}. slots: serviceId: path.serviceId enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/smtp'].patch update: x-apievangelist-phrasing: intent: Use a custom SMTP server for emails effect: write questions: - How do I send my project's transactional emails through my own SMTP server? - Can I change the sender name and reply-to address on outgoing emails? instructions: - text: Use SMTP host {host} on port {port} with user {username} and password {password}. slots: host: requestBody.host port: requestBody.port username: requestBody.username password: requestBody.password - text: Send emails from {senderName} <{senderEmail}> with replies to {replyToEmail}. slots: senderName: requestBody.senderName senderEmail: requestBody.senderEmail replyToEmail: requestBody.replyToEmail - text: Set custom SMTP enabled to {enabled}. slots: enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/project/smtp/tests'].post update: x-apievangelist-phrasing: intent: Send a test email via SMTP effect: write questions: - Can I check that my SMTP settings work by sending a test email? - Who receives the SMTP test message? instructions: - text: Send an SMTP test email to {emails}. slots: emails: requestBody.emails - text: Verify my SMTP setup by mailing {emails}. slots: emails: requestBody.emails method: generated generated: '2026-09-26' - target: $.paths['/project/templates/email'].get update: x-apievangelist-phrasing: intent: List custom email templates effect: read questions: - Which email templates have I customized, and in which locales? - Can I filter my custom email templates with queries? instructions: - text: List all custom email templates in this project. - text: List email templates matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/templates/email'].patch update: x-apievangelist-phrasing: intent: Customize an email template effect: write questions: - How do I change the wording of the verification or password recovery email? - Can I set a different subject line for a template in another language? instructions: - text: Set the {templateId} email subject to {subject} and body to {message}. slots: templateId: requestBody.templateId subject: requestBody.subject message: requestBody.message - text: Update the {locale} version of the {templateId} template with subject {subject}. slots: locale: requestBody.locale templateId: requestBody.templateId subject: requestBody.subject - text: Send the {templateId} email from {senderName} at {senderEmail}. slots: templateId: requestBody.templateId senderName: requestBody.senderName senderEmail: requestBody.senderEmail method: generated generated: '2026-09-26' - target: $.paths['/project/templates/email/{templateId}'].get update: x-apievangelist-phrasing: intent: Get one email template's content effect: read questions: - What does my current password recovery email template say? - Can I read a template's subject and body for a specific locale? instructions: - text: Show email template {templateId}. slots: templateId: path.templateId - text: Get the {locale} version of template {templateId}. slots: locale: query.locale templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/project/usage'].get update: x-apievangelist-phrasing: intent: Get project usage statistics effect: read questions: - How much bandwidth, storage and function execution did my project use last month? - Can I see my project's usage broken down by hour or by day? instructions: - text: Show project usage from {startDate} to {endDate}. slots: startDate: query.startDate endDate: query.endDate - text: Get project usage between {startDate} and {endDate} per {period}. slots: startDate: query.startDate endDate: query.endDate period: query.period method: generated generated: '2026-09-26' - target: $.paths['/project/variables'].get update: x-apievangelist-phrasing: intent: List project environment variables effect: read questions: - Which environment variables are shared across my functions and sites? - Can I filter project-wide variables with queries? instructions: - text: List all project environment variables. - text: List project variables matching {queries}. slots: queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/project/variables'].post update: x-apievangelist-phrasing: intent: Add a project-wide environment variable effect: write questions: - How do I add an environment variable every function and site can read? - Can a project variable be marked secret so its value is hidden? instructions: - text: Create project variable {variableId} with key {key} and value {value}. slots: variableId: requestBody.variableId key: requestBody.key value: requestBody.value - text: Add secret {secret} variable {key}={value} with id {variableId}. slots: secret: requestBody.secret key: requestBody.key value: requestBody.value variableId: requestBody.variableId method: generated generated: '2026-09-26' - target: $.paths['/project/variables/{variableId}'].get update: x-apievangelist-phrasing: intent: Get one project variable effect: read questions: - What is the key and value of a particular project variable? - Can I look up a single environment variable by its ID? instructions: - text: Show project variable {variableId}. slots: variableId: path.variableId - text: Get the key and value of variable {variableId}. slots: variableId: path.variableId method: generated generated: '2026-09-26' - target: $.paths['/project/variables/{variableId}'].put update: x-apievangelist-phrasing: intent: Change a project variable effect: write questions: - Can I change the value of an existing project variable? - Is it possible to mark an existing variable as secret afterwards? instructions: - text: Set existing variable {variableId} to value {value}. slots: variableId: path.variableId value: requestBody.value - text: Rename variable {variableId} to key {key} and set secret {secret}. slots: variableId: path.variableId key: requestBody.key secret: requestBody.secret method: generated generated: '2026-09-26' - target: $.paths['/project/variables/{variableId}'].delete update: x-apievangelist-phrasing: intent: Delete a project variable effect: destructive questions: - Can I remove an environment variable from the whole project? - What's the way to delete one project variable by ID? instructions: - text: Delete project variable {variableId}. slots: variableId: path.variableId - text: Remove variable {variableId} from all functions and sites. slots: variableId: path.variableId method: generated generated: '2026-09-26'