openapi: 3.0.0 info: title: Appwrite 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](https://appwrite.io/docs) version: 1.5.0 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 tags: - description: The Account service allows you to authenticate and manage a user account. name: account x-globalAttributes: [] - description: >- The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources name: teams x-globalAttributes: [] - description: >- The Locale service allows you to customize your app based on your users' location. name: locale x-globalAttributes: [] - description: The Storage service allows you to manage your project files. name: storage x-globalAttributes: [] - description: >- The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars. name: avatars x-globalAttributes: [] - description: >- The Databases service allows you to create structured collections of documents, query and filter lists of documents name: databases x-globalAttributes: - databaseId - description: >- The Functions Service allows you view, create and manage your Cloud Functions. name: functions x-globalAttributes: [] - description: >- The GraphQL API allows you to query and mutate your Appwrite server using GraphQL. name: graphql x-globalAttributes: [] - description: >- The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.). name: messaging x-globalAttributes: [] - description: >- The Health service allows you to both validate and monitor your Appwrite server's health. name: health x-globalAttributes: [] - description: >- The Project service allows you to manage all the projects in your Appwrite server. name: projects x-globalAttributes: [] - description: >- The Project service allows you to manage all the projects in your Appwrite server. name: project x-globalAttributes: [] - description: The Users service allows you to manage your project users. name: users x-globalAttributes: [] - description: >- The Proxy Service allows you to configure actions for your domains beyond DNS configuration. name: proxy x-globalAttributes: [] - description: >- The Console service allows you to interact with console relevant informations. name: console x-globalAttributes: [] - description: >- The Migrations service allows you to migrate third-party data to your Appwrite project. name: migrations x-globalAttributes: [] paths: /account: get: tags: - account summary: Get account operationId: Account_getCurrentUser security: - Project: [] Session: [] JWT: [] description: Get the currently logged in user. responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: get weight: 8 cookies: false type: '' deprecated: false demo: account/get.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/get.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] post: tags: - account summary: Create account operationId: Account_registerUser security: - Project: [] description: >- Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [/account/verfication](https://appwrite.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appwrite.io/docs/references/cloud/client-web/account#createEmailSession). requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountRegisterUserRequest' responses: '201': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: create weight: 7 cookies: false type: '' deprecated: false demo: account/create.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/email: patch: tags: - account summary: Update email operationId: Account_updateUserEmail security: - Project: [] Session: [] JWT: [] description: > Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request. This endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdateUserEmailRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updateEmail weight: 33 cookies: false type: '' deprecated: false demo: account/update-email.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-email.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/identities: get: tags: - account summary: List Identities operationId: Account_listIdentities security: - Project: [] Session: [] JWT: [] description: Get the list of identities for the currently logged in user. parameters: - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry name: queries required: false schema: type: array items: type: string default: [] in: query responses: '200': description: Identities List content: application/json: schema: $ref: '#/components/schemas/identityList' x-appwrite: method: listIdentities weight: 56 cookies: false type: '' deprecated: false demo: account/list-identities.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/list-identities.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account/identities offline-key: '' offline-response-key: $id auth: Project: [] /account/identities/{identityId}: delete: tags: - account summary: Delete identity operationId: Account_deleteIdentityById security: - Project: [] Session: [] JWT: [] description: Delete an identity by its unique ID. parameters: - description: Identity ID. name: identityId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteIdentity weight: 57 cookies: false type: '' deprecated: false demo: account/delete-identity.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/delete-identity.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/jwt: post: tags: - account summary: Create JWT operationId: Account_createJwt security: - Project: [] description: >- Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame. responses: '201': description: JWT content: application/json: schema: $ref: '#/components/schemas/jwt' x-appwrite: method: createJWT weight: 28 cookies: false type: '' deprecated: false demo: account/create-j-w-t.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-jwt.md rate-limit: 100 rate-time: 3600 rate-key: url:{url},userId:{userId} scope: account platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/logs: get: tags: - account summary: List logs operationId: Account_listLogs security: - Project: [] Session: [] JWT: [] description: >- Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log. parameters: - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset name: queries required: false schema: type: array items: type: string default: [] in: query responses: '200': description: Logs List content: application/json: schema: $ref: '#/components/schemas/logList' x-appwrite: method: listLogs weight: 30 cookies: false type: '' deprecated: false demo: account/list-logs.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/list-logs.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/mfa: patch: tags: - account summary: Update MFA operationId: Account_updateMfaStatus security: - Project: [] Session: [] JWT: [] description: Enable or disable MFA on an account. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdateMfaStatusRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updateMFA weight: 43 cookies: false type: '' deprecated: false demo: account/update-m-f-a.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-mfa.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/mfa/authenticators/{type}: post: tags: - account summary: Add Authenticator operationId: Account_addAuthenticator security: - Project: [] Session: [] JWT: [] description: >- Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](/docs/references/cloud/client-web/account#verifyAuthenticator) method. parameters: - description: Type of authenticator. Must be `totp` name: type required: true schema: type: string x-example: totp enum: - totp x-enum-name: AuthenticatorType x-enum-keys: [] in: path responses: '200': description: MFAType content: application/json: schema: $ref: '#/components/schemas/mfaType' x-appwrite: method: createMfaAuthenticator weight: 45 cookies: false type: '' deprecated: false demo: account/create-mfa-authenticator.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-mfa-authenticator.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] put: tags: - account summary: Verify Authenticator operationId: Account_verifyAuthenticator security: - Project: [] Session: [] JWT: [] description: >- Verify an authenticator app after adding it using the [add authenticator](/docs/references/cloud/client-web/account#addAuthenticator) method. parameters: - description: Type of authenticator. name: type required: true schema: type: string x-example: totp enum: - totp x-enum-name: AuthenticatorType x-enum-keys: [] in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountVerifyAuthenticatorRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updateMfaAuthenticator weight: 46 cookies: false type: '' deprecated: false demo: account/update-mfa-authenticator.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-mfa-authenticator.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] delete: tags: - account summary: Delete Authenticator operationId: Account_deleteAuthenticator security: - Project: [] Session: [] JWT: [] description: Delete an authenticator for a user by ID. parameters: - description: Type of authenticator. name: type required: true schema: type: string x-example: totp enum: - totp x-enum-name: AuthenticatorType x-enum-keys: [] in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountDeleteAuthenticatorRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: deleteMfaAuthenticator weight: 50 cookies: false type: '' deprecated: false demo: account/delete-mfa-authenticator.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/delete-mfa-authenticator.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/mfa/challenge: post: tags: - account summary: Create 2FA Challenge operationId: Account_createMfaChallenge security: - Project: [] description: >- Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](/docs/references/cloud/client-web/account#updateMfaChallenge) method. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateMfaChallengeRequest' responses: '201': description: MFA Challenge content: application/json: schema: $ref: '#/components/schemas/mfaChallenge' x-appwrite: method: createMfaChallenge weight: 51 cookies: false type: '' deprecated: false demo: account/create-mfa-challenge.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-mfa-challenge.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},token:{param-token} scope: account platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - account summary: Create MFA Challenge (confirmation) operationId: Account_completeMfaChallenge security: - Project: [] Session: [] JWT: [] description: >- Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCompleteMfaChallengeRequest' responses: '204': description: No content content: '': schema: $ref: '#/components/schemas/session' x-appwrite: method: updateMfaChallenge weight: 52 cookies: false type: '' deprecated: false demo: account/update-mfa-challenge.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-mfa-challenge.md rate-limit: 10 rate-time: 3600 rate-key: userId:{param-userId} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/mfa/factors: get: tags: - account summary: List Factors operationId: Account_listMfaFactors security: - Project: [] Session: [] JWT: [] description: List the factors available on the account to be used as a MFA challange. responses: '200': description: MFAFactors content: application/json: schema: $ref: '#/components/schemas/mfaFactors' x-appwrite: method: listMfaFactors weight: 44 cookies: false type: '' deprecated: false demo: account/list-mfa-factors.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/list-mfa-factors.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/mfa/recovery-codes: get: tags: - account summary: Get MFA Recovery Codes operationId: Account_getMfaRecoveryCodes security: - Project: [] Session: [] JWT: [] description: >- Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes. responses: '200': description: MFA Recovery Codes content: application/json: schema: $ref: '#/components/schemas/mfaRecoveryCodes' x-appwrite: method: getMfaRecoveryCodes weight: 49 cookies: false type: '' deprecated: false demo: account/get-mfa-recovery-codes.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/get-mfa-recovery-codes.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] post: tags: - account summary: Create MFA Recovery Codes operationId: Account_createMfaRecoveryCodes security: - Project: [] Session: [] JWT: [] description: >- Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method. responses: '201': description: MFA Recovery Codes content: application/json: schema: $ref: '#/components/schemas/mfaRecoveryCodes' x-appwrite: method: createMfaRecoveryCodes weight: 47 cookies: false type: '' deprecated: false demo: account/create-mfa-recovery-codes.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-mfa-recovery-codes.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] patch: tags: - account summary: Regenerate MFA Recovery Codes operationId: Account_regenerateMfaRecoveryCodes security: - Project: [] Session: [] JWT: [] description: >- Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes. responses: '200': description: MFA Recovery Codes content: application/json: schema: $ref: '#/components/schemas/mfaRecoveryCodes' x-appwrite: method: updateMfaRecoveryCodes weight: 48 cookies: false type: '' deprecated: false demo: account/update-mfa-recovery-codes.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-mfa-recovery-codes.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/name: patch: tags: - account summary: Update name operationId: Account_updateNameOperation security: - Project: [] Session: [] JWT: [] description: Update currently logged in user account name. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdateNameOperationRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updateName weight: 31 cookies: false type: '' deprecated: false demo: account/update-name.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-name.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/password: patch: tags: - account summary: Update password operationId: Account_updatePassword security: - Project: [] Session: [] JWT: [] description: >- Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdatePasswordRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updatePassword weight: 32 cookies: false type: '' deprecated: false demo: account/update-password.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-password.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/phone: patch: tags: - account summary: Update phone operationId: Account_updatePhone security: - Project: [] Session: [] JWT: [] description: >- Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST /account/verification/phone](https://appwrite.io/docs/references/cloud/client-web/account#createPhoneVerification) endpoint to send a confirmation SMS. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdatePhoneRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updatePhone weight: 34 cookies: false type: '' deprecated: false demo: account/update-phone.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-phone.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account offline-key: current offline-response-key: $id auth: Project: [] /account/prefs: get: tags: - account summary: Get account preferences operationId: Account_getPrefs security: - Project: [] Session: [] JWT: [] description: >- Get the preferences as a key-value object for the currently logged in user. responses: '200': description: Preferences content: application/json: schema: $ref: '#/components/schemas/preferences' x-appwrite: method: getPrefs weight: 29 cookies: false type: '' deprecated: false demo: account/get-prefs.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/get-prefs.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account/prefs offline-key: current offline-response-key: $id auth: Project: [] patch: tags: - account summary: Update preferences operationId: Account_updatePreferences security: - Project: [] Session: [] JWT: [] description: >- Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdatePreferencesRequest' responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updatePrefs weight: 35 cookies: false type: '' deprecated: false demo: account/update-prefs.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-prefs.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account/prefs offline-key: current offline-response-key: $id auth: Project: [] /account/recovery: post: tags: - account summary: Create password recovery operationId: Account_createPasswordRecovery security: - Project: [] Session: [] JWT: [] description: >- Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreatePasswordRecoveryRequest' responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createRecovery weight: 37 cookies: false type: '' deprecated: false demo: account/create-recovery.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-recovery.md rate-limit: 10 rate-time: 3600 rate-key: - url:{url},email:{param-email} - url:{url},ip:{ip} scope: sessions.write platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - account summary: Create password recovery (confirmation) operationId: Account_completePasswordRecovery security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery) endpoint. Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCompletePasswordRecoveryRequest' responses: '200': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: updateRecovery weight: 38 cookies: false type: '' deprecated: false demo: account/update-recovery.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-recovery.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},userId:{param-userId} scope: sessions.write platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions: get: tags: - account summary: List sessions operationId: Account_listSessions security: - Project: [] Session: [] JWT: [] description: >- Get the list of active sessions across different devices for the currently logged in user. responses: '200': description: Sessions List content: application/json: schema: $ref: '#/components/schemas/sessionList' x-appwrite: method: listSessions weight: 10 cookies: false type: '' deprecated: false demo: account/list-sessions.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/list-sessions.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account/sessions offline-key: '' offline-response-key: $id auth: Project: [] delete: tags: - account summary: Delete sessions operationId: Account_removeSessions security: - Project: [] Session: [] JWT: [] description: >- Delete all sessions from the user account and remove any sessions cookies from the end client. responses: '204': description: No content x-appwrite: method: deleteSessions weight: 11 cookies: false type: '' deprecated: false demo: account/delete-sessions.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/delete-sessions.md rate-limit: 100 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/anonymous: post: tags: - account summary: Create anonymous session operationId: Account_createAnonymousSession security: - Project: [] description: >- Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https://appwrite.io/docs/references/cloud/client-web/account#updateEmail) or create an [OAuth2 session](https://appwrite.io/docs/references/cloud/client-web/account#CreateOAuth2Session). responses: '201': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: createAnonymousSession weight: 16 cookies: false type: '' deprecated: false demo: account/create-anonymous-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session-anonymous.md rate-limit: 50 rate-time: 3600 rate-key: ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/email: post: tags: - account summary: Create email password session operationId: Account_createEmailPasswordSession security: - Project: [] description: >- Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateEmailPasswordSessionRequest' responses: '201': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: createEmailPasswordSession weight: 15 cookies: false type: '' deprecated: false demo: account/create-email-password-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session-email-password.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},email:{param-email} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/magic-url: put: tags: - account summary: Update magic URL session operationId: Account_updateMagicUrlSession security: - Project: [] description: >- Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdateMagicUrlSessionRequest' responses: '201': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: updateMagicURLSession weight: 25 cookies: false type: '' deprecated: true demo: account/update-magic-u-r-l-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session.md rate-limit: 10 rate-time: 3600 rate-key: ip:{ip},userId:{param-userId} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/oauth2/{provider}: get: tags: - account summary: Create OAuth2 session operationId: Account_createOAuth2Session security: - Project: [] description: > Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. If there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). parameters: - description: >- OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom. name: provider required: true schema: type: string x-example: amazon enum: - amazon - apple - auth0 - authentik - autodesk - bitbucket - bitly - box - dailymotion - discord - disqus - dropbox - etsy - facebook - github - gitlab - google - linkedin - microsoft - notion - oidc - okta - paypal - paypalSandbox - podio - salesforce - slack - spotify - stripe - tradeshift - tradeshiftBox - twitch - wordpress - yahoo - yammer - yandex - zoho - zoom - mock x-enum-name: OAuthProvider x-enum-keys: [] in: path - description: >- URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. name: success required: false schema: type: string format: url x-example: https://example.com default: '' in: query - description: >- URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. name: failure required: false schema: type: string format: url x-example: https://example.com default: '' in: query - description: >- A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long. name: scopes required: false schema: type: array items: type: string default: [] in: query responses: default: description: File x-appwrite: method: createOAuth2Session weight: 18 cookies: false type: webAuth deprecated: false demo: account/create-o-auth2session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session-oauth2.md rate-limit: 50 rate-time: 3600 rate-key: ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/phone: put: tags: - account summary: Update phone session operationId: Account_updatePhoneSession security: - Project: [] description: >- Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdatePhoneSessionRequest' responses: '201': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: updatePhoneSession weight: 26 cookies: false type: '' deprecated: true demo: account/update-phone-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session.md rate-limit: 10 rate-time: 3600 rate-key: ip:{ip},userId:{param-userId} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/token: post: tags: - account summary: Create session operationId: Account_createSessionFromToken security: - Project: [] description: >- Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateSessionFromTokenRequest' responses: '201': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: createSession weight: 17 cookies: false type: '' deprecated: false demo: account/create-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-session.md rate-limit: 10 rate-time: 3600 rate-key: ip:{ip},userId:{param-userId} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/sessions/{sessionId}: get: tags: - account summary: Get session operationId: Account_getSession security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used. parameters: - description: >- Session ID. Use the string 'current' to get the current device session. name: sessionId required: true schema: type: string x-example: in: path responses: '200': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: getSession weight: 12 cookies: false type: '' deprecated: false demo: account/get-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/get-session.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: /account/sessions offline-key: '{sessionId}' offline-response-key: $id auth: Project: [] patch: tags: - account summary: Update session operationId: Account_extendSessionLength security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider. parameters: - description: >- Session ID. Use the string 'current' to update the current device session. name: sessionId required: true schema: type: string x-example: in: path responses: '200': description: Session content: application/json: schema: $ref: '#/components/schemas/session' x-appwrite: method: updateSession weight: 14 cookies: false type: '' deprecated: false demo: account/update-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-session.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] delete: tags: - account summary: Delete session operationId: Account_logoutSessionById security: - Project: [] Session: [] JWT: [] description: >- Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https://appwrite.io/docs/references/cloud/client-web/account#deleteSessions) instead. parameters: - description: >- Session ID. Use the string 'current' to delete the current device session. name: sessionId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteSession weight: 13 cookies: false type: '' deprecated: false demo: account/delete-session.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/delete-session.md rate-limit: 100 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/status: patch: tags: - account summary: Update status operationId: Account_blockUserStatus security: - Project: [] Session: [] JWT: [] description: >- Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead. responses: '200': description: User content: application/json: schema: $ref: '#/components/schemas/user' x-appwrite: method: updateStatus weight: 36 cookies: false type: '' deprecated: false demo: account/update-status.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-status.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/targets/push: post: tags: - account summary: Create push target operationId: Account_createPushTarget security: - Project: [] Session: [] description: '' requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreatePushTargetRequest' responses: '201': description: Target content: application/json: schema: $ref: '#/components/schemas/target' x-appwrite: method: createPushTarget weight: 53 cookies: false type: '' deprecated: false demo: account/create-push-target.md edit: https://github.com/appwrite/appwrite/edit/master rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: targets.write platforms: - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/targets/{targetId}/push: put: tags: - account summary: Update push target operationId: Account_updatePushTarget security: - Project: [] Session: [] description: '' parameters: - description: Target ID. name: targetId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountUpdatePushTargetRequest' responses: '200': description: Target content: application/json: schema: $ref: '#/components/schemas/target' x-appwrite: method: updatePushTarget weight: 54 cookies: false type: '' deprecated: false demo: account/update-push-target.md edit: https://github.com/appwrite/appwrite/edit/master rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: targets.write platforms: - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] delete: tags: - account summary: Delete push target operationId: Account_deletePushTarget security: - Project: [] Session: [] description: '' parameters: - description: Target ID. name: targetId required: true schema: type: string x-example: in: path responses: '204': description: No content content: application/json: schema: $ref: '#/components/schemas/target' x-appwrite: method: deletePushTarget weight: 55 cookies: false type: '' deprecated: false demo: account/delete-push-target.md edit: https://github.com/appwrite/appwrite/edit/master rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: targets.write platforms: - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/tokens/email: post: tags: - account summary: Create email token (OTP) operationId: Account_createEmailToken security: - Project: [] description: >- Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateEmailTokenRequest' responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createEmailToken weight: 24 cookies: false type: '' deprecated: false demo: account/create-email-token.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-token-email.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},email:{param-email} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/tokens/magic-url: post: tags: - account summary: Create magic URL token operationId: Account_createMagicUrlToken security: - Project: [] description: > Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateMagicUrlTokenRequest' responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createMagicURLToken weight: 23 cookies: false type: '' deprecated: false demo: account/create-magic-u-r-l-token.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-token-magic-url.md rate-limit: 60 rate-time: 3600 rate-key: - url:{url},email:{param-email} - url:{url},ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/tokens/oauth2/{provider}: get: tags: - account summary: Create OAuth2 token operationId: Account_createOAuth2Token security: - Project: [] description: >- Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. If authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). parameters: - description: >- OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom. name: provider required: true schema: type: string x-example: amazon enum: - amazon - apple - auth0 - authentik - autodesk - bitbucket - bitly - box - dailymotion - discord - disqus - dropbox - etsy - facebook - github - gitlab - google - linkedin - microsoft - notion - oidc - okta - paypal - paypalSandbox - podio - salesforce - slack - spotify - stripe - tradeshift - tradeshiftBox - twitch - wordpress - yahoo - yammer - yandex - zoho - zoom - mock x-enum-name: OAuthProvider x-enum-keys: [] in: path - description: >- URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. name: success required: false schema: type: string format: url x-example: https://example.com default: '' in: query - description: >- URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. name: failure required: false schema: type: string format: url x-example: https://example.com default: '' in: query - description: >- A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long. name: scopes required: false schema: type: array items: type: string default: [] in: query responses: default: description: File x-appwrite: method: createOAuth2Token weight: 22 cookies: false type: webAuth deprecated: false demo: account/create-o-auth2token.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-token-oauth2.md rate-limit: 50 rate-time: 3600 rate-key: ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/tokens/phone: post: tags: - account summary: Create phone token operationId: Account_createPhoneToken security: - Project: [] description: >- Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes. A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits). requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreatePhoneTokenRequest' responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createPhoneToken weight: 27 cookies: false type: '' deprecated: false demo: account/create-phone-token.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-token-phone.md rate-limit: 10 rate-time: 3600 rate-key: - url:{url},phone:{param-phone} - url:{url},ip:{ip} scope: sessions.write platforms: - server - client packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/verification: post: tags: - account summary: Create email verification operationId: Account_createEmailVerification security: - Project: [] Session: [] JWT: [] description: > Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https://appwrite.io/docs/references/cloud/client-web/account#updateVerification). The verification link sent to the user's email address is valid for 7 days. Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateEmailVerificationRequest' responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createVerification weight: 39 cookies: false type: '' deprecated: false demo: account/create-verification.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-email-verification.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},userId:{userId} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - account summary: Create email verification (confirmation) operationId: Account_createEmailVerification security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCreateEmailVerificationRequest1' responses: '200': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: updateVerification weight: 40 cookies: false type: '' deprecated: false demo: account/update-verification.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-email-verification.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},userId:{param-userId} scope: public platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /account/verification/phone: post: tags: - account summary: Create phone verification operationId: Account_createPhoneVerification security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https://appwrite.io/docs/references/cloud/client-web/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https://appwrite.io/docs/references/cloud/client-web/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes. responses: '201': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: createPhoneVerification weight: 41 cookies: false type: '' deprecated: false demo: account/create-phone-verification.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/create-phone-verification.md rate-limit: 10 rate-time: 3600 rate-key: - url:{url},userId:{userId} - url:{url},ip:{ip} scope: account platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - account summary: Create phone verification (confirmation) operationId: Account_confirmPhoneVerification security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code. requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountConfirmPhoneVerificationRequest' responses: '200': description: Token content: application/json: schema: $ref: '#/components/schemas/token' x-appwrite: method: updatePhoneVerification weight: 42 cookies: false type: '' deprecated: false demo: account/update-phone-verification.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/account/update-phone-verification.md rate-limit: 10 rate-time: 3600 rate-key: userId:{param-userId} scope: public platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/browsers/{code}: get: tags: - avatars summary: Get browser icon operationId: Avatars_getBrowserIconByCode security: - Project: [] Session: [] JWT: [] description: >- You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings. When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px. parameters: - description: Browser Code. name: code required: true schema: type: string x-example: aa enum: - aa - an - ch - ci - cm - cr - ff - sf - mf - ps - oi - om - op - 'on' x-enum-name: Browser x-enum-keys: - Avant Browser - Android WebView Beta - Google Chrome - Google Chrome (iOS) - Google Chrome (Mobile) - Chromium - Mozilla Firefox - Safari - Mobile Safari - Microsoft Edge - Microsoft Edge (iOS) - Opera Mini - Opera - Opera (Next) in: path - description: Image width. Pass an integer between 0 to 2000. Defaults to 100. name: width required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image height. Pass an integer between 0 to 2000. Defaults to 100. name: height required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image quality. Pass an integer between 0 to 100. Defaults to 100. name: quality required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query responses: '200': description: Image x-appwrite: method: getBrowser weight: 59 cookies: false type: location deprecated: false demo: avatars/get-browser.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-browser.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/credit-cards/{code}: get: tags: - avatars summary: Get credit card icon operationId: Avatars_getCreditCardIcon security: - Project: [] Session: [] JWT: [] description: > The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings. When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px. parameters: - description: >- Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro. name: code required: true schema: type: string x-example: amex enum: - amex - argencard - cabal - censosud - diners - discover - elo - hipercard - jcb - mastercard - naranja - targeta-shopping - union-china-pay - visa - mir - maestro x-enum-name: CreditCard x-enum-keys: - American Express - Argencard - Cabal - Consosud - Diners Club - Discover - Elo - Hipercard - JCB - Mastercard - Naranja - Tarjeta Shopping - Union China Pay - Visa - MIR - Maestro in: path - description: Image width. Pass an integer between 0 to 2000. Defaults to 100. name: width required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image height. Pass an integer between 0 to 2000. Defaults to 100. name: height required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image quality. Pass an integer between 0 to 100. Defaults to 100. name: quality required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query responses: '200': description: Image x-appwrite: method: getCreditCard weight: 58 cookies: false type: location deprecated: false demo: avatars/get-credit-card.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-credit-card.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/favicon: get: tags: - avatars summary: Get favicon operationId: Avatars_getFavicon security: - Project: [] Session: [] JWT: [] description: > Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL. parameters: - description: Website URL which you want to fetch the favicon from. name: url required: true schema: type: string format: url x-example: https://example.com in: query responses: '200': description: Image x-appwrite: method: getFavicon weight: 62 cookies: false type: location deprecated: false demo: avatars/get-favicon.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-favicon.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/flags/{code}: get: tags: - avatars summary: Get country flag operationId: Avatars_getCountryFlagByCode security: - Project: [] Session: [] JWT: [] description: > You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard. When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px. parameters: - description: Country Code. ISO Alpha-2 country code format. name: code required: true schema: type: string x-example: af enum: - af - ao - al - ad - ae - ar - am - ag - au - at - az - bi - be - bj - bf - bd - bg - bh - bs - ba - by - bz - bo - br - bb - bn - bt - bw - cf - ca - ch - cl - cn - ci - cm - cd - cg - co - km - cv - cr - cu - cy - cz - de - dj - dm - dk - do - dz - ec - eg - er - es - ee - et - fi - fj - fr - fm - ga - gb - ge - gh - gn - gm - gw - gq - gr - gd - gt - gy - hn - hr - ht - hu - id - in - ie - ir - iq - is - il - it - jm - jo - jp - kz - ke - kg - kh - ki - kn - kr - kw - la - lb - lr - ly - lc - li - lk - ls - lt - lu - lv - ma - mc - md - mg - mv - mx - mh - mk - ml - mt - mm - me - mn - mz - mr - mu - mw - my - na - ne - ng - ni - nl - 'no' - np - nr - nz - om - pk - pa - pe - ph - pw - pg - pl - kp - pt - py - qa - ro - ru - rw - sa - sd - sn - sg - sb - sl - sv - sm - so - rs - ss - st - sr - sk - si - se - sz - sc - sy - td - tg - th - tj - tm - tl - to - tt - tn - tr - tv - tz - ug - ua - uy - us - uz - va - vc - ve - vn - vu - ws - ye - za - zm - zw x-enum-name: Flag x-enum-keys: - Afghanistan - Angola - Albania - Andorra - United Arab Emirates - Argentina - Armenia - Antigua and Barbuda - Australia - Austria - Azerbaijan - Burundi - Belgium - Benin - Burkina Faso - Bangladesh - Bulgaria - Bahrain - Bahamas - Bosnia and Herzegovina - Belarus - Belize - Bolivia - Brazil - Barbados - Brunei Darussalam - Bhutan - Botswana - Central African Republic - Canada - Switzerland - Chile - China - Côte d'Ivoire - Cameroon - Democratic Republic of the Congo - Republic of the Congo - Colombia - Comoros - Cape Verde - Costa Rica - Cuba - Cyprus - Czech Republic - Germany - Djibouti - Dominica - Denmark - Dominican Republic - Algeria - Ecuador - Egypt - Eritrea - Spain - Estonia - Ethiopia - Finland - Fiji - France - Micronesia (Federated States of) - Gabon - United Kingdom - Georgia - Ghana - Guinea - Gambia - Guinea-Bissau - Equatorial Guinea - Greece - Grenada - Guatemala - Guyana - Honduras - Croatia - Haiti - Hungary - Indonesia - India - Ireland - Iran (Islamic Republic of) - Iraq - Iceland - Israel - Italy - Jamaica - Jordan - Japan - Kazakhstan - Kenya - Kyrgyzstan - Cambodia - Kiribati - Saint Kitts and Nevis - South Korea - Kuwait - Lao People's Democratic Republic - Lebanon - Liberia - Libya - Saint Lucia - Liechtenstein - Sri Lanka - Lesotho - Lithuania - Luxembourg - Latvia - Morocco - Monaco - Moldova - Madagascar - Maldives - Mexico - Marshall Islands - North Macedonia - Mali - Malta - Myanmar - Montenegro - Mongolia - Mozambique - Mauritania - Mauritius - Malawi - Malaysia - Namibia - Niger - Nigeria - Nicaragua - Netherlands - Norway - Nepal - Nauru - New Zealand - Oman - Pakistan - Panama - Peru - Philippines - Palau - Papua New Guinea - Poland - North Korea - Portugal - Paraguay - Qatar - Romania - Russia - Rwanda - Saudi Arabia - Sudan - Senegal - Singapore - Solomon Islands - Sierra Leone - El Salvador - San Marino - Somalia - Serbia - South Sudan - Sao Tome and Principe - Suriname - Slovakia - Slovenia - Sweden - Eswatini - Seychelles - Syria - Chad - Togo - Thailand - Tajikistan - Turkmenistan - Timor-Leste - Tonga - Trinidad and Tobago - Tunisia - Turkey - Tuvalu - Tanzania - Uganda - Ukraine - Uruguay - United States - Uzbekistan - Vatican City - Saint Vincent and the Grenadines - Venezuela - Vietnam - Vanuatu - Samoa - Yemen - South Africa - Zambia - Zimbabwe in: path - description: Image width. Pass an integer between 0 to 2000. Defaults to 100. name: width required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image height. Pass an integer between 0 to 2000. Defaults to 100. name: height required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: Image quality. Pass an integer between 0 to 100. Defaults to 100. name: quality required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query responses: '200': description: Image x-appwrite: method: getFlag weight: 60 cookies: false type: location deprecated: false demo: avatars/get-flag.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-flag.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/image: get: tags: - avatars summary: Get image from URL operationId: Avatars_getRemoteImage security: - Project: [] Session: [] JWT: [] description: > Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol. When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px. parameters: - description: Image URL which you want to crop. name: url required: true schema: type: string format: url x-example: https://example.com in: query - description: >- Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400. name: width required: false schema: type: integer format: int32 x-example: 0 default: 400 in: query - description: >- Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400. name: height required: false schema: type: integer format: int32 x-example: 0 default: 400 in: query responses: '200': description: Image x-appwrite: method: getImage weight: 61 cookies: false type: location deprecated: false demo: avatars/get-image.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-image.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/initials: get: tags: - avatars summary: Get user initials operationId: Avatars_getUserInitials security: - Project: [] Session: [] JWT: [] description: > Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned. You can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials. When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px. parameters: - description: >- Full Name. When empty, current user name or email will be used. Max length: 128 chars. name: name required: false schema: type: string x-example: default: '' in: query - description: Image width. Pass an integer between 0 to 2000. Defaults to 100. name: width required: false schema: type: integer format: int32 x-example: 0 default: 500 in: query - description: Image height. Pass an integer between 0 to 2000. Defaults to 100. name: height required: false schema: type: integer format: int32 x-example: 0 default: 500 in: query - description: >- Changes background color. By default a random color will be picked and stay will persistent to the given name. name: background required: false schema: type: string default: '' in: query responses: '200': description: Image x-appwrite: method: getInitials weight: 64 cookies: false type: location deprecated: false demo: avatars/get-initials.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-initials.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /avatars/qr: get: tags: - avatars summary: Get QR code operationId: Avatars_generateQrCodeImage security: - Project: [] Session: [] JWT: [] description: > Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image. parameters: - description: Plain text to be converted to QR code image. name: text required: true schema: type: string x-example: in: query - description: QR code size. Pass an integer between 1 to 1000. Defaults to 400. name: size required: false schema: type: integer format: int32 x-example: 1 default: 400 in: query - description: Margin from edge. Pass an integer between 0 to 10. Defaults to 1. name: margin required: false schema: type: integer format: int32 x-example: 0 default: 1 in: query - description: >- Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0. name: download required: false schema: type: boolean x-example: false default: false in: query responses: '200': description: Image x-appwrite: method: getQR weight: 63 cookies: false type: location deprecated: false demo: avatars/get-q-r.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/avatars/get-qr.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: avatars.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /databases/{databaseId}/collections/{collectionId}/documents: get: tags: - databases summary: List documents operationId: Databases_listUserDocuments security: - Project: [] Session: [] JWT: [] description: >- Get a list of all the user's documents in a given collection. You can use the query params to filter your results. parameters: - description: Database ID. name: databaseId required: true schema: type: string x-example: in: path - description: >- Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). name: collectionId required: true schema: type: string x-example: in: path - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. name: queries required: false schema: type: array items: type: string default: [] in: query responses: '200': description: Documents List content: application/json: schema: $ref: '#/components/schemas/documentList' x-appwrite: method: listDocuments weight: 108 cookies: false type: '' deprecated: false demo: databases/list-documents.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/databases/list-documents.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: documents.read platforms: - client - server - server packaging: false offline-model: /databases/{databaseId}/collections/{collectionId}/documents offline-key: '' offline-response-key: $id auth: Project: [] post: tags: - databases summary: Create document operationId: Databases_createDocument security: - Project: [] Session: [] JWT: [] description: >- Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console. parameters: - description: Database ID. name: databaseId required: true schema: type: string x-example: in: path - description: >- Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents. name: collectionId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/DatabasesCreateDocumentRequest' responses: '201': description: Document content: application/json: schema: $ref: '#/components/schemas/document' x-appwrite: method: createDocument weight: 107 cookies: false type: '' deprecated: false demo: databases/create-document.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-document.md rate-limit: 120 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: documents.write platforms: - client - server - server packaging: false offline-model: /databases/{databaseId}/collections/{collectionId}/documents offline-key: '{documentId}' offline-response-key: $id auth: Project: [] /databases/{databaseId}/collections/{collectionId}/documents/{documentId}: get: tags: - databases summary: Get document operationId: Databases_getDocumentById security: - Project: [] Session: [] JWT: [] description: >- Get a document by its unique ID. This endpoint response returns a JSON object with the document data. parameters: - description: Database ID. name: databaseId required: true schema: type: string x-example: in: path - description: >- Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). name: collectionId required: true schema: type: string x-example: in: path - description: Document ID. name: documentId required: true schema: type: string x-example: in: path - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. name: queries required: false schema: type: array items: type: string default: [] in: query responses: '200': description: Document content: application/json: schema: $ref: '#/components/schemas/document' x-appwrite: method: getDocument weight: 109 cookies: false type: '' deprecated: false demo: databases/get-document.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/databases/get-document.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: documents.read platforms: - client - server - server packaging: false offline-model: /databases/{databaseId}/collections/{collectionId}/documents offline-key: '{documentId}' offline-response-key: $id auth: Project: [] patch: tags: - databases summary: Update document operationId: Databases_updateDocumentById security: - Project: [] Session: [] JWT: [] description: >- Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated. parameters: - description: Database ID. name: databaseId required: true schema: type: string x-example: in: path - description: Collection ID. name: collectionId required: true schema: type: string x-example: in: path - description: Document ID. name: documentId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/DatabasesUpdateDocumentByIdRequest' responses: '200': description: Document content: application/json: schema: $ref: '#/components/schemas/document' x-appwrite: method: updateDocument weight: 111 cookies: false type: '' deprecated: false demo: databases/update-document.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-document.md rate-limit: 120 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: documents.write platforms: - client - server - server packaging: false offline-model: /databases/{databaseId}/collections/{collectionId}/documents offline-key: '{documentId}' offline-response-key: $id auth: Project: [] delete: tags: - databases summary: Delete document operationId: Databases_deleteDocumentById security: - Project: [] Session: [] JWT: [] description: Delete a document by its unique ID. parameters: - description: Database ID. name: databaseId required: true schema: type: string x-example: in: path - description: >- Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). name: collectionId required: true schema: type: string x-example: in: path - description: Document ID. name: documentId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteDocument weight: 112 cookies: false type: '' deprecated: false demo: databases/delete-document.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete-document.md rate-limit: 60 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: documents.write platforms: - client - server - server packaging: false offline-model: /databases/{databaseId}/collections/{collectionId}/documents offline-key: '{documentId}' offline-response-key: $id auth: Project: [] /functions/{functionId}/executions: get: tags: - functions summary: List executions operationId: Functions_listExecutions security: - Project: [] Session: [] JWT: [] description: >- Get a list of all the current user function execution logs. You can use the query params to filter your results. parameters: - description: Function ID. name: functionId required: true schema: type: string x-example: in: path - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration name: queries required: false schema: type: array items: type: string default: [] in: query - description: 'Search term to filter your list results. Max length: 256 chars.' name: search required: false schema: type: string x-example: default: '' in: query responses: '200': description: Executions List content: application/json: schema: $ref: '#/components/schemas/executionList' x-appwrite: method: listExecutions weight: 297 cookies: false type: '' deprecated: false demo: functions/list-executions.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-executions.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: execution.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] post: tags: - functions summary: Create execution operationId: Functions_triggerFunctionExecution security: - Project: [] Session: [] JWT: [] description: >- Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously. parameters: - description: Function ID. name: functionId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/FunctionsTriggerFunctionExecutionRequest' responses: '201': description: Execution content: application/json: schema: $ref: '#/components/schemas/execution' x-appwrite: method: createExecution weight: 296 cookies: false type: '' deprecated: false demo: functions/create-execution.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/functions/create-execution.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: execution.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /functions/{functionId}/executions/{executionId}: get: tags: - functions summary: Get execution operationId: Functions_getExecutionLog security: - Project: [] Session: [] JWT: [] description: Get a function execution log by its unique ID. parameters: - description: Function ID. name: functionId required: true schema: type: string x-example: in: path - description: Execution ID. name: executionId required: true schema: type: string x-example: in: path responses: '200': description: Execution content: application/json: schema: $ref: '#/components/schemas/execution' x-appwrite: method: getExecution weight: 298 cookies: false type: '' deprecated: false demo: functions/get-execution.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/functions/get-execution.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: execution.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /graphql: post: tags: - graphql summary: GraphQL endpoint operationId: Graphql_executeMutation security: - Project: [] Session: [] JWT: [] description: Execute a GraphQL mutation. responses: '200': description: Any content: application/json: schema: $ref: '#/components/schemas/any' x-appwrite: method: query weight: 318 cookies: false type: graphql deprecated: false demo: graphql/query.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/graphql/post.md rate-limit: 60 rate-time: 60 rate-key: url:{url},ip:{ip} scope: graphql platforms: - server - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /graphql/mutation: post: tags: - graphql summary: GraphQL endpoint operationId: Graphql_executeMutationOperation security: - Project: [] Session: [] JWT: [] description: Execute a GraphQL mutation. responses: '200': description: Any content: application/json: schema: $ref: '#/components/schemas/any' x-appwrite: method: mutation weight: 317 cookies: false type: graphql deprecated: false demo: graphql/mutation.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/graphql/post.md rate-limit: 60 rate-time: 60 rate-key: url:{url},ip:{ip} scope: graphql platforms: - server - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /locale: get: tags: - locale summary: Get user locale operationId: Locale_getUserLocale security: - Project: [] Session: [] JWT: [] description: >- Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language. ([IP Geolocation by DB-IP](https://db-ip.com)) responses: '200': description: Locale content: application/json: schema: $ref: '#/components/schemas/locale' x-appwrite: method: get weight: 116 cookies: false type: '' deprecated: false demo: locale/get.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/get-locale.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /localed offline-key: current offline-response-key: $id auth: Project: [] /locale/codes: get: tags: - locale summary: List Locale Codes operationId: Locale_listCodes security: - Project: [] Session: [] JWT: [] description: >- List of all locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). responses: '200': description: Locale codes list content: application/json: schema: $ref: '#/components/schemas/localeCodeList' x-appwrite: method: listCodes weight: 117 cookies: false type: '' deprecated: false demo: locale/list-codes.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-locale-codes.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/localeCode offline-key: current offline-response-key: $id auth: Project: [] /locale/continents: get: tags: - locale summary: List continents operationId: Locale_listContinents security: - Project: [] Session: [] JWT: [] description: >- List of all continents. You can use the locale header to get the data in a supported language. responses: '200': description: Continents List content: application/json: schema: $ref: '#/components/schemas/continentList' x-appwrite: method: listContinents weight: 121 cookies: false type: '' deprecated: false demo: locale/list-continents.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-continents.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/continents offline-key: '' offline-response-key: code auth: Project: [] /locale/countries: get: tags: - locale summary: List countries operationId: Locale_listCountries security: - Project: [] Session: [] JWT: [] description: >- List of all countries. You can use the locale header to get the data in a supported language. responses: '200': description: Countries List content: application/json: schema: $ref: '#/components/schemas/countryList' x-appwrite: method: listCountries weight: 118 cookies: false type: '' deprecated: false demo: locale/list-countries.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-countries.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/countries offline-key: '' offline-response-key: code auth: Project: [] /locale/countries/eu: get: tags: - locale summary: List EU countries operationId: Locale_getEUCountries security: - Project: [] Session: [] JWT: [] description: >- List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language. responses: '200': description: Countries List content: application/json: schema: $ref: '#/components/schemas/countryList' x-appwrite: method: listCountriesEU weight: 119 cookies: false type: '' deprecated: false demo: locale/list-countries-e-u.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-countries-eu.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/countries/eu offline-key: '' offline-response-key: code auth: Project: [] /locale/countries/phones: get: tags: - locale summary: List countries phone codes operationId: Locale_listCountriesPhones security: - Project: [] Session: [] JWT: [] description: >- List of all countries phone codes. You can use the locale header to get the data in a supported language. responses: '200': description: Phones List content: application/json: schema: $ref: '#/components/schemas/phoneList' x-appwrite: method: listCountriesPhones weight: 120 cookies: false type: '' deprecated: false demo: locale/list-countries-phones.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-countries-phones.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/countries/phones offline-key: '' offline-response-key: countryCode auth: Project: [] /locale/currencies: get: tags: - locale summary: List currencies operationId: Locale_getCurrencies security: - Project: [] Session: [] JWT: [] description: >- List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language. responses: '200': description: Currencies List content: application/json: schema: $ref: '#/components/schemas/currencyList' x-appwrite: method: listCurrencies weight: 122 cookies: false type: '' deprecated: false demo: locale/list-currencies.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-currencies.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/currencies offline-key: '' offline-response-key: code auth: Project: [] /locale/languages: get: tags: - locale summary: List languages operationId: Locale_listLanguages security: - Project: [] Session: [] JWT: [] description: >- List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language. responses: '200': description: Languages List content: application/json: schema: $ref: '#/components/schemas/languageList' x-appwrite: method: listLanguages weight: 123 cookies: false type: '' deprecated: false demo: locale/list-languages.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/locale/list-languages.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: locale.read platforms: - client - server - server packaging: false offline-model: /locale/languages offline-key: '' offline-response-key: code auth: Project: [] /messaging/topics/{topicId}/subscribers: post: tags: - messaging summary: Create subscriber operationId: Messaging_addNewSubscriber security: - Project: [] JWT: [] Session: [] description: Create a new subscriber. parameters: - description: Topic ID. The topic ID to subscribe to. name: topicId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/MessagingAddNewSubscriberRequest' responses: '201': description: Subscriber content: application/json: schema: $ref: '#/components/schemas/subscriber' x-appwrite: method: createSubscriber weight: 369 cookies: false type: '' deprecated: false demo: messaging/create-subscriber.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-subscriber.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: subscribers.write platforms: - server - client - console - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /messaging/topics/{topicId}/subscribers/{subscriberId}: delete: tags: - messaging summary: Delete subscriber operationId: Messaging_deleteSubscriberById security: - Project: [] JWT: [] Session: [] description: Delete a subscriber by its unique ID. parameters: - description: Topic ID. The topic ID subscribed to. name: topicId required: true schema: type: string x-example: in: path - description: Subscriber ID. name: subscriberId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteSubscriber weight: 373 cookies: false type: '' deprecated: false demo: messaging/delete-subscriber.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/delete-subscriber.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: subscribers.write platforms: - server - client - console - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /storage/buckets/{bucketId}/files: get: tags: - storage summary: List files operationId: Storage_listFiles security: - Project: [] Session: [] JWT: [] description: >- Get a list of all the user files. You can use the query params to filter your results. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded name: queries required: false schema: type: array items: type: string default: [] in: query - description: 'Search term to filter your list results. Max length: 256 chars.' name: search required: false schema: type: string x-example: default: '' in: query responses: '200': description: Files List content: application/json: schema: $ref: '#/components/schemas/fileList' x-appwrite: method: listFiles weight: 203 cookies: false type: '' deprecated: false demo: storage/list-files.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/list-files.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: files.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] post: tags: - storage summary: Create file operationId: Storage_createFile security: - Project: [] Session: [] JWT: [] description: > Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https://appwrite.io/docs/server/storage#storageCreateBucket) API or directly from your Appwrite console. Larger files should be uploaded using multiple requests with the [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes. When the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one. If you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/StorageCreateFileRequest' responses: '201': description: File content: application/json: schema: $ref: '#/components/schemas/file' x-appwrite: method: createFile weight: 202 cookies: false type: upload deprecated: false demo: storage/create-file.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/create-file.md rate-limit: 60 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: files.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /storage/buckets/{bucketId}/files/{fileId}: get: tags: - storage summary: Get file operationId: Storage_getFileById security: - Project: [] Session: [] JWT: [] description: >- Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File ID. name: fileId required: true schema: type: string x-example: in: path responses: '200': description: File content: application/json: schema: $ref: '#/components/schemas/file' x-appwrite: method: getFile weight: 204 cookies: false type: '' deprecated: false demo: storage/get-file.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/get-file.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: files.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - storage summary: Update file operationId: Storage_updateFileById security: - Project: [] Session: [] JWT: [] description: >- Update a file by its unique ID. Only users with write permissions have access to update this resource. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File unique ID. name: fileId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/StorageUpdateFileByIdRequest' responses: '200': description: File content: application/json: schema: $ref: '#/components/schemas/file' x-appwrite: method: updateFile weight: 209 cookies: false type: '' deprecated: false demo: storage/update-file.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/update-file.md rate-limit: 60 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: files.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] delete: tags: - storage summary: Delete File operationId: Storage_deleteFileById security: - Project: [] Session: [] JWT: [] description: >- Delete a file by its unique ID. Only users with write permissions have access to delete this resource. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File ID. name: fileId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteFile weight: 210 cookies: false type: '' deprecated: false demo: storage/delete-file.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/delete-file.md rate-limit: 60 rate-time: 60 rate-key: ip:{ip},method:{method},url:{url},userId:{userId} scope: files.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /storage/buckets/{bucketId}/files/{fileId}/download: get: tags: - storage summary: Get file for download operationId: Storage_getFileDownload security: - Project: [] Session: [] JWT: [] description: >- Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory. parameters: - description: >- Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File ID. name: fileId required: true schema: type: string x-example: in: path responses: '200': description: File x-appwrite: method: getFileDownload weight: 206 cookies: false type: location deprecated: false demo: storage/get-file-download.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/get-file-download.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: files.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /storage/buckets/{bucketId}/files/{fileId}/preview: get: tags: - storage summary: Get file preview operationId: Storage_getFilePreviewImage security: - Project: [] Session: [] JWT: [] description: >- Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File ID name: fileId required: true schema: type: string x-example: in: path - description: Resize preview image width, Pass an integer between 0 to 4000. name: width required: false schema: type: integer format: int32 x-example: 0 default: 0 in: query - description: Resize preview image height, Pass an integer between 0 to 4000. name: height required: false schema: type: integer format: int32 x-example: 0 default: 0 in: query - description: >- Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right name: gravity required: false schema: type: string x-example: center enum: - center - top-left - top - top-right - left - right - bottom-left - bottom - bottom-right x-enum-name: ImageGravity x-enum-keys: [] default: center in: query - description: >- Preview image quality. Pass an integer between 0 to 100. Defaults to 100. name: quality required: false schema: type: integer format: int32 x-example: 0 default: 100 in: query - description: >- Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0. name: borderWidth required: false schema: type: integer format: int32 x-example: 0 default: 0 in: query - description: >- Preview image border color. Use a valid HEX color, no # is needed for prefix. name: borderColor required: false schema: type: string default: '' in: query - description: >- Preview image border radius in pixels. Pass an integer between 0 to 4000. name: borderRadius required: false schema: type: integer format: int32 x-example: 0 default: 0 in: query - description: >- Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1. name: opacity required: false schema: type: number format: float x-example: 0 default: 1 in: query - description: >- Preview image rotation in degrees. Pass an integer between -360 and 360. name: rotation required: false schema: type: integer format: int32 x-example: -360 default: 0 in: query - description: >- Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix. name: background required: false schema: type: string default: '' in: query - description: Output format type (jpeg, jpg, png, gif and webp). name: output required: false schema: type: string x-example: jpg enum: - jpg - jpeg - gif - png - webp x-enum-name: ImageFormat x-enum-keys: [] default: '' in: query responses: '200': description: Image x-appwrite: method: getFilePreview weight: 205 cookies: false type: location deprecated: false demo: storage/get-file-preview.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/get-file-preview.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: files.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /storage/buckets/{bucketId}/files/{fileId}/view: get: tags: - storage summary: Get file for view operationId: Storage_getFileForView security: - Project: [] Session: [] JWT: [] description: >- Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header. parameters: - description: >- Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). name: bucketId required: true schema: type: string x-example: in: path - description: File ID. name: fileId required: true schema: type: string x-example: in: path responses: '200': description: File x-appwrite: method: getFileView weight: 207 cookies: false type: location deprecated: false demo: storage/get-file-view.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/storage/get-file-view.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: files.read platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams: get: tags: - teams summary: List teams operationId: Teams_getUserMemberships security: - Project: [] Session: [] JWT: [] description: >- Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. parameters: - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan name: queries required: false schema: type: array items: type: string default: [] in: query - description: 'Search term to filter your list results. Max length: 256 chars.' name: search required: false schema: type: string x-example: default: '' in: query responses: '200': description: Teams List content: application/json: schema: $ref: '#/components/schemas/teamList' x-appwrite: method: list weight: 214 cookies: false type: '' deprecated: false demo: teams/list.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/list-teams.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.read platforms: - client - server - server packaging: false offline-model: /teams offline-key: '' offline-response-key: $id auth: Project: [] post: tags: - teams summary: Create team operationId: Teams_createNewTeam security: - Project: [] Session: [] JWT: [] description: >- Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team. requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsCreateNewTeamRequest' responses: '201': description: Team content: application/json: schema: $ref: '#/components/schemas/team' x-appwrite: method: create weight: 213 cookies: false type: '' deprecated: false demo: teams/create.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/create-team.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams/{teamId}: get: tags: - teams summary: Get team operationId: Teams_getById security: - Project: [] Session: [] JWT: [] description: >- Get a team by its ID. All team members have read access for this resource. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path responses: '200': description: Team content: application/json: schema: $ref: '#/components/schemas/team' x-appwrite: method: get weight: 215 cookies: false type: '' deprecated: false demo: teams/get.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/get-team.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.read platforms: - client - server - server packaging: false offline-model: /teams offline-key: '{teamId}' offline-response-key: $id auth: Project: [] put: tags: - teams summary: Update name operationId: Teams_updateNameById security: - Project: [] Session: [] JWT: [] description: Update the team's name by its unique ID. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsUpdateNameByIdRequest' responses: '200': description: Team content: application/json: schema: $ref: '#/components/schemas/team' x-appwrite: method: updateName weight: 217 cookies: false type: '' deprecated: false demo: teams/update-name.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/update-team-name.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: /teams offline-key: '{teamId}' offline-response-key: $id auth: Project: [] delete: tags: - teams summary: Delete team operationId: Teams_removeTeam security: - Project: [] Session: [] JWT: [] description: >- Delete a team using its ID. Only team members with the owner role can delete the team. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: delete weight: 219 cookies: false type: '' deprecated: false demo: teams/delete.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/delete-team.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams/{teamId}/memberships: get: tags: - teams summary: List team memberships operationId: Teams_listMemberships security: - Project: [] Session: [] JWT: [] description: >- Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path - description: >- Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm name: queries required: false schema: type: array items: type: string default: [] in: query - description: 'Search term to filter your list results. Max length: 256 chars.' name: search required: false schema: type: string x-example: default: '' in: query responses: '200': description: Memberships List content: application/json: schema: $ref: '#/components/schemas/membershipList' x-appwrite: method: listMemberships weight: 221 cookies: false type: '' deprecated: false demo: teams/list-memberships.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/list-team-members.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.read platforms: - client - server - server packaging: false offline-model: /teams/{teamId}/memberships offline-key: '' offline-response-key: $id auth: Project: [] post: tags: - teams summary: Create team membership operationId: Teams_createMembership security: - Project: [] Session: [] JWT: [] description: > Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team. You only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters. Use the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. Please note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsCreateMembershipRequest' responses: '201': description: Membership content: application/json: schema: $ref: '#/components/schemas/membership' x-appwrite: method: createMembership weight: 220 cookies: false type: '' deprecated: false demo: teams/create-membership.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/create-team-membership.md rate-limit: 10 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams/{teamId}/memberships/{membershipId}: get: tags: - teams summary: Get team membership operationId: Teams_getMembership security: - Project: [] Session: [] JWT: [] description: >- Get a team member by the membership unique id. All team members have read access for this resource. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path - description: Membership ID. name: membershipId required: true schema: type: string x-example: in: path responses: '200': description: Membership content: application/json: schema: $ref: '#/components/schemas/membership' x-appwrite: method: getMembership weight: 222 cookies: false type: '' deprecated: false demo: teams/get-membership.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/get-team-member.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.read platforms: - client - server - server packaging: false offline-model: /teams/{teamId}/memberships offline-key: '{membershipId}' offline-response-key: $id auth: Project: [] patch: tags: - teams summary: Update membership operationId: Teams_updateMembershipRoles security: - Project: [] Session: [] JWT: [] description: > Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path - description: Membership ID. name: membershipId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsUpdateMembershipRolesRequest' responses: '200': description: Membership content: application/json: schema: $ref: '#/components/schemas/membership' x-appwrite: method: updateMembership weight: 223 cookies: false type: '' deprecated: false demo: teams/update-membership.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/update-team-membership.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] delete: tags: - teams summary: Delete team membership operationId: Teams_deleteMembership security: - Project: [] Session: [] JWT: [] description: >- This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path - description: Membership ID. name: membershipId required: true schema: type: string x-example: in: path responses: '204': description: No content x-appwrite: method: deleteMembership weight: 225 cookies: false type: '' deprecated: false demo: teams/delete-membership.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/delete-team-membership.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams/{teamId}/memberships/{membershipId}/status: patch: tags: - teams summary: Update team membership status operationId: Teams_updateMembershipStatus security: - Project: [] Session: [] JWT: [] description: > Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user. If the request is successful, a session for the user is automatically created. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path - description: Membership ID. name: membershipId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsUpdateMembershipStatusRequest' responses: '200': description: Membership content: application/json: schema: $ref: '#/components/schemas/membership' x-appwrite: method: updateMembershipStatus weight: 224 cookies: false type: '' deprecated: false demo: teams/update-membership-status.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/update-team-membership-status.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: public platforms: - client - server packaging: false offline-model: '' offline-key: '' offline-response-key: $id auth: Project: [] /teams/{teamId}/prefs: get: tags: - teams summary: Get team preferences operationId: Teams_getPrefs security: - Project: [] Session: [] JWT: [] description: >- Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs). parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path responses: '200': description: Preferences content: application/json: schema: $ref: '#/components/schemas/preferences' x-appwrite: method: getPrefs weight: 216 cookies: false type: '' deprecated: false demo: teams/get-prefs.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/get-team-prefs.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.read platforms: - client - server packaging: false offline-model: /teams/{teamId}/prefs offline-key: '' offline-response-key: $id auth: Project: [] put: tags: - teams summary: Update preferences operationId: Teams_updatePrefsById security: - Project: [] Session: [] JWT: [] description: >- Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded. parameters: - description: Team ID. name: teamId required: true schema: type: string x-example: in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamsUpdatePrefsByIdRequest' responses: '200': description: Preferences content: application/json: schema: $ref: '#/components/schemas/preferences' x-appwrite: method: updatePrefs weight: 218 cookies: false type: '' deprecated: false demo: teams/update-prefs.md edit: >- https://github.com/appwrite/appwrite/edit/master/docs/references/teams/update-team-prefs.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: teams.write platforms: - client - server packaging: false offline-model: /teams/{teamId}/prefs offline-key: '' offline-response-key: $id auth: Project: [] components: schemas: any: description: Any type: object additionalProperties: true error: description: Error type: object properties: version: description: Server version number. type: string x-example: '1.0' message: description: Error message. type: string x-example: Not found code: description: Error code. type: string x-example: '404' type: description: >- Error type. You can learn more about all the error types at https://appwrite.io/docs/error-codes#errorTypes type: string x-example: not_found required: - message - code - type - version documentList: description: Documents List type: object properties: total: description: Total number of documents documents that matched your query. type: integer x-example: 5 format: int32 documents: description: List of documents. type: array items: $ref: '#/components/schemas/document' x-example: '' required: - total - documents sessionList: description: Sessions List type: object properties: total: description: Total number of sessions documents that matched your query. type: integer x-example: 5 format: int32 sessions: description: List of sessions. type: array items: $ref: '#/components/schemas/session' x-example: '' required: - total - sessions identityList: description: Identities List type: object properties: total: description: Total number of identities documents that matched your query. type: integer x-example: 5 format: int32 identities: description: List of identities. type: array items: $ref: '#/components/schemas/identity' x-example: '' required: - total - identities logList: description: Logs List type: object properties: total: description: Total number of logs documents that matched your query. type: integer x-example: 5 format: int32 logs: description: List of logs. type: array items: $ref: '#/components/schemas/log' x-example: '' required: - total - logs fileList: description: Files List type: object properties: total: description: Total number of files documents that matched your query. type: integer x-example: 5 format: int32 files: description: List of files. type: array items: $ref: '#/components/schemas/file' x-example: '' required: - total - files teamList: description: Teams List type: object properties: total: description: Total number of teams documents that matched your query. type: integer x-example: 5 format: int32 teams: description: List of teams. type: array items: $ref: '#/components/schemas/team' x-example: '' required: - total - teams membershipList: description: Memberships List type: object properties: total: description: Total number of memberships documents that matched your query. type: integer x-example: 5 format: int32 memberships: description: List of memberships. type: array items: $ref: '#/components/schemas/membership' x-example: '' required: - total - memberships executionList: description: Executions List type: object properties: total: description: Total number of executions documents that matched your query. type: integer x-example: 5 format: int32 executions: description: List of executions. type: array items: $ref: '#/components/schemas/execution' x-example: '' required: - total - executions countryList: description: Countries List type: object properties: total: description: Total number of countries documents that matched your query. type: integer x-example: 5 format: int32 countries: description: List of countries. type: array items: $ref: '#/components/schemas/country' x-example: '' required: - total - countries continentList: description: Continents List type: object properties: total: description: Total number of continents documents that matched your query. type: integer x-example: 5 format: int32 continents: description: List of continents. type: array items: $ref: '#/components/schemas/continent' x-example: '' required: - total - continents languageList: description: Languages List type: object properties: total: description: Total number of languages documents that matched your query. type: integer x-example: 5 format: int32 languages: description: List of languages. type: array items: $ref: '#/components/schemas/language' x-example: '' required: - total - languages currencyList: description: Currencies List type: object properties: total: description: Total number of currencies documents that matched your query. type: integer x-example: 5 format: int32 currencies: description: List of currencies. type: array items: $ref: '#/components/schemas/currency' x-example: '' required: - total - currencies phoneList: description: Phones List type: object properties: total: description: Total number of phones documents that matched your query. type: integer x-example: 5 format: int32 phones: description: List of phones. type: array items: $ref: '#/components/schemas/phone' x-example: '' required: - total - phones localeCodeList: description: Locale codes list type: object properties: total: description: Total number of localeCodes documents that matched your query. type: integer x-example: 5 format: int32 localeCodes: description: List of localeCodes. type: array items: $ref: '#/components/schemas/localeCode' x-example: '' required: - total - localeCodes document: description: Document type: object properties: $id: description: Document ID. type: string x-example: 5e5ea5c16897e $collectionId: description: Collection ID. type: string x-example: 5e5ea5c15117e $databaseId: description: Database ID. type: string x-example: 5e5ea5c15117e $createdAt: description: Document creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Document update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $permissions: description: >- Document permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array items: type: string x-example: - read("any") additionalProperties: true required: - $id - $collectionId - $databaseId - $createdAt - $updatedAt - $permissions log: description: Log type: object properties: event: description: Event name. type: string x-example: account.sessions.create userId: description: User ID. type: string x-example: 610fc2f985ee0 userEmail: description: User Email. type: string x-example: john@appwrite.io userName: description: User Name. type: string x-example: John Doe mode: description: API mode when event triggered. type: string x-example: admin ip: description: IP session in use when the session was created. type: string x-example: 127.0.0.1 time: description: Log creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' osCode: description: >- Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json). type: string x-example: Mac osName: description: Operating system name. type: string x-example: Mac osVersion: description: Operating system version. type: string x-example: Mac clientType: description: Client type. type: string x-example: browser clientCode: description: >- Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json). type: string x-example: CM clientName: description: Client name. type: string x-example: Chrome Mobile iOS clientVersion: description: Client version. type: string x-example: '84.0' clientEngine: description: Client engine name. type: string x-example: WebKit clientEngineVersion: description: Client engine name. type: string x-example: 605.1.15 deviceName: description: Device name. type: string x-example: smartphone deviceBrand: description: Device brand name. type: string x-example: Google deviceModel: description: Device model name. type: string x-example: Nexus 5 countryCode: description: Country two-character ISO 3166-1 alpha code. type: string x-example: US countryName: description: Country name. type: string x-example: United States required: - event - userId - userEmail - userName - mode - ip - time - osCode - osName - osVersion - clientType - clientCode - clientName - clientVersion - clientEngine - clientEngineVersion - deviceName - deviceBrand - deviceModel - countryCode - countryName user: description: User type: object properties: $id: description: User ID. type: string x-example: 5e5ea5c16897e $createdAt: description: User creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: User update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' name: description: User name. type: string x-example: John Doe password: description: Hashed user password. type: string x-example: >- $argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L/4LdgrVRXxE nullable: true hash: description: Password hashing algorithm. type: string x-example: argon2 nullable: true hashOptions: description: Password hashing algorithm configuration. type: object x-example: {} items: oneOf: - $ref: '#/components/schemas/algoArgon2' - $ref: '#/components/schemas/algoScrypt' - $ref: '#/components/schemas/algoScryptModified' - $ref: '#/components/schemas/algoBcrypt' - $ref: '#/components/schemas/algoPhpass' - $ref: '#/components/schemas/algoSha' - $ref: '#/components/schemas/algoMd5' nullable: true registration: description: User registration date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' status: description: User status. Pass `true` for enabled and `false` for disabled. type: boolean x-example: true labels: description: Labels for the user. type: array items: type: string x-example: - vip passwordUpdate: description: Password update time in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' email: description: User email address. type: string x-example: john@appwrite.io phone: description: User phone number in E.164 format. type: string x-example: '+4930901820' emailVerification: description: Email verification status. type: boolean x-example: true phoneVerification: description: Phone verification status. type: boolean x-example: true mfa: description: Multi factor authentication status. type: boolean x-example: true prefs: description: User preferences as a key-value object type: object x-example: theme: pink timezone: UTC items: $ref: '#/components/schemas/preferences' targets: description: >- A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider. type: array items: $ref: '#/components/schemas/target' x-example: [] accessedAt: description: >- Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours. type: string x-example: '2020-10-15T06:38:00.000+00:00' required: - $id - $createdAt - $updatedAt - name - registration - status - labels - passwordUpdate - email - phone - emailVerification - phoneVerification - mfa - prefs - targets - accessedAt algoMd5: description: AlgoMD5 type: object properties: type: description: Algo type. type: string x-example: md5 required: - type algoSha: description: AlgoSHA type: object properties: type: description: Algo type. type: string x-example: sha required: - type algoPhpass: description: AlgoPHPass type: object properties: type: description: Algo type. type: string x-example: phpass required: - type algoBcrypt: description: AlgoBcrypt type: object properties: type: description: Algo type. type: string x-example: bcrypt required: - type algoScrypt: description: AlgoScrypt type: object properties: type: description: Algo type. type: string x-example: scrypt costCpu: description: CPU complexity of computed hash. type: integer x-example: 8 format: int32 costMemory: description: Memory complexity of computed hash. type: integer x-example: 14 format: int32 costParallel: description: Parallelization of computed hash. type: integer x-example: 1 format: int32 length: description: Length used to compute hash. type: integer x-example: 64 format: int32 required: - type - costCpu - costMemory - costParallel - length algoScryptModified: description: AlgoScryptModified type: object properties: type: description: Algo type. type: string x-example: scryptMod salt: description: Salt used to compute hash. type: string x-example: UxLMreBr6tYyjQ== saltSeparator: description: Separator used to compute hash. type: string x-example: Bw== signerKey: description: Key used to compute hash. type: string x-example: >- XyEKE9RcTDeLEsL/RjwPDBv/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ== required: - type - salt - saltSeparator - signerKey algoArgon2: description: AlgoArgon2 type: object properties: type: description: Algo type. type: string x-example: argon2 memoryCost: description: Memory used to compute hash. type: integer x-example: 65536 format: int32 timeCost: description: Amount of time consumed to compute hash type: integer x-example: 4 format: int32 threads: description: Number of threads used to compute hash. type: integer x-example: 3 format: int32 required: - type - memoryCost - timeCost - threads preferences: description: Preferences type: object additionalProperties: true session: description: Session type: object properties: $id: description: Session ID. type: string x-example: 5e5ea5c16897e $createdAt: description: Session creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' userId: description: User ID. type: string x-example: 5e5bb8c16897e expire: description: Session expiration date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' provider: description: Session Provider. type: string x-example: email providerUid: description: Session Provider User ID. type: string x-example: user@example.com providerAccessToken: description: Session Provider Access Token. type: string x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3 providerAccessTokenExpiry: description: The date of when the access token expires in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' providerRefreshToken: description: Session Provider Refresh Token. type: string x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3 ip: description: IP in use when the session was created. type: string x-example: 127.0.0.1 osCode: description: >- Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json). type: string x-example: Mac osName: description: Operating system name. type: string x-example: Mac osVersion: description: Operating system version. type: string x-example: Mac clientType: description: Client type. type: string x-example: browser clientCode: description: >- Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json). type: string x-example: CM clientName: description: Client name. type: string x-example: Chrome Mobile iOS clientVersion: description: Client version. type: string x-example: '84.0' clientEngine: description: Client engine name. type: string x-example: WebKit clientEngineVersion: description: Client engine name. type: string x-example: 605.1.15 deviceName: description: Device name. type: string x-example: smartphone deviceBrand: description: Device brand name. type: string x-example: Google deviceModel: description: Device model name. type: string x-example: Nexus 5 countryCode: description: Country two-character ISO 3166-1 alpha code. type: string x-example: US countryName: description: Country name. type: string x-example: United States current: description: Returns true if this the current user session. type: boolean x-example: true factors: description: Returns a list of active session factors. type: array items: type: string x-example: - email secret: description: >- Secret used to authenticate the user. Only included if the request was made with an API key type: string x-example: 5e5bb8c16897e mfaUpdatedAt: description: >- Most recent date in ISO 8601 format when the session successfully passed MFA challenge. type: string x-example: '2020-10-15T06:38:00.000+00:00' required: - $id - $createdAt - userId - expire - provider - providerUid - providerAccessToken - providerAccessTokenExpiry - providerRefreshToken - ip - osCode - osName - osVersion - clientType - clientCode - clientName - clientVersion - clientEngine - clientEngineVersion - deviceName - deviceBrand - deviceModel - countryCode - countryName - current - factors - secret - mfaUpdatedAt identity: description: Identity type: object properties: $id: description: Identity ID. type: string x-example: 5e5ea5c16897e $createdAt: description: Identity creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Identity update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' userId: description: User ID. type: string x-example: 5e5bb8c16897e provider: description: Identity Provider. type: string x-example: email providerUid: description: ID of the User in the Identity Provider. type: string x-example: 5e5bb8c16897e providerEmail: description: Email of the User in the Identity Provider. type: string x-example: user@example.com providerAccessToken: description: Identity Provider Access Token. type: string x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3 providerAccessTokenExpiry: description: The date of when the access token expires in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' providerRefreshToken: description: Identity Provider Refresh Token. type: string x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3 required: - $id - $createdAt - $updatedAt - userId - provider - providerUid - providerEmail - providerAccessToken - providerAccessTokenExpiry - providerRefreshToken token: description: Token type: object properties: $id: description: Token ID. type: string x-example: bb8ea5c16897e $createdAt: description: Token creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' userId: description: User ID. type: string x-example: 5e5ea5c168bb8 secret: description: >- Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload. type: string x-example: '' expire: description: Token expiration date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' phrase: description: >- Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email. type: string x-example: Golden Fox required: - $id - $createdAt - userId - secret - expire - phrase jwt: description: JWT type: object properties: jwt: description: JWT encoded string. type: string x-example: >- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c required: - jwt locale: description: Locale type: object properties: ip: description: User IP address. type: string x-example: 127.0.0.1 countryCode: description: >- Country code in [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) two-character format type: string x-example: US country: description: Country name. This field support localization. type: string x-example: United States continentCode: description: >- Continent code. A two character continent code "AF" for Africa, "AN" for Antarctica, "AS" for Asia, "EU" for Europe, "NA" for North America, "OC" for Oceania, and "SA" for South America. type: string x-example: NA continent: description: Continent name. This field support localization. type: string x-example: North America eu: description: True if country is part of the European Union. type: boolean x-example: false currency: description: >- Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format type: string x-example: USD required: - ip - countryCode - country - continentCode - continent - eu - currency localeCode: description: LocaleCode type: object properties: code: description: >- Locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) type: string x-example: en-us name: description: Locale name type: string x-example: US required: - code - name file: description: File type: object properties: $id: description: File ID. type: string x-example: 5e5ea5c16897e bucketId: description: Bucket ID. type: string x-example: 5e5ea5c16897e $createdAt: description: File creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: File update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $permissions: description: >- File permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array items: type: string x-example: - read("any") name: description: File name. type: string x-example: Pink.png signature: description: File MD5 signature. type: string x-example: 5d529fd02b544198ae075bd57c1762bb mimeType: description: File mime type. type: string x-example: image/png sizeOriginal: description: File original size in bytes. type: integer x-example: 17890 format: int32 chunksTotal: description: Total number of chunks available type: integer x-example: 17890 format: int32 chunksUploaded: description: Total number of chunks uploaded type: integer x-example: 17890 format: int32 required: - $id - bucketId - $createdAt - $updatedAt - $permissions - name - signature - mimeType - sizeOriginal - chunksTotal - chunksUploaded team: description: Team type: object properties: $id: description: Team ID. type: string x-example: 5e5ea5c16897e $createdAt: description: Team creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Team update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' name: description: Team name. type: string x-example: VIP total: description: Total number of team members. type: integer x-example: 7 format: int32 prefs: description: Team preferences as a key-value object type: object x-example: theme: pink timezone: UTC items: $ref: '#/components/schemas/preferences' required: - $id - $createdAt - $updatedAt - name - total - prefs membership: description: Membership type: object properties: $id: description: Membership ID. type: string x-example: 5e5ea5c16897e $createdAt: description: Membership creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Membership update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' userId: description: User ID. type: string x-example: 5e5ea5c16897e userName: description: User name. type: string x-example: John Doe userEmail: description: User email address. type: string x-example: john@appwrite.io teamId: description: Team ID. type: string x-example: 5e5ea5c16897e teamName: description: Team name. type: string x-example: VIP invited: description: Date, the user has been invited to join the team in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' joined: description: >- Date, the user has accepted the invitation to join the team in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' confirm: description: >- User confirmation status, true if the user has joined the team or false otherwise. type: boolean x-example: false mfa: description: >- Multi factor authentication status, true if the user has MFA enabled or false otherwise. type: boolean x-example: false roles: description: User list of roles type: array items: type: string x-example: - owner required: - $id - $createdAt - $updatedAt - userId - userName - userEmail - teamId - teamName - invited - joined - confirm - mfa - roles execution: description: Execution type: object properties: $id: description: Execution ID. type: string x-example: 5e5ea5c16897e $createdAt: description: Execution creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Execution upate date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $permissions: description: Execution roles. type: array items: type: string x-example: - any functionId: description: Function ID. type: string x-example: 5e5ea6g16897e trigger: description: >- The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`. type: string x-example: http status: description: >- The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`. type: string x-example: processing requestMethod: description: HTTP request method type. type: string x-example: GET requestPath: description: HTTP request path and query. type: string x-example: /articles?id=5 requestHeaders: description: >- HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous. type: array items: $ref: '#/components/schemas/headers' x-example: - Content-Type: application/json responseStatusCode: description: HTTP response status code. type: integer x-example: 200 format: int32 responseBody: description: >- HTTP response body. This will return empty unless execution is created as synchronous. type: string x-example: Developers are awesome. responseHeaders: description: >- HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous. type: array items: $ref: '#/components/schemas/headers' x-example: - Content-Type: application/json logs: description: >- Function logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload. type: string x-example: '' errors: description: >- Function errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload. type: string x-example: '' duration: description: Function execution duration in seconds. type: number x-example: 0.4 format: double required: - $id - $createdAt - $updatedAt - $permissions - functionId - trigger - status - requestMethod - requestPath - requestHeaders - responseStatusCode - responseBody - responseHeaders - logs - errors - duration country: description: Country type: object properties: name: description: Country name. type: string x-example: United States code: description: Country two-character ISO 3166-1 alpha code. type: string x-example: US required: - name - code continent: description: Continent type: object properties: name: description: Continent name. type: string x-example: Europe code: description: Continent two letter code. type: string x-example: EU required: - name - code language: description: Language type: object properties: name: description: Language name. type: string x-example: Italian code: description: Language two-character ISO 639-1 codes. type: string x-example: it nativeName: description: Language native name. type: string x-example: Italiano required: - name - code - nativeName currency: description: Currency type: object properties: symbol: description: Currency symbol. type: string x-example: $ name: description: Currency name. type: string x-example: US dollar symbolNative: description: Currency native symbol. type: string x-example: $ decimalDigits: description: Number of decimal digits. type: integer x-example: 2 format: int32 rounding: description: Currency digit rounding. type: number x-example: 0 format: double code: description: >- Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format. type: string x-example: USD namePlural: description: Currency plural name type: string x-example: US dollars required: - symbol - name - symbolNative - decimalDigits - rounding - code - namePlural phone: description: Phone type: object properties: code: description: Phone code. type: string x-example: '+1' countryCode: description: Country two-character ISO 3166-1 alpha code. type: string x-example: US countryName: description: Country name. type: string x-example: United States required: - code - countryCode - countryName headers: description: Headers type: object properties: name: description: Header name. type: string x-example: Content-Type value: description: Header value. type: string x-example: application/json required: - name - value mfaChallenge: description: MFA Challenge type: object properties: $id: description: Token ID. type: string x-example: bb8ea5c16897e $createdAt: description: Token creation date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' userId: description: User ID. type: string x-example: 5e5ea5c168bb8 expire: description: Token expiration date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' required: - $id - $createdAt - userId - expire mfaRecoveryCodes: description: MFA Recovery Codes type: object properties: recoveryCodes: description: Recovery codes. type: array items: type: string x-example: - a3kf0-s0cl2 - s0co1-as98s required: - recoveryCodes mfaType: description: MFAType type: object properties: secret: description: Secret token used for TOTP factor. type: string x-example: true uri: description: URI for authenticator apps. type: string x-example: true required: - secret - uri mfaFactors: description: MFAFactors type: object properties: totp: description: TOTP type: boolean x-example: true phone: description: Phone type: boolean x-example: true email: description: Email type: boolean x-example: true required: - totp - phone - email subscriber: description: Subscriber type: object properties: $id: description: Subscriber ID. type: string x-example: '259125845563242502' $createdAt: description: Subscriber creation time in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Subscriber update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' targetId: description: Target ID. type: string x-example: '259125845563242502' target: description: Target. type: object x-example: $id: '259125845563242502' $createdAt: '2020-10-15T06:38:00.000+00:00' $updatedAt: '2020-10-15T06:38:00.000+00:00' providerType: email providerId: '259125845563242502' name: ageon-app-email identifier: random-mail@email.org userId: 5e5ea5c16897e items: $ref: '#/components/schemas/target' userId: description: Topic ID. type: string x-example: 5e5ea5c16897e userName: description: User Name. type: string x-example: Aegon Targaryen topicId: description: Topic ID. type: string x-example: '259125845563242502' providerType: description: >- The target provider type. Can be one of the following: `email`, `sms` or `push`. type: string x-example: email required: - $id - $createdAt - $updatedAt - targetId - target - userId - userName - topicId - providerType target: description: Target type: object properties: $id: description: Target ID. type: string x-example: '259125845563242502' $createdAt: description: Target creation time in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' $updatedAt: description: Target update date in ISO 8601 format. type: string x-example: '2020-10-15T06:38:00.000+00:00' name: description: Target Name. type: string x-example: Aegon apple token userId: description: User ID. type: string x-example: '259125845563242502' providerId: description: Provider ID. type: string x-example: '259125845563242502' nullable: true providerType: description: >- The target provider type. Can be one of the following: `email`, `sms` or `push`. type: string x-example: email identifier: description: The target identifier. type: string x-example: token required: - $id - $createdAt - $updatedAt - name - userId - providerType - identifier AccountRegisterUserRequest: type: object properties: userId: description: >- User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: email: description: User email. type: string x-example: email@example.com password: description: New user password. Must be between 8 and 256 chars. type: string x-example: null name: description: 'User name. Max length: 128 chars.' type: string x-example: required: - userId - email - password AccountUpdateUserEmailRequest: type: object properties: email: description: User email. type: string x-example: email@example.com password: description: User password. Must be at least 8 chars. type: string x-example: password required: - email - password AccountUpdateMfaStatusRequest: type: object properties: mfa: description: Enable or disable MFA. type: boolean x-example: false required: - mfa AccountDeleteAuthenticatorRequest: type: object properties: otp: description: Valid verification token. type: string x-example: required: - otp AccountVerifyAuthenticatorRequest: type: object properties: otp: description: Valid verification token. type: string x-example: required: - otp AccountCreateMfaChallengeRequest: type: object properties: factor: description: >- Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`. type: string x-example: email enum: - email - phone - totp - recoverycode x-enum-name: AuthenticationFactor x-enum-keys: [] required: - factor AccountCompleteMfaChallengeRequest: type: object properties: challengeId: description: ID of the challenge. type: string x-example: otp: description: Valid verification token. type: string x-example: required: - challengeId - otp AccountUpdateNameOperationRequest: type: object properties: name: description: 'User name. Max length: 128 chars.' type: string x-example: required: - name AccountUpdatePasswordRequest: type: object properties: password: description: New user password. Must be at least 8 chars. type: string x-example: null oldPassword: description: Current user password. Must be at least 8 chars. type: string x-example: password required: - password AccountUpdatePhoneRequest: type: object properties: phone: description: >- Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212. type: string x-example: '+12065550100' password: description: User password. Must be at least 8 chars. type: string x-example: password required: - phone - password AccountUpdatePreferencesRequest: type: object properties: prefs: description: Prefs key-value JSON object. type: object x-example: '{}' required: - prefs AccountCreatePasswordRecoveryRequest: type: object properties: email: description: User email. type: string x-example: email@example.com url: description: >- URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. type: string x-example: https://example.com required: - email - url AccountCompletePasswordRecoveryRequest: type: object properties: userId: description: User ID. type: string x-example: secret: description: Valid reset token. type: string x-example: password: description: New user password. Must be between 8 and 256 chars. type: string x-example: null required: - userId - secret - password AccountCreateEmailPasswordSessionRequest: type: object properties: email: description: User email. type: string x-example: email@example.com password: description: User password. Must be at least 8 chars. type: string x-example: password required: - email - password AccountUpdateMagicUrlSessionRequest: type: object properties: userId: description: >- User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: secret: description: Valid verification token. type: string x-example: required: - userId - secret AccountUpdatePhoneSessionRequest: type: object properties: userId: description: >- User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: secret: description: Valid verification token. type: string x-example: required: - userId - secret AccountCreateSessionFromTokenRequest: type: object properties: userId: description: >- User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: secret: description: >- Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods. type: string x-example: required: - userId - secret AccountCreatePushTargetRequest: type: object properties: targetId: description: >- Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: identifier: description: The target identifier (token, email, phone etc.) type: string x-example: providerId: description: >- Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used. type: string x-example: required: - targetId - identifier AccountUpdatePushTargetRequest: type: object properties: identifier: description: The target identifier (token, email, phone etc.) type: string x-example: required: - identifier AccountCreateEmailTokenRequest: type: object properties: userId: description: >- User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: email: description: User email. type: string x-example: email@example.com phrase: description: >- Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow. type: boolean x-example: false required: - userId - email AccountCreateMagicUrlTokenRequest: type: object properties: userId: description: >- Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: email: description: User email. type: string x-example: email@example.com url: description: >- URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. type: string x-example: https://example.com phrase: description: >- Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow. type: boolean x-example: false required: - userId - email AccountCreatePhoneTokenRequest: type: object properties: userId: description: >- Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: phone: description: >- Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212. type: string x-example: '+12065550100' required: - userId - phone AccountCreateEmailVerificationRequest: type: object properties: url: description: >- URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. type: string x-example: https://example.com required: - url AccountCreateEmailVerificationRequest1: type: object properties: userId: description: User ID. type: string x-example: secret: description: Valid verification token. type: string x-example: required: - userId - secret AccountConfirmPhoneVerificationRequest: type: object properties: userId: description: User ID. type: string x-example: secret: description: Valid verification token. type: string x-example: required: - userId - secret DatabasesCreateDocumentRequest: type: object properties: documentId: description: >- Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: data: description: Document data as JSON object. type: object x-example: '{}' permissions: description: >- An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array x-example: '["read("any")"]' items: type: string required: - documentId - data DatabasesUpdateDocumentByIdRequest: type: object properties: data: description: >- Document data as JSON object. Include only attribute and value pairs to be updated. type: object x-example: '{}' permissions: description: >- An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array x-example: '["read("any")"]' items: type: string FunctionsTriggerFunctionExecutionRequest: type: object properties: body: description: HTTP body of execution. Default value is empty string. type: string x-example: async: description: Execute code in the background. Default value is false. type: boolean x-example: false path: description: >- HTTP path of execution. Path can include query params. Default value is / type: string x-example: method: description: HTTP method of execution. Default value is GET. type: string x-example: GET enum: - GET - POST - PUT - PATCH - DELETE - OPTIONS x-enum-name: ExecutionMethod x-enum-keys: [] headers: description: HTTP headers of execution. Defaults to empty. type: object x-example: '{}' MessagingAddNewSubscriberRequest: type: object properties: subscriberId: description: Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID. type: string x-example: targetId: description: Target ID. The target ID to link to the specified Topic ID. type: string x-example: required: - subscriberId - targetId StorageCreateFileRequest: type: object properties: fileId: description: >- File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: x-upload-id: true file: description: >- Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/storage#file-input). type: string x-example: null permissions: description: >- An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array x-example: '["read("any")"]' items: type: string required: - fileId - file StorageUpdateFileByIdRequest: type: object properties: name: description: Name of the file type: string x-example: permissions: description: >- An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). type: array x-example: '["read("any")"]' items: type: string TeamsCreateNewTeamRequest: type: object properties: teamId: description: >- Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. type: string x-example: name: description: 'Team name. Max length: 128 chars.' type: string x-example: roles: description: >- Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long. type: array x-example: null items: type: string required: - teamId - name TeamsUpdateNameByIdRequest: type: object properties: name: description: 'New team name. Max length: 128 chars.' type: string x-example: required: - name TeamsCreateMembershipRequest: type: object properties: email: description: Email of the new team member. type: string x-example: email@example.com userId: description: ID of the user to be added to a team. type: string x-example: phone: description: >- Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212. type: string x-example: '+12065550100' roles: description: >- Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long. type: array x-example: null items: type: string url: description: >- URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API. type: string x-example: https://example.com name: description: 'Name of the new team member. Max length: 128 chars.' type: string x-example: required: - roles TeamsUpdateMembershipRolesRequest: type: object properties: roles: description: >- An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long. type: array x-example: null items: type: string required: - roles TeamsUpdateMembershipStatusRequest: type: object properties: userId: description: User ID. type: string x-example: secret: description: Secret key. type: string x-example: required: - userId - secret TeamsUpdatePrefsByIdRequest: type: object properties: prefs: description: Prefs key-value JSON object. type: object x-example: '{}' required: - prefs securitySchemes: Project: description: Your project ID type: apiKey name: X-Appwrite-Project in: header x-appwrite: demo: 5df5acd0d48c2 JWT: description: Your secret JSON Web Token type: apiKey name: X-Appwrite-JWT in: header Locale: description: '' type: apiKey name: X-Appwrite-Locale in: header x-appwrite: demo: en Session: description: The user session to authenticate with type: apiKey name: X-Appwrite-Session in: header externalDocs: description: Full API docs, specs and tutorials url: https://appwrite.io/docs