Appwrite Project API

The Project service allows you to manage all the projects in your Appwrite server. 109 operations across 97 paths in the Appwrite 2.0.0 OpenAPI.

Operations 109

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appwrite:appwrite-project-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appwrite-project-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Project API
  description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to https://appwrite.io/docs
  termsOfService: https://appwrite.io/policy/terms
  contact:
    name: Appwrite Team
    url: https://appwrite.io/support
    email: team@appwrite.io
  license:
    name: BSD-3-Clause
    url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
  description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
  description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
  variables:
    region:
      default: fra
      description: Appwrite Cloud region.
tags:


# --- truncated at 32 KB (429 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-project-api-openapi.yml