Skip to content

Instantly share code, notes, and snippets.

@kerbymart
Created July 19, 2025 08:36
Show Gist options
  • Save kerbymart/7b7428e453b9fc16e47bd47975a91de1 to your computer and use it in GitHub Desktop.
Save kerbymart/7b7428e453b9fc16e47bd47975a91de1 to your computer and use it in GitHub Desktop.
openapi: 3.0.0
info:
version: 1.6.2
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)
termsOfService: https://appwrite.io/policy/terms
contact:
name: Appwrite Team
url: https://appwrite.io/support
email: [email protected]
license:
name: BSD-3-Clause
url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
- url: https://<REGION>.cloud.appwrite.io/v1
paths:
/account:
get:
summary: Get account
operationId: accountGet
tags:
- account
description: Get the currently logged in user.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: get
group: account
weight: 9
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
post:
summary: Create account
operationId: accountCreate
tags:
- account
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).
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: create
group: account
weight: 8
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: New user password. Must be between 8 and 256 chars.
x-example: null
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/account/email:
patch:
summary: Update email
operationId: accountUpdateEmail
tags:
- account
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.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateEmail
group: account
weight: 34
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password. Must be at least 8 chars.
x-example: password
required:
- email
- password
/account/identities:
get:
summary: List identities
operationId: accountListIdentities
tags:
- account
description: Get the list of identities for the currently logged in user.
responses:
'200':
description: Identities List
content:
application/json:
schema:
$ref: '#/components/schemas/identityList'
x-appwrite:
method: listIdentities
group: identities
weight: 57
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
/account/identities/{identityId}:
delete:
summary: Delete identity
operationId: accountDeleteIdentity
tags:
- account
description: Delete an identity by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteIdentity
group: identities
weight: 58
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: identityId
description: Identity ID.
required: true
schema:
type: string
x-example: <IDENTITY_ID>
in: path
/account/jwts:
post:
summary: Create JWT
operationId: accountCreateJWT
tags:
- account
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
group: tokens
weight: 29
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
auth:
Project: []
security:
- Project: []
/account/logs:
get:
summary: List logs
operationId: accountListLogs
tags:
- account
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.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listLogs
group: logs
weight: 31
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/account/mfa:
patch:
summary: Update MFA
operationId: accountUpdateMFA
tags:
- account
description: Enable or disable MFA on an account.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateMFA
group: mfa
weight: 44
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
mfa:
type: boolean
description: Enable or disable MFA.
x-example: false
required:
- mfa
/account/mfa/authenticators/{type}:
post:
summary: Create authenticator
operationId: accountCreateMfaAuthenticator
tags:
- account
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#updateMfaAuthenticator) method.
responses:
'200':
description: MFAType
content:
application/json:
schema:
$ref: '#/components/schemas/mfaType'
x-appwrite:
method: createMfaAuthenticator
group: mfa
weight: 46
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: type
description: Type of authenticator. Must be `totp`
required: true
schema:
type: string
x-example: totp
enum:
- totp
x-enum-name: AuthenticatorType
x-enum-keys: []
in: path
put:
summary: Update authenticator (confirmation)
operationId: accountUpdateMfaAuthenticator
tags:
- account
description: Verify an authenticator app after adding it using the [add authenticator](/docs/references/cloud/client-web/account#createMfaAuthenticator) method.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateMfaAuthenticator
group: mfa
weight: 47
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: type
description: Type of authenticator.
required: true
schema:
type: string
x-example: totp
enum:
- totp
x-enum-name: AuthenticatorType
x-enum-keys: []
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
otp:
type: string
description: Valid verification token.
x-example: <OTP>
required:
- otp
delete:
summary: Delete authenticator
operationId: accountDeleteMfaAuthenticator
tags:
- account
description: Delete an authenticator for a user by ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteMfaAuthenticator
group: mfa
weight: 51
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: type
description: Type of authenticator.
required: true
schema:
type: string
x-example: totp
enum:
- totp
x-enum-name: AuthenticatorType
x-enum-keys: []
in: path
/account/mfa/challenge:
post:
summary: Create MFA challenge
operationId: accountCreateMfaChallenge
tags:
- account
description: Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](/docs/references/cloud/client-web/account#updateMfaChallenge) method.
responses:
'201':
description: MFA Challenge
content:
application/json:
schema:
$ref: '#/components/schemas/mfaChallenge'
x-appwrite:
method: createMfaChallenge
group: mfa
weight: 52
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},userId:{userId}
scope: account
platforms:
- server
- client
packaging: false
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
factor:
type: string
description: 'Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.'
x-example: email
enum:
- email
- phone
- totp
- recoverycode
x-enum-name: AuthenticationFactor
x-enum-keys: []
required:
- factor
put:
summary: Update MFA challenge (confirmation)
operationId: accountUpdateMfaChallenge
tags:
- account
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.
responses:
'200':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: updateMfaChallenge
group: mfa
weight: 53
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: url:{url},challengeId:{param-challengeId}
scope: account
platforms:
- client
- server
packaging: false
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
challengeId:
type: string
description: ID of the challenge.
x-example: <CHALLENGE_ID>
otp:
type: string
description: Valid verification token.
x-example: <OTP>
required:
- challengeId
- otp
/account/mfa/factors:
get:
summary: List factors
operationId: accountListMfaFactors
tags:
- account
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
group: mfa
weight: 45
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
/account/mfa/recovery-codes:
get:
summary: List MFA recovery codes
operationId: accountGetMfaRecoveryCodes
tags:
- account
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
group: mfa
weight: 50
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
post:
summary: Create MFA recovery codes
operationId: accountCreateMfaRecoveryCodes
tags:
- account
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
group: mfa
weight: 48
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
patch:
summary: Update MFA recovery codes (regenerate)
operationId: accountUpdateMfaRecoveryCodes
tags:
- account
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
group: mfa
weight: 49
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
/account/name:
patch:
summary: Update name
operationId: accountUpdateName
tags:
- account
description: Update currently logged in user account name.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateName
group: account
weight: 32
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- name
/account/password:
patch:
summary: Update password
operationId: accountUpdatePassword
tags:
- account
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.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePassword
group: account
weight: 33
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: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: account
platforms:
- client
- server
packaging: false
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
password:
type: string
description: New user password. Must be at least 8 chars.
x-example: null
oldPassword:
type: string
description: Current user password. Must be at least 8 chars.
x-example: password
required:
- password
/account/phone:
patch:
summary: Update phone
operationId: accountUpdatePhone
tags:
- account
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.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePhone
group: account
weight: 35
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
password:
type: string
description: User password. Must be at least 8 chars.
x-example: password
required:
- phone
- password
/account/prefs:
get:
summary: Get account preferences
operationId: accountGetPrefs
tags:
- account
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
group: account
weight: 30
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
patch:
summary: Update preferences
operationId: accountUpdatePrefs
tags:
- account
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.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePrefs
group: account
weight: 36
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
prefs:
type: object
description: Prefs key-value JSON object.
x-example: '{}'
required:
- prefs
/account/recovery:
post:
summary: Create password recovery
operationId: accountCreateRecovery
tags:
- account
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.
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createRecovery
group: recovery
weight: 38
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: User email.
x-example: [email protected]
url:
type: string
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.
x-example: https://example.com
required:
- email
- url
put:
summary: Update password recovery (confirmation)
operationId: accountUpdateRecovery
tags:
- account
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.
responses:
'200':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: updateRecovery
group: recovery
weight: 39
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
description: User ID.
x-example: <USER_ID>
secret:
type: string
description: Valid reset token.
x-example: <SECRET>
password:
type: string
description: New user password. Must be between 8 and 256 chars.
x-example: null
required:
- userId
- secret
- password
/account/sessions:
get:
summary: List sessions
operationId: accountListSessions
tags:
- account
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
group: sessions
weight: 11
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
delete:
summary: Delete sessions
operationId: accountDeleteSessions
tags:
- account
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
group: sessions
weight: 12
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
/account/sessions/anonymous:
post:
summary: Create anonymous session
operationId: accountCreateAnonymousSession
tags:
- account
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
group: sessions
weight: 17
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
auth:
Project: []
security:
- Project: []
/account/sessions/email:
post:
summary: Create email password session
operationId: accountCreateEmailPasswordSession
tags:
- account
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).
responses:
'201':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: createEmailPasswordSession
group: sessions
weight: 16
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password. Must be at least 8 chars.
x-example: password
required:
- email
- password
/account/sessions/magic-url:
put:
summary: Update magic URL session
operationId: accountUpdateMagicURLSession
tags:
- account
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.
responses:
'201':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: updateMagicURLSession
group: sessions
weight: 26
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
secret:
type: string
description: Valid verification token.
x-example: <SECRET>
required:
- userId
- secret
/account/sessions/phone:
put:
summary: Update phone session
operationId: accountUpdatePhoneSession
tags:
- account
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.
responses:
'201':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: updatePhoneSession
group: sessions
weight: 27
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
secret:
type: string
description: Valid verification token.
x-example: <SECRET>
required:
- userId
- secret
/account/sessions/token:
post:
summary: Create session
operationId: accountCreateSession
tags:
- account
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.
responses:
'201':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: createSession
group: sessions
weight: 18
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
secret:
type: string
description: Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.
x-example: <SECRET>
required:
- userId
- secret
/account/sessions/{sessionId}:
get:
summary: Get session
operationId: accountGetSession
tags:
- account
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.
responses:
'200':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: getSession
group: sessions
weight: 13
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: sessionId
description: Session ID. Use the string 'current' to get the current device session.
required: true
schema:
type: string
x-example: <SESSION_ID>
in: path
patch:
summary: Update session
operationId: accountUpdateSession
tags:
- account
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.
responses:
'200':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: updateSession
group: sessions
weight: 15
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: sessionId
description: Session ID. Use the string 'current' to update the current device session.
required: true
schema:
type: string
x-example: <SESSION_ID>
in: path
delete:
summary: Delete session
operationId: accountDeleteSession
tags:
- account
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.
responses:
'204':
description: No content
x-appwrite:
method: deleteSession
group: sessions
weight: 14
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: sessionId
description: Session ID. Use the string 'current' to delete the current device session.
required: true
schema:
type: string
x-example: <SESSION_ID>
in: path
/account/status:
patch:
summary: Update status
operationId: accountUpdateStatus
tags:
- account
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
group: account
weight: 37
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
/account/tokens/email:
post:
summary: Create email token (OTP)
operationId: accountCreateEmailToken
tags:
- account
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).
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createEmailToken
group: tokens
weight: 25
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}
- url:{url},ip:{ip}
scope: sessions.write
platforms:
- server
- client
packaging: false
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
phrase:
type: boolean
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.
x-example: false
required:
- userId
- email
/account/tokens/magic-url:
post:
summary: Create magic URL token
operationId: accountCreateMagicURLToken
tags:
- account
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.
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).
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createMagicURLToken
group: tokens
weight: 24
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
url:
type: string
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.
x-example: https://example.com
phrase:
type: boolean
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.
x-example: false
required:
- userId
- email
/account/tokens/oauth2/{provider}:
get:
summary: Create OAuth2 token
operationId: accountCreateOAuth2Token
tags:
- account
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).
responses:
'301':
description: File
x-appwrite:
method: createOAuth2Token
group: tokens
weight: 23
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
auth:
Project: []
security:
- Project: []
parameters:
- name: provider
description: 'OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom.'
required: true
schema:
type: string
x-example: amazon
enum:
- amazon
- apple
- auth0
- authentik
- autodesk
- bitbucket
- bitly
- box
- dailymotion
- discord
- disqus
- dropbox
- etsy
- facebook
- figma
- 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
- name: success
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.
required: false
schema:
type: string
format: url
x-example: https://example.com
default: ''
in: query
- name: failure
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.
required: false
schema:
type: string
format: url
x-example: https://example.com
default: ''
in: query
- name: scopes
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.
required: false
schema:
type: array
items:
type: string
default: []
in: query
/account/tokens/phone:
post:
summary: Create phone token
operationId: accountCreatePhoneToken
tags:
- account
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).
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createPhoneToken
group: tokens
weight: 28
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
auth:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
phone:
type: string
description: Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
required:
- userId
- phone
/account/verification:
post:
summary: Create email verification
operationId: accountCreateVerification
tags:
- account
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.
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createVerification
group: verification
weight: 40
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
url:
type: string
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.
x-example: https://example.com
required:
- url
put:
summary: Update email verification (confirmation)
operationId: accountUpdateVerification
tags:
- account
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.
responses:
'200':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: updateVerification
group: verification
weight: 41
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
description: User ID.
x-example: <USER_ID>
secret:
type: string
description: Valid verification token.
x-example: <SECRET>
required:
- userId
- secret
/account/verification/phone:
post:
summary: Create phone verification
operationId: accountCreatePhoneVerification
tags:
- account
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
group: verification
weight: 42
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
put:
summary: Update phone verification (confirmation)
operationId: accountUpdatePhoneVerification
tags:
- account
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.
responses:
'200':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: updatePhoneVerification
group: verification
weight: 43
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
description: User ID.
x-example: <USER_ID>
secret:
type: string
description: Valid verification token.
x-example: <SECRET>
required:
- userId
- secret
/avatars/browsers/{code}:
get:
summary: Get browser icon
operationId: avatarsGetBrowser
tags:
- avatars
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.
responses:
'200':
description: Image
x-appwrite:
method: getBrowser
group: null
weight: 60
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: code
description: Browser 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
- name: width
description: Image width. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: height
description: Image height. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: quality
description: Image quality. Pass an integer between 0 to 100. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
/avatars/credit-cards/{code}:
get:
summary: Get credit card icon
operationId: avatarsGetCreditCard
tags:
- avatars
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.
responses:
'200':
description: Image
x-appwrite:
method: getCreditCard
group: null
weight: 59
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: code
description: 'Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.'
required: true
schema:
type: string
x-example: amex
enum:
- amex
- argencard
- cabal
- cencosud
- diners
- discover
- elo
- hipercard
- jcb
- mastercard
- naranja
- targeta-shopping
- union-china-pay
- visa
- mir
- maestro
- rupay
x-enum-name: CreditCard
x-enum-keys:
- American Express
- Argencard
- Cabal
- Cencosud
- Diners Club
- Discover
- Elo
- Hipercard
- JCB
- Mastercard
- Naranja
- Tarjeta Shopping
- Union China Pay
- Visa
- MIR
- Maestro
- Rupay
in: path
- name: width
description: Image width. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: height
description: Image height. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: quality
description: Image quality. Pass an integer between 0 to 100. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
/avatars/favicon:
get:
summary: Get favicon
operationId: avatarsGetFavicon
tags:
- avatars
description: |-
Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.
This endpoint does not follow HTTP redirects.
responses:
'200':
description: Image
x-appwrite:
method: getFavicon
group: null
weight: 63
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: url
description: Website URL which you want to fetch the favicon from.
required: true
schema:
type: string
format: url
x-example: https://example.com
in: query
/avatars/flags/{code}:
get:
summary: Get country flag
operationId: avatarsGetFlag
tags:
- avatars
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.
responses:
'200':
description: Image
x-appwrite:
method: getFlag
group: null
weight: 61
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: code
description: Country Code. ISO Alpha-2 country code format.
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
- pf
- 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
- French Polynesia
- 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
- name: width
description: Image width. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: height
description: Image height. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: quality
description: Image quality. Pass an integer between 0 to 100. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
/avatars/image:
get:
summary: Get image from URL
operationId: avatarsGetImage
tags:
- avatars
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.
This endpoint does not follow HTTP redirects.
responses:
'200':
description: Image
x-appwrite:
method: getImage
group: null
weight: 62
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: url
description: Image URL which you want to crop.
required: true
schema:
type: string
format: url
x-example: https://example.com
in: query
- name: width
description: Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 400
in: query
- name: height
description: Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 400
in: query
/avatars/initials:
get:
summary: Get user initials
operationId: avatarsGetInitials
tags:
- avatars
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.
responses:
'200':
description: Image
x-appwrite:
method: getInitials
group: null
weight: 65
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: name
description: 'Full Name. When empty, current user name or email will be used. Max length: 128 chars.'
required: false
schema:
type: string
x-example: <NAME>
default: ''
in: query
- name: width
description: Image width. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 500
in: query
- name: height
description: Image height. Pass an integer between 0 to 2000. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 500
in: query
- name: background
description: Changes background color. By default a random color will be picked and stay will persistent to the given name.
required: false
schema:
type: string
default: ''
in: query
/avatars/qr:
get:
summary: Get QR code
operationId: avatarsGetQR
tags:
- avatars
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.
responses:
'200':
description: Image
x-appwrite:
method: getQR
group: null
weight: 64
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: text
description: Plain text to be converted to QR code image.
required: true
schema:
type: string
x-example: <TEXT>
in: query
- name: size
description: QR code size. Pass an integer between 1 to 1000. Defaults to 400.
required: false
schema:
type: integer
format: int32
x-example: 1
default: 400
in: query
- name: margin
description: Margin from edge. Pass an integer between 0 to 10. Defaults to 1.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 1
in: query
- name: download
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.'
required: false
schema:
type: boolean
x-example: false
default: false
in: query
/databases:
get:
summary: List databases
operationId: databasesList
tags:
- databases
description: Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.
responses:
'200':
description: Databases List
content:
application/json:
schema:
$ref: '#/components/schemas/databaseList'
x-appwrite:
method: list
group: databases
weight: 70
cookies: false
type: ''
deprecated: false
demo: databases/list.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/list.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: databases.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create database
operationId: databasesCreate
tags:
- databases
description: |
Create a new Database.
responses:
'201':
description: Database
content:
application/json:
schema:
$ref: '#/components/schemas/database'
x-appwrite:
method: create
group: databases
weight: 69
cookies: false
type: ''
deprecated: false
demo: databases/create.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: databases.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
databaseId:
type: string
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.
x-example: <DATABASE_ID>
name:
type: string
description: 'Database name. Max length: 128 chars.'
x-example: <NAME>
enabled:
type: boolean
description: Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.
x-example: false
required:
- databaseId
- name
/databases/{databaseId}:
get:
summary: Get database
operationId: databasesGet
tags:
- databases
description: Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.
responses:
'200':
description: Database
content:
application/json:
schema:
$ref: '#/components/schemas/database'
x-appwrite:
method: get
group: databases
weight: 71
cookies: false
type: ''
deprecated: false
demo: databases/get.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/get.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: databases.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
put:
summary: Update database
operationId: databasesUpdate
tags:
- databases
description: Update a database by its unique ID.
responses:
'200':
description: Database
content:
application/json:
schema:
$ref: '#/components/schemas/database'
x-appwrite:
method: update
group: databases
weight: 73
cookies: false
type: ''
deprecated: false
demo: databases/update.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: databases.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Database name. Max length: 128 chars.'
x-example: <NAME>
enabled:
type: boolean
description: Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.
x-example: false
required:
- name
delete:
summary: Delete database
operationId: databasesDelete
tags:
- databases
description: Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.
responses:
'204':
description: No content
x-appwrite:
method: delete
group: databases
weight: 74
cookies: false
type: ''
deprecated: false
demo: databases/delete.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: databases.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
/databases/{databaseId}/collections:
get:
summary: List collections
operationId: databasesListCollections
tags:
- databases
description: Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.
responses:
'200':
description: Collections List
content:
application/json:
schema:
$ref: '#/components/schemas/collectionList'
x-appwrite:
method: listCollections
group: collections
weight: 76
cookies: false
type: ''
deprecated: false
demo: databases/list-collections.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/list-collections.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: queries
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, enabled, documentSecurity'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create collection
operationId: databasesCreateCollection
tags:
- databases
description: Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
responses:
'201':
description: Collection
content:
application/json:
schema:
$ref: '#/components/schemas/collection'
x-appwrite:
method: createCollection
group: collections
weight: 75
cookies: false
type: ''
deprecated: false
demo: databases/create-collection.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-collection.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
collectionId:
type: string
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.
x-example: <COLLECTION_ID>
name:
type: string
description: 'Collection name. Max length: 128 chars.'
x-example: <NAME>
permissions:
type: array
description: An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
documentSecurity:
type: boolean
description: Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: false
enabled:
type: boolean
description: Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.
x-example: false
required:
- collectionId
- name
/databases/{databaseId}/collections/{collectionId}:
get:
summary: Get collection
operationId: databasesGetCollection
tags:
- databases
description: Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.
responses:
'200':
description: Collection
content:
application/json:
schema:
$ref: '#/components/schemas/collection'
x-appwrite:
method: getCollection
group: collections
weight: 77
cookies: false
type: ''
deprecated: false
demo: databases/get-collection.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/get-collection.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
put:
summary: Update collection
operationId: databasesUpdateCollection
tags:
- databases
description: Update a collection by its unique ID.
responses:
'200':
description: Collection
content:
application/json:
schema:
$ref: '#/components/schemas/collection'
x-appwrite:
method: updateCollection
group: collections
weight: 79
cookies: false
type: ''
deprecated: false
demo: databases/update-collection.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-collection.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Collection name. Max length: 128 chars.'
x-example: <NAME>
permissions:
type: array
description: An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
documentSecurity:
type: boolean
description: Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: false
enabled:
type: boolean
description: Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.
x-example: false
required:
- name
delete:
summary: Delete collection
operationId: databasesDeleteCollection
tags:
- databases
description: Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.
responses:
'204':
description: No content
x-appwrite:
method: deleteCollection
group: collections
weight: 80
cookies: false
type: ''
deprecated: false
demo: databases/delete-collection.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete-collection.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
/databases/{databaseId}/collections/{collectionId}/attributes:
get:
summary: List attributes
operationId: databasesListAttributes
tags:
- databases
description: List attributes in the collection.
responses:
'200':
description: Attributes List
content:
application/json:
schema:
$ref: '#/components/schemas/attributeList'
x-appwrite:
method: listAttributes
group: attributes
weight: 91
cookies: false
type: ''
deprecated: false
demo: databases/list-attributes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/list-attributes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: queries
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: key, type, size, required, array, status, error'
required: false
schema:
type: array
items:
type: string
default: []
in: query
/databases/{databaseId}/collections/{collectionId}/attributes/boolean:
post:
summary: Create boolean attribute
operationId: databasesCreateBooleanAttribute
tags:
- databases
description: |
Create a boolean attribute.
responses:
'202':
description: AttributeBoolean
content:
application/json:
schema:
$ref: '#/components/schemas/attributeBoolean'
x-appwrite:
method: createBooleanAttribute
group: attributes
weight: 88
cookies: false
type: ''
deprecated: false
demo: databases/create-boolean-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-boolean-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: boolean
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: false
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key}:
patch:
summary: Update boolean attribute
operationId: databasesUpdateBooleanAttribute
tags:
- databases
description: Update a boolean attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeBoolean
content:
application/json:
schema:
$ref: '#/components/schemas/attributeBoolean'
x-appwrite:
method: updateBooleanAttribute
group: attributes
weight: 100
cookies: false
type: ''
deprecated: false
demo: databases/update-boolean-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-boolean-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: boolean
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: false
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/datetime:
post:
summary: Create datetime attribute
operationId: databasesCreateDatetimeAttribute
tags:
- databases
description: Create a date time attribute according to the ISO 8601 standard.
responses:
'202':
description: AttributeDatetime
content:
application/json:
schema:
$ref: '#/components/schemas/attributeDatetime'
x-appwrite:
method: createDatetimeAttribute
group: attributes
weight: 89
cookies: false
type: ''
deprecated: false
demo: databases/create-datetime-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-datetime-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for the attribute in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.
x-example: null
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key}:
patch:
summary: Update dateTime attribute
operationId: databasesUpdateDatetimeAttribute
tags:
- databases
description: Update a date time attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeDatetime
content:
application/json:
schema:
$ref: '#/components/schemas/attributeDatetime'
x-appwrite:
method: updateDatetimeAttribute
group: attributes
weight: 101
cookies: false
type: ''
deprecated: false
demo: databases/update-datetime-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-datetime-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/email:
post:
summary: Create email attribute
operationId: databasesCreateEmailAttribute
tags:
- databases
description: |
Create an email attribute.
responses:
'202':
description: AttributeEmail
content:
application/json:
schema:
$ref: '#/components/schemas/attributeEmail'
x-appwrite:
method: createEmailAttribute
group: attributes
weight: 82
cookies: false
type: ''
deprecated: false
demo: databases/create-email-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-email-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: [email protected]
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/email/{key}:
patch:
summary: Update email attribute
operationId: databasesUpdateEmailAttribute
tags:
- databases
description: |
Update an email attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeEmail
content:
application/json:
schema:
$ref: '#/components/schemas/attributeEmail'
x-appwrite:
method: updateEmailAttribute
group: attributes
weight: 94
cookies: false
type: ''
deprecated: false
demo: databases/update-email-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-email-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: [email protected]
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/enum:
post:
summary: Create enum attribute
operationId: databasesCreateEnumAttribute
tags:
- databases
description: |
Create an enumeration attribute. The `elements` param acts as a white-list of accepted values for this attribute.
responses:
'202':
description: AttributeEnum
content:
application/json:
schema:
$ref: '#/components/schemas/attributeEnum'
x-appwrite:
method: createEnumAttribute
group: attributes
weight: 83
cookies: false
type: ''
deprecated: false
demo: databases/create-enum-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-attribute-enum.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
elements:
type: array
description: Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 255 characters long.
x-example: null
items:
type: string
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: <DEFAULT>
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- elements
- required
/databases/{databaseId}/collections/{collectionId}/attributes/enum/{key}:
patch:
summary: Update enum attribute
operationId: databasesUpdateEnumAttribute
tags:
- databases
description: |
Update an enum attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeEnum
content:
application/json:
schema:
$ref: '#/components/schemas/attributeEnum'
x-appwrite:
method: updateEnumAttribute
group: attributes
weight: 95
cookies: false
type: ''
deprecated: false
demo: databases/update-enum-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-enum-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
elements:
type: array
description: Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 255 characters long.
x-example: null
items:
type: string
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: <DEFAULT>
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- elements
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/float:
post:
summary: Create float attribute
operationId: databasesCreateFloatAttribute
tags:
- databases
description: |
Create a float attribute. Optionally, minimum and maximum values can be provided.
responses:
'202':
description: AttributeFloat
content:
application/json:
schema:
$ref: '#/components/schemas/attributeFloat'
x-appwrite:
method: createFloatAttribute
group: attributes
weight: 87
cookies: false
type: ''
deprecated: false
demo: databases/create-float-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-float-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
min:
type: number
description: Minimum value to enforce on new documents
x-example: null
max:
type: number
description: Maximum value to enforce on new documents
x-example: null
default:
type: number
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/float/{key}:
patch:
summary: Update float attribute
operationId: databasesUpdateFloatAttribute
tags:
- databases
description: |
Update a float attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeFloat
content:
application/json:
schema:
$ref: '#/components/schemas/attributeFloat'
x-appwrite:
method: updateFloatAttribute
group: attributes
weight: 99
cookies: false
type: ''
deprecated: false
demo: databases/update-float-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-float-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
min:
type: number
description: Minimum value to enforce on new documents
x-example: null
max:
type: number
description: Maximum value to enforce on new documents
x-example: null
default:
type: number
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/integer:
post:
summary: Create integer attribute
operationId: databasesCreateIntegerAttribute
tags:
- databases
description: |
Create an integer attribute. Optionally, minimum and maximum values can be provided.
responses:
'202':
description: AttributeInteger
content:
application/json:
schema:
$ref: '#/components/schemas/attributeInteger'
x-appwrite:
method: createIntegerAttribute
group: attributes
weight: 86
cookies: false
type: ''
deprecated: false
demo: databases/create-integer-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-integer-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
min:
type: integer
description: Minimum value to enforce on new documents
x-example: null
max:
type: integer
description: Maximum value to enforce on new documents
x-example: null
default:
type: integer
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/integer/{key}:
patch:
summary: Update integer attribute
operationId: databasesUpdateIntegerAttribute
tags:
- databases
description: |
Update an integer attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeInteger
content:
application/json:
schema:
$ref: '#/components/schemas/attributeInteger'
x-appwrite:
method: updateIntegerAttribute
group: attributes
weight: 98
cookies: false
type: ''
deprecated: false
demo: databases/update-integer-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-integer-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
min:
type: integer
description: Minimum value to enforce on new documents
x-example: null
max:
type: integer
description: Maximum value to enforce on new documents
x-example: null
default:
type: integer
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/ip:
post:
summary: Create IP address attribute
operationId: databasesCreateIpAttribute
tags:
- databases
description: |
Create IP address attribute.
responses:
'202':
description: AttributeIP
content:
application/json:
schema:
$ref: '#/components/schemas/attributeIp'
x-appwrite:
method: createIpAttribute
group: attributes
weight: 84
cookies: false
type: ''
deprecated: false
demo: databases/create-ip-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-ip-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/ip/{key}:
patch:
summary: Update IP address attribute
operationId: databasesUpdateIpAttribute
tags:
- databases
description: |
Update an ip attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeIP
content:
application/json:
schema:
$ref: '#/components/schemas/attributeIp'
x-appwrite:
method: updateIpAttribute
group: attributes
weight: 96
cookies: false
type: ''
deprecated: false
demo: databases/update-ip-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-ip-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: null
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/relationship:
post:
summary: Create relationship attribute
operationId: databasesCreateRelationshipAttribute
tags:
- databases
description: |
Create relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
responses:
'202':
description: AttributeRelationship
content:
application/json:
schema:
$ref: '#/components/schemas/attributeRelationship'
x-appwrite:
method: createRelationshipAttribute
group: attributes
weight: 90
cookies: false
type: ''
deprecated: false
demo: databases/create-relationship-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-relationship-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
relatedCollectionId:
type: string
description: Related Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
x-example: <RELATED_COLLECTION_ID>
type:
type: string
description: Relation type
x-example: oneToOne
enum:
- oneToOne
- manyToOne
- manyToMany
- oneToMany
x-enum-name: RelationshipType
x-enum-keys: []
twoWay:
type: boolean
description: Is Two Way?
x-example: false
key:
type: string
description: Attribute Key.
x-example: null
twoWayKey:
type: string
description: Two Way Attribute Key.
x-example: null
onDelete:
type: string
description: Constraints option
x-example: cascade
enum:
- cascade
- restrict
- setNull
x-enum-name: RelationMutate
x-enum-keys: []
required:
- relatedCollectionId
- type
/databases/{databaseId}/collections/{collectionId}/attributes/string:
post:
summary: Create string attribute
operationId: databasesCreateStringAttribute
tags:
- databases
description: |
Create a string attribute.
responses:
'202':
description: AttributeString
content:
application/json:
schema:
$ref: '#/components/schemas/attributeString'
x-appwrite:
method: createStringAttribute
group: attributes
weight: 81
cookies: false
type: ''
deprecated: false
demo: databases/create-string-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-string-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
size:
type: integer
description: Attribute size for text attributes, in number of characters.
x-example: 1
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: <DEFAULT>
array:
type: boolean
description: Is attribute an array?
x-example: false
encrypt:
type: boolean
description: Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.
x-example: false
required:
- key
- size
- required
/databases/{databaseId}/collections/{collectionId}/attributes/string/{key}:
patch:
summary: Update string attribute
operationId: databasesUpdateStringAttribute
tags:
- databases
description: |
Update a string attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeString
content:
application/json:
schema:
$ref: '#/components/schemas/attributeString'
x-appwrite:
method: updateStringAttribute
group: attributes
weight: 93
cookies: false
type: ''
deprecated: false
demo: databases/update-string-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-string-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: <DEFAULT>
x-nullable: true
size:
type: integer
description: Maximum size of the string attribute.
x-example: 1
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/url:
post:
summary: Create URL attribute
operationId: databasesCreateUrlAttribute
tags:
- databases
description: |
Create a URL attribute.
responses:
'202':
description: AttributeURL
content:
application/json:
schema:
$ref: '#/components/schemas/attributeUrl'
x-appwrite:
method: createUrlAttribute
group: attributes
weight: 85
cookies: false
type: ''
deprecated: false
demo: databases/create-url-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-url-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: null
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: https://example.com
array:
type: boolean
description: Is attribute an array?
x-example: false
required:
- key
- required
/databases/{databaseId}/collections/{collectionId}/attributes/url/{key}:
patch:
summary: Update URL attribute
operationId: databasesUpdateUrlAttribute
tags:
- databases
description: |
Update an url attribute. Changing the `default` value will not update already existing documents.
responses:
'200':
description: AttributeURL
content:
application/json:
schema:
$ref: '#/components/schemas/attributeUrl'
x-appwrite:
method: updateUrlAttribute
group: attributes
weight: 97
cookies: false
type: ''
deprecated: false
demo: databases/update-url-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-url-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
required:
type: boolean
description: Is attribute required?
x-example: false
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: https://example.com
x-nullable: true
newKey:
type: string
description: New attribute key.
x-example: null
required:
- required
- default
/databases/{databaseId}/collections/{collectionId}/attributes/{key}:
get:
summary: Get attribute
operationId: databasesGetAttribute
tags:
- databases
description: Get attribute by ID.
responses:
'200':
description: AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/attributeBoolean'
- $ref: '#/components/schemas/attributeInteger'
- $ref: '#/components/schemas/attributeFloat'
- $ref: '#/components/schemas/attributeEmail'
- $ref: '#/components/schemas/attributeEnum'
- $ref: '#/components/schemas/attributeUrl'
- $ref: '#/components/schemas/attributeIp'
- $ref: '#/components/schemas/attributeDatetime'
- $ref: '#/components/schemas/attributeRelationship'
- $ref: '#/components/schemas/attributeString'
x-appwrite:
method: getAttribute
group: attributes
weight: 92
cookies: false
type: ''
deprecated: false
demo: databases/get-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/get-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
delete:
summary: Delete attribute
operationId: databasesDeleteAttribute
tags:
- databases
description: Deletes an attribute.
responses:
'204':
description: No content
x-appwrite:
method: deleteAttribute
group: attributes
weight: 103
cookies: false
type: ''
deprecated: false
demo: databases/delete-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship:
patch:
summary: Update relationship attribute
operationId: databasesUpdateRelationshipAttribute
tags:
- databases
description: |
Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
responses:
'200':
description: AttributeRelationship
content:
application/json:
schema:
$ref: '#/components/schemas/attributeRelationship'
x-appwrite:
method: updateRelationshipAttribute
group: attributes
weight: 102
cookies: false
type: ''
deprecated: false
demo: databases/update-relationship-attribute.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-relationship-attribute.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Attribute Key.
required: true
schema:
type: string
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
onDelete:
type: string
description: Constraints option
x-example: cascade
enum:
- cascade
- restrict
- setNull
x-enum-name: RelationMutate
x-enum-keys: []
newKey:
type: string
description: New attribute key.
x-example: null
/databases/{databaseId}/collections/{collectionId}/documents:
get:
summary: List documents
operationId: databasesListDocuments
tags:
- databases
description: Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
responses:
'200':
description: Documents List
content:
application/json:
schema:
$ref: '#/components/schemas/documentList'
x-appwrite:
method: listDocuments
group: documents
weight: 109
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: queries
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.
required: false
schema:
type: array
items:
type: string
default: []
in: query
post:
summary: Create document
operationId: databasesCreateDocument
tags:
- databases
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.
responses:
'201':
description: Document
content:
application/json:
schema:
$ref: '#/components/schemas/document'
x-appwrite:
method: createDocument
group: documents
weight: 108
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
methods:
- name: createDocument
parameters:
- databaseId
- collectionId
- documentId
- data
- permissions
required:
- databaseId
- collectionId
- documentId
- data
responses:
- code: 201
model: '#/components/schemas/document'
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.
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
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.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
documentId:
type: string
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.
x-example: <DOCUMENT_ID>
data:
type: object
description: Document data as JSON object.
x-example: '{}'
permissions:
type: array
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).
x-example: '["read("any")"]'
items:
type: string
documents:
type: array
description: Array of documents data as JSON objects.
x-example: null
items:
type: object
put:
summary: Create or update documents
operationId: databasesUpsertDocuments
tags:
- databases
description: |
Create or update Documents. 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.
responses:
'200':
description: Documents List
content:
application/json:
schema:
$ref: '#/components/schemas/documentList'
x-appwrite:
method: upsertDocuments
group: documents
weight: 114
cookies: false
type: ''
deprecated: false
demo: databases/upsert-documents.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/upsert-documents.md
rate-limit: 120
rate-time: 60
rate-key: ip:{ip},method:{method},url:{url},userId:{userId}
scope: documents.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
documents:
type: array
description: Array of document data as JSON objects. May contain partial documents.
x-example: null
items:
type: object
patch:
summary: Update documents
operationId: databasesUpdateDocuments
tags:
- databases
description: Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.
responses:
'200':
description: Documents List
content:
application/json:
schema:
$ref: '#/components/schemas/documentList'
x-appwrite:
method: updateDocuments
group: documents
weight: 113
cookies: false
type: ''
deprecated: false
demo: databases/update-documents.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/update-documents.md
rate-limit: 120
rate-time: 60
rate-key: ip:{ip},method:{method},url:{url},userId:{userId}
scope: documents.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: Document data as JSON object. Include only attribute and value pairs to be updated.
x-example: '{}'
queries:
type: array
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.
x-example: null
items:
type: string
delete:
summary: Delete documents
operationId: databasesDeleteDocuments
tags:
- databases
description: Bulk delete documents using queries, if no queries are passed then all documents are deleted.
responses:
'200':
description: Documents List
content:
application/json:
schema:
$ref: '#/components/schemas/documentList'
x-appwrite:
method: deleteDocuments
group: documents
weight: 116
cookies: false
type: ''
deprecated: false
demo: databases/delete-documents.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete-documents.md
rate-limit: 60
rate-time: 60
rate-key: ip:{ip},method:{method},url:{url},userId:{userId}
scope: documents.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
queries:
type: array
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.
x-example: null
items:
type: string
/databases/{databaseId}/collections/{collectionId}/documents/{documentId}:
get:
summary: Get document
operationId: databasesGetDocument
tags:
- databases
description: Get a document by its unique ID. This endpoint response returns a JSON object with the document data.
responses:
'200':
description: Document
content:
application/json:
schema:
$ref: '#/components/schemas/document'
x-appwrite:
method: getDocument
group: documents
weight: 110
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: documentId
description: Document ID.
required: true
schema:
type: string
x-example: <DOCUMENT_ID>
in: path
- name: queries
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.
required: false
schema:
type: array
items:
type: string
default: []
in: query
patch:
summary: Update document
operationId: databasesUpdateDocument
tags:
- databases
description: Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.
responses:
'200':
description: Document
content:
application/json:
schema:
$ref: '#/components/schemas/document'
x-appwrite:
method: updateDocument
group: documents
weight: 112
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID.
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: documentId
description: Document ID.
required: true
schema:
type: string
x-example: <DOCUMENT_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: Document data as JSON object. Include only attribute and value pairs to be updated.
x-example: '{}'
permissions:
type: array
description: An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
delete:
summary: Delete document
operationId: databasesDeleteDocument
tags:
- databases
description: Delete a document by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteDocument
group: documents
weight: 115
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: documentId
description: Document ID.
required: true
schema:
type: string
x-example: <DOCUMENT_ID>
in: path
/databases/{databaseId}/collections/{collectionId}/indexes:
get:
summary: List indexes
operationId: databasesListIndexes
tags:
- databases
description: List indexes in the collection.
responses:
'200':
description: Indexes List
content:
application/json:
schema:
$ref: '#/components/schemas/indexList'
x-appwrite:
method: listIndexes
group: indexes
weight: 105
cookies: false
type: ''
deprecated: false
demo: databases/list-indexes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/list-indexes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: queries
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: key, type, status, attributes, error'
required: false
schema:
type: array
items:
type: string
default: []
in: query
post:
summary: Create index
operationId: databasesCreateIndex
tags:
- databases
description: |-
Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.
Attributes can be `key`, `fulltext`, and `unique`.
responses:
'202':
description: Index
content:
application/json:
schema:
$ref: '#/components/schemas/index'
x-appwrite:
method: createIndex
group: collections
weight: 104
cookies: false
type: ''
deprecated: false
demo: databases/create-index.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/create-index.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: Index Key.
x-example: null
type:
type: string
description: Index type.
x-example: key
enum:
- key
- fulltext
- unique
x-enum-name: IndexType
x-enum-keys: []
attributes:
type: array
description: Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.
x-example: null
items:
type: string
orders:
type: array
description: Array of index orders. Maximum of 100 orders are allowed.
x-example: null
items:
type: string
required:
- key
- type
- attributes
/databases/{databaseId}/collections/{collectionId}/indexes/{key}:
get:
summary: Get index
operationId: databasesGetIndex
tags:
- databases
description: Get index by ID.
responses:
'200':
description: Index
content:
application/json:
schema:
$ref: '#/components/schemas/index'
x-appwrite:
method: getIndex
group: indexes
weight: 106
cookies: false
type: ''
deprecated: false
demo: databases/get-index.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/get-index.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Index Key.
required: true
schema:
type: string
in: path
delete:
summary: Delete index
operationId: databasesDeleteIndex
tags:
- databases
description: Delete an index.
responses:
'204':
description: No content
x-appwrite:
method: deleteIndex
group: indexes
weight: 107
cookies: false
type: ''
deprecated: false
demo: databases/delete-index.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/databases/delete-index.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: collections.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: databaseId
description: Database ID.
required: true
schema:
type: string
x-example: <DATABASE_ID>
in: path
- name: collectionId
description: Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
required: true
schema:
type: string
x-example: <COLLECTION_ID>
in: path
- name: key
description: Index Key.
required: true
schema:
type: string
in: path
/functions:
get:
summary: List functions
operationId: functionsList
tags:
- functions
description: Get a list of all the project's functions. You can use the query params to filter your results.
responses:
'200':
description: Functions List
content:
application/json:
schema:
$ref: '#/components/schemas/functionList'
x-appwrite:
method: list
group: functions
weight: 291
cookies: false
type: ''
deprecated: false
demo: functions/list.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-functions.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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, enabled, runtime, deployment, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create function
operationId: functionsCreate
tags:
- functions
description: Create a new function. You can pass a list of [permissions](https://appwrite.io/docs/permissions) to allow different project users or team with access to execute the function using the client API.
responses:
'201':
description: Function
content:
application/json:
schema:
$ref: '#/components/schemas/function'
x-appwrite:
method: create
group: functions
weight: 290
cookies: false
type: ''
deprecated: false
demo: functions/create.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/create-function.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
functionId:
type: string
description: Function 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.
x-example: <FUNCTION_ID>
name:
type: string
description: 'Function name. Max length: 128 chars.'
x-example: <NAME>
runtime:
type: string
description: Execution runtime.
x-example: node-14.5
enum:
- node-14.5
- node-16.0
- node-18.0
- node-19.0
- node-20.0
- node-21.0
- node-22
- php-8.0
- php-8.1
- php-8.2
- php-8.3
- ruby-3.0
- ruby-3.1
- ruby-3.2
- ruby-3.3
- python-3.8
- python-3.9
- python-3.10
- python-3.11
- python-3.12
- python-ml-3.11
- deno-1.21
- deno-1.24
- deno-1.35
- deno-1.40
- deno-1.46
- deno-2.0
- dart-2.15
- dart-2.16
- dart-2.17
- dart-2.18
- dart-3.0
- dart-3.1
- dart-3.3
- dart-3.5
- dotnet-6.0
- dotnet-7.0
- dotnet-8.0
- java-8.0
- java-11.0
- java-17.0
- java-18.0
- java-21.0
- java-22
- swift-5.5
- swift-5.8
- swift-5.9
- swift-5.10
- kotlin-1.6
- kotlin-1.8
- kotlin-1.9
- kotlin-2.0
- cpp-17
- cpp-20
- bun-1.0
- bun-1.1
- go-1.23
- static-1
- flutter-3.24
x-enum-name: null
x-enum-keys: []
execute:
type: array
description: An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.
x-example: '["any"]'
items:
type: string
events:
type: array
description: Events list. Maximum of 100 events are allowed.
x-example: null
items:
type: string
schedule:
type: string
description: Schedule CRON syntax.
x-example: null
timeout:
type: integer
description: Function maximum execution time in seconds.
x-example: 1
enabled:
type: boolean
description: Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.
x-example: false
logging:
type: boolean
description: Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project.
x-example: false
entrypoint:
type: string
description: Entrypoint File. This path is relative to the "providerRootDirectory".
x-example: <ENTRYPOINT>
commands:
type: string
description: Build Commands.
x-example: <COMMANDS>
scopes:
type: array
description: List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.
x-example: null
items:
type: string
installationId:
type: string
description: Appwrite Installation ID for VCS (Version Control System) deployment.
x-example: <INSTALLATION_ID>
providerRepositoryId:
type: string
description: Repository ID of the repo linked to the function.
x-example: <PROVIDER_REPOSITORY_ID>
providerBranch:
type: string
description: Production branch for the repo linked to the function.
x-example: <PROVIDER_BRANCH>
providerSilentMode:
type: boolean
description: Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.
x-example: false
providerRootDirectory:
type: string
description: Path to function code in the linked repo.
x-example: <PROVIDER_ROOT_DIRECTORY>
templateRepository:
type: string
description: Repository name of the template.
x-example: <TEMPLATE_REPOSITORY>
templateOwner:
type: string
description: The name of the owner of the template.
x-example: <TEMPLATE_OWNER>
templateRootDirectory:
type: string
description: Path to function code in the template repo.
x-example: <TEMPLATE_ROOT_DIRECTORY>
templateVersion:
type: string
description: Version (tag) for the repo linked to the function template.
x-example: <TEMPLATE_VERSION>
specification:
type: string
description: Runtime specification for the function and builds.
x-example: null
required:
- functionId
- name
- runtime
/functions/runtimes:
get:
summary: List runtimes
operationId: functionsListRuntimes
tags:
- functions
description: Get a list of all runtimes that are currently active on your instance.
responses:
'200':
description: Runtimes List
content:
application/json:
schema:
$ref: '#/components/schemas/runtimeList'
x-appwrite:
method: listRuntimes
group: runtimes
weight: 292
cookies: false
type: ''
deprecated: false
demo: functions/list-runtimes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-runtimes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/functions/specifications:
get:
summary: List available function runtime specifications
operationId: functionsListSpecifications
tags:
- functions
description: |
List allowed function specifications for this instance.
responses:
'200':
description: Specifications List
content:
application/json:
schema:
$ref: '#/components/schemas/specificationList'
x-appwrite:
method: listSpecifications
group: runtimes
weight: 293
cookies: false
type: ''
deprecated: false
demo: functions/list-specifications.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-specifications.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/functions/{functionId}:
get:
summary: Get function
operationId: functionsGet
tags:
- functions
description: Get a function by its unique ID.
responses:
'200':
description: Function
content:
application/json:
schema:
$ref: '#/components/schemas/function'
x-appwrite:
method: get
group: functions
weight: 294
cookies: false
type: ''
deprecated: false
demo: functions/get.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/get-function.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
put:
summary: Update function
operationId: functionsUpdate
tags:
- functions
description: Update function by its unique ID.
responses:
'200':
description: Function
content:
application/json:
schema:
$ref: '#/components/schemas/function'
x-appwrite:
method: update
group: functions
weight: 297
cookies: false
type: ''
deprecated: false
demo: functions/update.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/update-function.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Function name. Max length: 128 chars.'
x-example: <NAME>
runtime:
type: string
description: Execution runtime.
x-example: node-14.5
enum:
- node-14.5
- node-16.0
- node-18.0
- node-19.0
- node-20.0
- node-21.0
- node-22
- php-8.0
- php-8.1
- php-8.2
- php-8.3
- ruby-3.0
- ruby-3.1
- ruby-3.2
- ruby-3.3
- python-3.8
- python-3.9
- python-3.10
- python-3.11
- python-3.12
- python-ml-3.11
- deno-1.21
- deno-1.24
- deno-1.35
- deno-1.40
- deno-1.46
- deno-2.0
- dart-2.15
- dart-2.16
- dart-2.17
- dart-2.18
- dart-3.0
- dart-3.1
- dart-3.3
- dart-3.5
- dotnet-6.0
- dotnet-7.0
- dotnet-8.0
- java-8.0
- java-11.0
- java-17.0
- java-18.0
- java-21.0
- java-22
- swift-5.5
- swift-5.8
- swift-5.9
- swift-5.10
- kotlin-1.6
- kotlin-1.8
- kotlin-1.9
- kotlin-2.0
- cpp-17
- cpp-20
- bun-1.0
- bun-1.1
- go-1.23
- static-1
- flutter-3.24
x-enum-name: null
x-enum-keys: []
execute:
type: array
description: An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.
x-example: '["any"]'
items:
type: string
events:
type: array
description: Events list. Maximum of 100 events are allowed.
x-example: null
items:
type: string
schedule:
type: string
description: Schedule CRON syntax.
x-example: null
timeout:
type: integer
description: Maximum execution time in seconds.
x-example: 1
enabled:
type: boolean
description: Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.
x-example: false
logging:
type: boolean
description: Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project.
x-example: false
entrypoint:
type: string
description: Entrypoint File. This path is relative to the "providerRootDirectory".
x-example: <ENTRYPOINT>
commands:
type: string
description: Build Commands.
x-example: <COMMANDS>
scopes:
type: array
description: List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.
x-example: null
items:
type: string
installationId:
type: string
description: Appwrite Installation ID for VCS (Version Controle System) deployment.
x-example: <INSTALLATION_ID>
providerRepositoryId:
type: string
description: Repository ID of the repo linked to the function
x-example: <PROVIDER_REPOSITORY_ID>
x-nullable: true
providerBranch:
type: string
description: Production branch for the repo linked to the function
x-example: <PROVIDER_BRANCH>
providerSilentMode:
type: boolean
description: Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.
x-example: false
providerRootDirectory:
type: string
description: Path to function code in the linked repo.
x-example: <PROVIDER_ROOT_DIRECTORY>
specification:
type: string
description: Runtime specification for the function and builds.
x-example: null
required:
- name
delete:
summary: Delete function
operationId: functionsDelete
tags:
- functions
description: Delete a function by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: delete
group: functions
weight: 300
cookies: false
type: ''
deprecated: false
demo: functions/delete.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/delete-function.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
/functions/{functionId}/deployments:
get:
summary: List deployments
operationId: functionsListDeployments
tags:
- functions
description: Get a list of all the project's code deployments. You can use the query params to filter your results.
responses:
'200':
description: Deployments List
content:
application/json:
schema:
$ref: '#/components/schemas/deploymentList'
x-appwrite:
method: listDeployments
group: deployments
weight: 302
cookies: false
type: ''
deprecated: false
demo: functions/list-deployments.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-deployments.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: queries
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: size, buildId, activate, entrypoint, commands, type, size'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create deployment
operationId: functionsCreateDeployment
tags:
- functions
description: |-
Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.
This endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https://appwrite.io/docs/functions).
Use the "command" param to set the entrypoint used to execute your code.
responses:
'202':
description: Deployment
content:
application/json:
schema:
$ref: '#/components/schemas/deployment'
x-appwrite:
method: createDeployment
group: deployments
weight: 301
cookies: false
type: upload
deprecated: false
demo: functions/create-deployment.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/create-deployment.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: true
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
entrypoint:
type: string
description: Entrypoint File.
x-example: <ENTRYPOINT>
commands:
type: string
description: Build Commands.
x-example: <COMMANDS>
code:
type: string
description: Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.
x-example: null
activate:
type: boolean
description: Automatically activate the deployment when it is finished building.
x-example: false
required:
- code
- activate
/functions/{functionId}/deployments/{deploymentId}:
get:
summary: Get deployment
operationId: functionsGetDeployment
tags:
- functions
description: Get a code deployment by its unique ID.
responses:
'200':
description: Deployment
content:
application/json:
schema:
$ref: '#/components/schemas/deployment'
x-appwrite:
method: getDeployment
group: deployments
weight: 303
cookies: false
type: ''
deprecated: false
demo: functions/get-deployment.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/get-deployment.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
patch:
summary: Update deployment
operationId: functionsUpdateDeployment
tags:
- functions
description: Update the function code deployment ID using the unique function ID. Use this endpoint to switch the code deployment that should be executed by the execution endpoint.
responses:
'200':
description: Function
content:
application/json:
schema:
$ref: '#/components/schemas/function'
x-appwrite:
method: updateDeployment
group: deployments
weight: 299
cookies: false
type: ''
deprecated: false
demo: functions/update-deployment.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/update-function-deployment.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
delete:
summary: Delete deployment
operationId: functionsDeleteDeployment
tags:
- functions
description: Delete a code deployment by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteDeployment
group: deployments
weight: 304
cookies: false
type: ''
deprecated: false
demo: functions/delete-deployment.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/delete-deployment.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
/functions/{functionId}/deployments/{deploymentId}/build:
post:
summary: Create deployment build
operationId: functionsCreateBuild
tags:
- functions
description: Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.
responses:
'204':
description: No content
x-appwrite:
method: createBuild
group: deployments
weight: 305
cookies: false
type: ''
deprecated: false
demo: functions/create-build.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/create-build.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
buildId:
type: string
description: Build unique ID.
x-example: <BUILD_ID>
patch:
summary: Cancel deployment
operationId: functionsUpdateDeploymentBuild
tags:
- functions
description: Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.
responses:
'200':
description: Build
content:
application/json:
schema:
$ref: '#/components/schemas/build'
x-appwrite:
method: updateDeploymentBuild
group: deployments
weight: 306
cookies: false
type: ''
deprecated: false
demo: functions/update-deployment-build.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/update-deployment-build.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
/functions/{functionId}/deployments/{deploymentId}/download:
get:
summary: Get deployment download
operationId: functionsGetDeploymentDownload
tags:
- functions
description: Get a Deployment's contents by its unique ID. This endpoint supports range requests for partial or streaming file download.
responses:
'200':
description: File
x-appwrite:
method: getDeploymentDownload
group: deployments
weight: 298
cookies: false
type: location
deprecated: false
demo: functions/get-deployment-download.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/get-deployment-download.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
JWT: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: deploymentId
description: Deployment ID.
required: true
schema:
type: string
x-example: <DEPLOYMENT_ID>
in: path
/functions/{functionId}/executions:
get:
summary: List executions
operationId: functionsListExecutions
tags:
- functions
description: Get a list of all the current user function execution logs. You can use the query params to filter your results.
responses:
'200':
description: Executions List
content:
application/json:
schema:
$ref: '#/components/schemas/executionList'
x-appwrite:
method: listExecutions
group: executions
weight: 308
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: queries
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, requestMethod, requestPath, deploymentId'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create execution
operationId: functionsCreateExecution
tags:
- functions
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.
responses:
'201':
description: Execution
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/execution'
x-appwrite:
method: createExecution
group: executions
weight: 307
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
body:
type: string
description: HTTP body of execution. Default value is empty string.
x-example: <BODY>
async:
type: boolean
description: Execute code in the background. Default value is false.
x-example: false
path:
type: string
description: HTTP path of execution. Path can include query params. Default value is /
x-example: <PATH>
method:
type: string
description: HTTP method of execution. Default value is GET.
x-example: GET
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
x-enum-name: ExecutionMethod
x-enum-keys: []
headers:
type: string
description: HTTP headers of execution. Defaults to empty.
x-example: null
scheduledAt:
type: string
description: Scheduled execution time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.
x-example: null
/functions/{functionId}/executions/{executionId}:
get:
summary: Get execution
operationId: functionsGetExecution
tags:
- functions
description: Get a function execution log by its unique ID.
responses:
'200':
description: Execution
content:
application/json:
schema:
$ref: '#/components/schemas/execution'
x-appwrite:
method: getExecution
group: executions
weight: 309
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: executionId
description: Execution ID.
required: true
schema:
type: string
x-example: <EXECUTION_ID>
in: path
delete:
summary: Delete execution
operationId: functionsDeleteExecution
tags:
- functions
description: |
Delete a function execution by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteExecution
group: executions
weight: 310
cookies: false
type: ''
deprecated: false
demo: functions/delete-execution.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/delete-execution.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: execution.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: executionId
description: Execution ID.
required: true
schema:
type: string
x-example: <EXECUTION_ID>
in: path
/functions/{functionId}/variables:
get:
summary: List variables
operationId: functionsListVariables
tags:
- functions
description: Get a list of all variables of a specific function.
responses:
'200':
description: Variables List
content:
application/json:
schema:
$ref: '#/components/schemas/variableList'
x-appwrite:
method: listVariables
group: variables
weight: 312
cookies: false
type: ''
deprecated: false
demo: functions/list-variables.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/list-variables.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function unique ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
post:
summary: Create variable
operationId: functionsCreateVariable
tags:
- functions
description: Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.
responses:
'201':
description: Variable
content:
application/json:
schema:
$ref: '#/components/schemas/variable'
x-appwrite:
method: createVariable
group: variables
weight: 311
cookies: false
type: ''
deprecated: false
demo: functions/create-variable.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/create-variable.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function unique ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: 'Variable key. Max length: 255 chars.'
x-example: <KEY>
value:
type: string
description: 'Variable value. Max length: 8192 chars.'
x-example: <VALUE>
required:
- key
- value
/functions/{functionId}/variables/{variableId}:
get:
summary: Get variable
operationId: functionsGetVariable
tags:
- functions
description: Get a variable by its unique ID.
responses:
'200':
description: Variable
content:
application/json:
schema:
$ref: '#/components/schemas/variable'
x-appwrite:
method: getVariable
group: variables
weight: 313
cookies: false
type: ''
deprecated: false
demo: functions/get-variable.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/get-variable.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function unique ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: variableId
description: Variable unique ID.
required: true
schema:
type: string
x-example: <VARIABLE_ID>
in: path
put:
summary: Update variable
operationId: functionsUpdateVariable
tags:
- functions
description: Update variable by its unique ID.
responses:
'200':
description: Variable
content:
application/json:
schema:
$ref: '#/components/schemas/variable'
x-appwrite:
method: updateVariable
group: variables
weight: 314
cookies: false
type: ''
deprecated: false
demo: functions/update-variable.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/update-variable.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function unique ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: variableId
description: Variable unique ID.
required: true
schema:
type: string
x-example: <VARIABLE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: 'Variable key. Max length: 255 chars.'
x-example: <KEY>
value:
type: string
description: 'Variable value. Max length: 8192 chars.'
x-example: <VALUE>
required:
- key
delete:
summary: Delete variable
operationId: functionsDeleteVariable
tags:
- functions
description: Delete a variable by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteVariable
group: variables
weight: 315
cookies: false
type: ''
deprecated: false
demo: functions/delete-variable.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/functions/delete-variable.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: functions.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: functionId
description: Function unique ID.
required: true
schema:
type: string
x-example: <FUNCTION_ID>
in: path
- name: variableId
description: Variable unique ID.
required: true
schema:
type: string
x-example: <VARIABLE_ID>
in: path
/graphql:
post:
summary: GraphQL endpoint
operationId: graphqlQuery
tags:
- graphql
description: Execute a GraphQL mutation.
responses:
'200':
description: Any
content:
application/json:
schema:
$ref: '#/components/schemas/any'
x-appwrite:
method: query
group: graphql
weight: 333
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
auth:
Project: []
Key: []
security:
- Project: []
Key: []
Session: []
JWT: []
/graphql/mutation:
post:
summary: GraphQL endpoint
operationId: graphqlMutation
tags:
- graphql
description: Execute a GraphQL mutation.
responses:
'200':
description: Any
content:
application/json:
schema:
$ref: '#/components/schemas/any'
x-appwrite:
method: mutation
group: graphql
weight: 332
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
auth:
Project: []
Key: []
security:
- Project: []
Key: []
Session: []
JWT: []
/health:
get:
summary: Get HTTP
operationId: healthGet
tags:
- health
description: Check the Appwrite HTTP server is up and responsive.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: get
group: health
weight: 128
cookies: false
type: ''
deprecated: false
demo: health/get.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/anti-virus:
get:
summary: Get antivirus
operationId: healthGetAntivirus
tags:
- health
description: Check the Appwrite Antivirus server is up and connection is successful.
responses:
'200':
description: Health Antivirus
content:
application/json:
schema:
$ref: '#/components/schemas/healthAntivirus'
x-appwrite:
method: getAntivirus
group: health
weight: 149
cookies: false
type: ''
deprecated: false
demo: health/get-antivirus.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-storage-anti-virus.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/cache:
get:
summary: Get cache
operationId: healthGetCache
tags:
- health
description: Check the Appwrite in-memory cache servers are up and connection is successful.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: getCache
group: health
weight: 131
cookies: false
type: ''
deprecated: false
demo: health/get-cache.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-cache.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/certificate:
get:
summary: Get the SSL certificate for a domain
operationId: healthGetCertificate
tags:
- health
description: Get the SSL certificate for a domain
responses:
'200':
description: Health Certificate
content:
application/json:
schema:
$ref: '#/components/schemas/healthCertificate'
x-appwrite:
method: getCertificate
group: health
weight: 136
cookies: false
type: ''
deprecated: false
demo: health/get-certificate.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-certificate.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: domain
description: string
required: false
schema:
type: string
in: query
/health/db:
get:
summary: Get DB
operationId: healthGetDB
tags:
- health
description: Check the Appwrite database servers are up and connection is successful.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: getDB
group: health
weight: 130
cookies: false
type: ''
deprecated: false
demo: health/get-d-b.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-db.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/pubsub:
get:
summary: Get pubsub
operationId: healthGetPubSub
tags:
- health
description: Check the Appwrite pub-sub servers are up and connection is successful.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: getPubSub
group: health
weight: 132
cookies: false
type: ''
deprecated: false
demo: health/get-pub-sub.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-pubsub.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/queue/builds:
get:
summary: Get builds queue
operationId: healthGetQueueBuilds
tags:
- health
description: Get the number of builds that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueBuilds
group: queue
weight: 138
cookies: false
type: ''
deprecated: false
demo: health/get-queue-builds.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-builds.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/certificates:
get:
summary: Get certificates queue
operationId: healthGetQueueCertificates
tags:
- health
description: Get the number of certificates that are waiting to be issued against [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueCertificates
group: queue
weight: 137
cookies: false
type: ''
deprecated: false
demo: health/get-queue-certificates.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-certificates.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/databases:
get:
summary: Get databases queue
operationId: healthGetQueueDatabases
tags:
- health
description: Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueDatabases
group: queue
weight: 139
cookies: false
type: ''
deprecated: false
demo: health/get-queue-databases.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-databases.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: name
description: Queue name for which to check the queue size
required: false
schema:
type: string
x-example: <NAME>
default: database_db_main
in: query
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/deletes:
get:
summary: Get deletes queue
operationId: healthGetQueueDeletes
tags:
- health
description: Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueDeletes
group: queue
weight: 140
cookies: false
type: ''
deprecated: false
demo: health/get-queue-deletes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-deletes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/failed/{name}:
get:
summary: Get number of failed queue jobs
operationId: healthGetFailedJobs
tags:
- health
description: |
Returns the amount of failed jobs in a given queue.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getFailedJobs
group: queue
weight: 150
cookies: false
type: ''
deprecated: false
demo: health/get-failed-jobs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-failed-queue-jobs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: name
description: The name of the queue
required: true
schema:
type: string
x-example: v1-database
enum:
- v1-database
- v1-deletes
- v1-audits
- v1-mails
- v1-functions
- v1-stats-resources
- v1-stats-usage
- v1-webhooks
- v1-certificates
- v1-builds
- v1-messaging
- v1-migrations
x-enum-name: null
x-enum-keys: []
in: path
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/functions:
get:
summary: Get functions queue
operationId: healthGetQueueFunctions
tags:
- health
description: Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueFunctions
group: queue
weight: 144
cookies: false
type: ''
deprecated: false
demo: health/get-queue-functions.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-functions.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/logs:
get:
summary: Get logs queue
operationId: healthGetQueueLogs
tags:
- health
description: Get the number of logs that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueLogs
group: queue
weight: 135
cookies: false
type: ''
deprecated: false
demo: health/get-queue-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/mails:
get:
summary: Get mails queue
operationId: healthGetQueueMails
tags:
- health
description: Get the number of mails that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueMails
group: queue
weight: 141
cookies: false
type: ''
deprecated: false
demo: health/get-queue-mails.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-mails.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/messaging:
get:
summary: Get messaging queue
operationId: healthGetQueueMessaging
tags:
- health
description: Get the number of messages that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueMessaging
group: queue
weight: 142
cookies: false
type: ''
deprecated: false
demo: health/get-queue-messaging.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-messaging.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/migrations:
get:
summary: Get migrations queue
operationId: healthGetQueueMigrations
tags:
- health
description: Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueMigrations
group: queue
weight: 143
cookies: false
type: ''
deprecated: false
demo: health/get-queue-migrations.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-migrations.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/stats-resources:
get:
summary: Get stats resources queue
operationId: healthGetQueueStatsResources
tags:
- health
description: Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueStatsResources
group: queue
weight: 145
cookies: false
type: ''
deprecated: false
demo: health/get-queue-stats-resources.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-stats-resources.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/stats-usage:
get:
summary: Get stats usage queue
operationId: healthGetQueueUsage
tags:
- health
description: Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueUsage
group: queue
weight: 146
cookies: false
type: ''
deprecated: false
demo: health/get-queue-usage.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-stats-usage.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/queue/webhooks:
get:
summary: Get webhooks queue
operationId: healthGetQueueWebhooks
tags:
- health
description: Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.
responses:
'200':
description: Health Queue
content:
application/json:
schema:
$ref: '#/components/schemas/healthQueue'
x-appwrite:
method: getQueueWebhooks
group: queue
weight: 134
cookies: false
type: ''
deprecated: false
demo: health/get-queue-webhooks.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-queue-webhooks.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: threshold
description: Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
required: false
schema:
type: integer
format: int32
default: 5000
in: query
/health/storage:
get:
summary: Get storage
operationId: healthGetStorage
tags:
- health
description: Check the Appwrite storage device is up and connection is successful.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: getStorage
group: storage
weight: 148
cookies: false
type: ''
deprecated: false
demo: health/get-storage.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-storage.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/storage/local:
get:
summary: Get local storage
operationId: healthGetStorageLocal
tags:
- health
description: Check the Appwrite local storage device is up and connection is successful.
responses:
'200':
description: Health Status
content:
application/json:
schema:
$ref: '#/components/schemas/healthStatus'
x-appwrite:
method: getStorageLocal
group: storage
weight: 147
cookies: false
type: ''
deprecated: false
demo: health/get-storage-local.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-storage-local.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/health/time:
get:
summary: Get time
operationId: healthGetTime
tags:
- health
description: Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.
responses:
'200':
description: Health Time
content:
application/json:
schema:
$ref: '#/components/schemas/healthTime'
x-appwrite:
method: getTime
group: health
weight: 133
cookies: false
type: ''
deprecated: false
demo: health/get-time.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/health/get-time.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: health.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
/locale:
get:
summary: Get user locale
operationId: localeGet
tags:
- locale
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
group: null
weight: 120
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/codes:
get:
summary: List locale codes
operationId: localeListCodes
tags:
- locale
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
group: null
weight: 121
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/continents:
get:
summary: List continents
operationId: localeListContinents
tags:
- locale
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
group: null
weight: 125
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/countries:
get:
summary: List countries
operationId: localeListCountries
tags:
- locale
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
group: null
weight: 122
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/countries/eu:
get:
summary: List EU countries
operationId: localeListCountriesEU
tags:
- locale
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
group: null
weight: 123
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/countries/phones:
get:
summary: List countries phone codes
operationId: localeListCountriesPhones
tags:
- locale
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
group: null
weight: 124
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/currencies:
get:
summary: List currencies
operationId: localeListCurrencies
tags:
- locale
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
group: null
weight: 126
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/locale/languages:
get:
summary: List languages
operationId: localeListLanguages
tags:
- locale
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
group: null
weight: 127
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
/messaging/messages:
get:
summary: List messages
operationId: messagingListMessages
tags:
- messaging
description: Get a list of all messages from the current Appwrite project.
responses:
'200':
description: Message list
content:
application/json:
schema:
$ref: '#/components/schemas/messageList'
x-appwrite:
method: listMessages
group: messages
weight: 386
cookies: false
type: ''
deprecated: false
demo: messaging/list-messages.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-messages.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
/messaging/messages/email:
post:
summary: Create email
operationId: messagingCreateEmail
tags:
- messaging
description: Create a new email message.
responses:
'201':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: createEmail
group: messages
weight: 383
cookies: false
type: ''
deprecated: false
demo: messaging/create-email.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-email.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
messageId:
type: string
description: Message 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.
x-example: <MESSAGE_ID>
subject:
type: string
description: Email Subject.
x-example: <SUBJECT>
content:
type: string
description: Email Content.
x-example: <CONTENT>
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
cc:
type: array
description: Array of target IDs to be added as CC.
x-example: null
items:
type: string
bcc:
type: array
description: Array of target IDs to be added as BCC.
x-example: null
items:
type: string
attachments:
type: array
description: Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.
x-example: null
items:
type: string
draft:
type: boolean
description: Is message a draft
x-example: false
html:
type: boolean
description: Is content of type HTML
x-example: false
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
required:
- messageId
- subject
- content
/messaging/messages/email/{messageId}:
patch:
summary: Update email
operationId: messagingUpdateEmail
tags:
- messaging
description: |
Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
responses:
'200':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: updateEmail
group: messages
weight: 390
cookies: false
type: ''
deprecated: false
demo: messaging/update-email.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-email.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
subject:
type: string
description: Email Subject.
x-example: <SUBJECT>
content:
type: string
description: Email Content.
x-example: <CONTENT>
draft:
type: boolean
description: Is message a draft
x-example: false
html:
type: boolean
description: Is content of type HTML
x-example: false
cc:
type: array
description: Array of target IDs to be added as CC.
x-example: null
items:
type: string
bcc:
type: array
description: Array of target IDs to be added as BCC.
x-example: null
items:
type: string
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
attachments:
type: array
description: Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.
x-example: null
items:
type: string
/messaging/messages/push:
post:
summary: Create push notification
operationId: messagingCreatePush
tags:
- messaging
description: Create a new push notification.
responses:
'201':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: createPush
group: messages
weight: 385
cookies: false
type: ''
deprecated: false
demo: messaging/create-push.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-push.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
messageId:
type: string
description: Message 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.
x-example: <MESSAGE_ID>
title:
type: string
description: Title for push notification.
x-example: <TITLE>
body:
type: string
description: Body for push notification.
x-example: <BODY>
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
data:
type: object
description: Additional key-value pair data for push notification.
x-example: '{}'
action:
type: string
description: Action for push notification.
x-example: <ACTION>
image:
type: string
description: Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.
x-example: '[ID1:ID2]'
icon:
type: string
description: Icon for push notification. Available only for Android and Web Platform.
x-example: <ICON>
sound:
type: string
description: Sound for push notification. Available only for Android and iOS Platform.
x-example: <SOUND>
color:
type: string
description: Color for push notification. Available only for Android Platform.
x-example: <COLOR>
tag:
type: string
description: Tag for push notification. Available only for Android Platform.
x-example: <TAG>
badge:
type: integer
description: Badge for push notification. Available only for iOS Platform.
x-example: null
draft:
type: boolean
description: Is message a draft
x-example: false
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
contentAvailable:
type: boolean
description: If set to true, the notification will be delivered in the background. Available only for iOS Platform.
x-example: false
critical:
type: boolean
description: If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.
x-example: false
priority:
type: string
description: Set the notification priority. "normal" will consider device state and may not deliver notifications immediately. "high" will always attempt to immediately deliver the notification.
x-example: normal
enum:
- normal
- high
x-enum-name: MessagePriority
x-enum-keys: []
required:
- messageId
/messaging/messages/push/{messageId}:
patch:
summary: Update push notification
operationId: messagingUpdatePush
tags:
- messaging
description: |
Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
responses:
'200':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: updatePush
group: messages
weight: 392
cookies: false
type: ''
deprecated: false
demo: messaging/update-push.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-push.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
title:
type: string
description: Title for push notification.
x-example: <TITLE>
body:
type: string
description: Body for push notification.
x-example: <BODY>
data:
type: object
description: Additional Data for push notification.
x-example: '{}'
action:
type: string
description: Action for push notification.
x-example: <ACTION>
image:
type: string
description: Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.
x-example: '[ID1:ID2]'
icon:
type: string
description: Icon for push notification. Available only for Android and Web platforms.
x-example: <ICON>
sound:
type: string
description: Sound for push notification. Available only for Android and iOS platforms.
x-example: <SOUND>
color:
type: string
description: Color for push notification. Available only for Android platforms.
x-example: <COLOR>
tag:
type: string
description: Tag for push notification. Available only for Android platforms.
x-example: <TAG>
badge:
type: integer
description: Badge for push notification. Available only for iOS platforms.
x-example: null
draft:
type: boolean
description: Is message a draft
x-example: false
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
contentAvailable:
type: boolean
description: If set to true, the notification will be delivered in the background. Available only for iOS Platform.
x-example: false
critical:
type: boolean
description: If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.
x-example: false
priority:
type: string
description: Set the notification priority. "normal" will consider device battery state and may send notifications later. "high" will always attempt to immediately deliver the notification.
x-example: normal
enum:
- normal
- high
x-enum-name: MessagePriority
x-enum-keys: []
/messaging/messages/sms:
post:
summary: Create SMS
operationId: messagingCreateSms
tags:
- messaging
description: Create a new SMS message.
responses:
'201':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: createSms
group: messages
weight: 384
cookies: false
type: ''
deprecated: false
demo: messaging/create-sms.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-sms.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
messageId:
type: string
description: Message 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.
x-example: <MESSAGE_ID>
content:
type: string
description: SMS Content.
x-example: <CONTENT>
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
draft:
type: boolean
description: Is message a draft
x-example: false
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
required:
- messageId
- content
/messaging/messages/sms/{messageId}:
patch:
summary: Update SMS
operationId: messagingUpdateSms
tags:
- messaging
description: |
Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
responses:
'200':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: updateSms
group: messages
weight: 391
cookies: false
type: ''
deprecated: false
demo: messaging/update-sms.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-sms.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
topics:
type: array
description: List of Topic IDs.
x-example: null
items:
type: string
users:
type: array
description: List of User IDs.
x-example: null
items:
type: string
targets:
type: array
description: List of Targets IDs.
x-example: null
items:
type: string
content:
type: string
description: Email Content.
x-example: <CONTENT>
draft:
type: boolean
description: Is message a draft
x-example: false
scheduledAt:
type: string
description: Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.
x-example: null
/messaging/messages/{messageId}:
get:
summary: Get message
operationId: messagingGetMessage
tags:
- messaging
description: |
Get a message by its unique ID.
responses:
'200':
description: Message
content:
application/json:
schema:
$ref: '#/components/schemas/message'
x-appwrite:
method: getMessage
group: messages
weight: 389
cookies: false
type: ''
deprecated: false
demo: messaging/get-message.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/get-message.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
delete:
summary: Delete message
operationId: messagingDelete
tags:
- messaging
description: Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.
responses:
'204':
description: No content
x-appwrite:
method: delete
group: messages
weight: 393
cookies: false
type: ''
deprecated: false
demo: messaging/delete.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/delete-message.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
/messaging/messages/{messageId}/logs:
get:
summary: List message logs
operationId: messagingListMessageLogs
tags:
- messaging
description: Get the message activity logs listed by its unique ID.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listMessageLogs
group: logs
weight: 387
cookies: false
type: ''
deprecated: false
demo: messaging/list-message-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-message-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/messaging/messages/{messageId}/targets:
get:
summary: List message targets
operationId: messagingListTargets
tags:
- messaging
description: Get a list of the targets associated with a message.
responses:
'200':
description: Target list
content:
application/json:
schema:
$ref: '#/components/schemas/targetList'
x-appwrite:
method: listTargets
group: messages
weight: 388
cookies: false
type: ''
deprecated: false
demo: messaging/list-targets.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-message-targets.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: messages.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: messageId
description: Message ID.
required: true
schema:
type: string
x-example: <MESSAGE_ID>
in: path
- name: queries
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, providerId, identifier, providerType'
required: false
schema:
type: array
items:
type: string
default: []
in: query
/messaging/providers:
get:
summary: List providers
operationId: messagingListProviders
tags:
- messaging
description: Get a list of all providers from the current Appwrite project.
responses:
'200':
description: Provider list
content:
application/json:
schema:
$ref: '#/components/schemas/providerList'
x-appwrite:
method: listProviders
group: providers
weight: 358
cookies: false
type: ''
deprecated: false
demo: messaging/list-providers.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-providers.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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, provider, type, enabled'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
/messaging/providers/apns:
post:
summary: Create APNS provider
operationId: messagingCreateApnsProvider
tags:
- messaging
description: Create a new Apple Push Notification service provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createApnsProvider
group: providers
weight: 357
cookies: false
type: ''
deprecated: false
demo: messaging/create-apns-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-apns-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
authKey:
type: string
description: APNS authentication key.
x-example: <AUTH_KEY>
authKeyId:
type: string
description: APNS authentication key ID.
x-example: <AUTH_KEY_ID>
teamId:
type: string
description: APNS team ID.
x-example: <TEAM_ID>
bundleId:
type: string
description: APNS bundle ID.
x-example: <BUNDLE_ID>
sandbox:
type: boolean
description: Use APNS sandbox environment.
x-example: false
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/apns/{providerId}:
patch:
summary: Update APNS provider
operationId: messagingUpdateApnsProvider
tags:
- messaging
description: Update a Apple Push Notification service provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateApnsProvider
group: providers
weight: 370
cookies: false
type: ''
deprecated: false
demo: messaging/update-apns-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-apns-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
authKey:
type: string
description: APNS authentication key.
x-example: <AUTH_KEY>
authKeyId:
type: string
description: APNS authentication key ID.
x-example: <AUTH_KEY_ID>
teamId:
type: string
description: APNS team ID.
x-example: <TEAM_ID>
bundleId:
type: string
description: APNS bundle ID.
x-example: <BUNDLE_ID>
sandbox:
type: boolean
description: Use APNS sandbox environment.
x-example: false
/messaging/providers/fcm:
post:
summary: Create FCM provider
operationId: messagingCreateFcmProvider
tags:
- messaging
description: Create a new Firebase Cloud Messaging provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createFcmProvider
group: providers
weight: 356
cookies: false
type: ''
deprecated: false
demo: messaging/create-fcm-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-fcm-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
serviceAccountJSON:
type: object
description: FCM service account JSON.
x-example: '{}'
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/fcm/{providerId}:
patch:
summary: Update FCM provider
operationId: messagingUpdateFcmProvider
tags:
- messaging
description: Update a Firebase Cloud Messaging provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateFcmProvider
group: providers
weight: 369
cookies: false
type: ''
deprecated: false
demo: messaging/update-fcm-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-fcm-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
serviceAccountJSON:
type: object
description: FCM service account JSON.
x-example: '{}'
/messaging/providers/mailgun:
post:
summary: Create Mailgun provider
operationId: messagingCreateMailgunProvider
tags:
- messaging
description: Create a new Mailgun provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createMailgunProvider
group: providers
weight: 348
cookies: false
type: ''
deprecated: false
demo: messaging/create-mailgun-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-mailgun-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
apiKey:
type: string
description: Mailgun API Key.
x-example: <API_KEY>
domain:
type: string
description: Mailgun Domain.
x-example: <DOMAIN>
isEuRegion:
type: boolean
description: Set as EU region.
x-example: false
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.
x-example: [email protected]
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/mailgun/{providerId}:
patch:
summary: Update Mailgun provider
operationId: messagingUpdateMailgunProvider
tags:
- messaging
description: Update a Mailgun provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateMailgunProvider
group: providers
weight: 361
cookies: false
type: ''
deprecated: false
demo: messaging/update-mailgun-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-mailgun-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
apiKey:
type: string
description: Mailgun API Key.
x-example: <API_KEY>
domain:
type: string
description: Mailgun Domain.
x-example: <DOMAIN>
isEuRegion:
type: boolean
description: Set as EU region.
x-example: false
enabled:
type: boolean
description: Set as enabled.
x-example: false
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the reply to field for the mail. Default value is sender name.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the reply to field for the mail. Default value is sender email.
x-example: <REPLY_TO_EMAIL>
/messaging/providers/msg91:
post:
summary: Create Msg91 provider
operationId: messagingCreateMsg91Provider
tags:
- messaging
description: Create a new MSG91 provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createMsg91Provider
group: providers
weight: 351
cookies: false
type: ''
deprecated: false
demo: messaging/create-msg91provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-msg91-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
templateId:
type: string
description: Msg91 template ID
x-example: <TEMPLATE_ID>
senderId:
type: string
description: Msg91 sender ID.
x-example: <SENDER_ID>
authKey:
type: string
description: Msg91 auth key.
x-example: <AUTH_KEY>
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/msg91/{providerId}:
patch:
summary: Update Msg91 provider
operationId: messagingUpdateMsg91Provider
tags:
- messaging
description: Update a MSG91 provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateMsg91Provider
group: providers
weight: 364
cookies: false
type: ''
deprecated: false
demo: messaging/update-msg91provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-msg91-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
templateId:
type: string
description: Msg91 template ID.
x-example: <TEMPLATE_ID>
senderId:
type: string
description: Msg91 sender ID.
x-example: <SENDER_ID>
authKey:
type: string
description: Msg91 auth key.
x-example: <AUTH_KEY>
/messaging/providers/sendgrid:
post:
summary: Create Sendgrid provider
operationId: messagingCreateSendgridProvider
tags:
- messaging
description: Create a new Sendgrid provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createSendgridProvider
group: providers
weight: 349
cookies: false
type: ''
deprecated: false
demo: messaging/create-sendgrid-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-sendgrid-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
apiKey:
type: string
description: Sendgrid API key.
x-example: <API_KEY>
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the reply to field for the mail. Default value is sender name.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the reply to field for the mail. Default value is sender email.
x-example: [email protected]
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/sendgrid/{providerId}:
patch:
summary: Update Sendgrid provider
operationId: messagingUpdateSendgridProvider
tags:
- messaging
description: Update a Sendgrid provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateSendgridProvider
group: providers
weight: 362
cookies: false
type: ''
deprecated: false
demo: messaging/update-sendgrid-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-sendgrid-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
apiKey:
type: string
description: Sendgrid API key.
x-example: <API_KEY>
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the Reply To field for the mail. Default value is Sender Name.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the Reply To field for the mail. Default value is Sender Email.
x-example: <REPLY_TO_EMAIL>
/messaging/providers/smtp:
post:
summary: Create SMTP provider
operationId: messagingCreateSmtpProvider
tags:
- messaging
description: Create a new SMTP provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createSmtpProvider
group: providers
weight: 350
cookies: false
type: ''
deprecated: false
demo: messaging/create-smtp-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-smtp-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
host:
type: string
description: 'SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls://smtp1.example.com:587;ssl://smtp2.example.com:465"`. Hosts will be tried in order.'
x-example: <HOST>
port:
type: integer
description: The default SMTP server port.
x-example: 1
username:
type: string
description: Authentication username.
x-example: <USERNAME>
password:
type: string
description: Authentication password.
x-example: <PASSWORD>
encryption:
type: string
description: Encryption type. Can be omitted, 'ssl', or 'tls'
x-example: none
enum:
- none
- ssl
- tls
x-enum-name: SmtpEncryption
x-enum-keys: []
autoTLS:
type: boolean
description: Enable SMTP AutoTLS feature.
x-example: false
mailer:
type: string
description: The value to use for the X-Mailer header.
x-example: <MAILER>
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the reply to field for the mail. Default value is sender name.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the reply to field for the mail. Default value is sender email.
x-example: [email protected]
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
- host
/messaging/providers/smtp/{providerId}:
patch:
summary: Update SMTP provider
operationId: messagingUpdateSmtpProvider
tags:
- messaging
description: Update a SMTP provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateSmtpProvider
group: providers
weight: 363
cookies: false
type: ''
deprecated: false
demo: messaging/update-smtp-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-smtp-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
host:
type: string
description: 'SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls://smtp1.example.com:587;ssl://smtp2.example.com:465"`. Hosts will be tried in order.'
x-example: <HOST>
port:
type: integer
description: SMTP port.
x-example: 1
username:
type: string
description: Authentication username.
x-example: <USERNAME>
password:
type: string
description: Authentication password.
x-example: <PASSWORD>
encryption:
type: string
description: Encryption type. Can be 'ssl' or 'tls'
x-example: none
enum:
- none
- ssl
- tls
x-enum-name: SmtpEncryption
x-enum-keys: []
autoTLS:
type: boolean
description: Enable SMTP AutoTLS feature.
x-example: false
mailer:
type: string
description: The value to use for the X-Mailer header.
x-example: <MAILER>
fromName:
type: string
description: Sender Name.
x-example: <FROM_NAME>
fromEmail:
type: string
description: Sender email address.
x-example: [email protected]
replyToName:
type: string
description: Name set in the Reply To field for the mail. Default value is Sender Name.
x-example: <REPLY_TO_NAME>
replyToEmail:
type: string
description: Email set in the Reply To field for the mail. Default value is Sender Email.
x-example: <REPLY_TO_EMAIL>
enabled:
type: boolean
description: Set as enabled.
x-example: false
/messaging/providers/telesign:
post:
summary: Create Telesign provider
operationId: messagingCreateTelesignProvider
tags:
- messaging
description: Create a new Telesign provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createTelesignProvider
group: providers
weight: 352
cookies: false
type: ''
deprecated: false
demo: messaging/create-telesign-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-telesign-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
from:
type: string
description: Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
customerId:
type: string
description: Telesign customer ID.
x-example: <CUSTOMER_ID>
apiKey:
type: string
description: Telesign API key.
x-example: <API_KEY>
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/telesign/{providerId}:
patch:
summary: Update Telesign provider
operationId: messagingUpdateTelesignProvider
tags:
- messaging
description: Update a Telesign provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateTelesignProvider
group: providers
weight: 365
cookies: false
type: ''
deprecated: false
demo: messaging/update-telesign-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-telesign-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
customerId:
type: string
description: Telesign customer ID.
x-example: <CUSTOMER_ID>
apiKey:
type: string
description: Telesign API key.
x-example: <API_KEY>
from:
type: string
description: Sender number.
x-example: <FROM>
/messaging/providers/textmagic:
post:
summary: Create Textmagic provider
operationId: messagingCreateTextmagicProvider
tags:
- messaging
description: Create a new Textmagic provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createTextmagicProvider
group: providers
weight: 353
cookies: false
type: ''
deprecated: false
demo: messaging/create-textmagic-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-textmagic-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
from:
type: string
description: Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
username:
type: string
description: Textmagic username.
x-example: <USERNAME>
apiKey:
type: string
description: Textmagic apiKey.
x-example: <API_KEY>
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/textmagic/{providerId}:
patch:
summary: Update Textmagic provider
operationId: messagingUpdateTextmagicProvider
tags:
- messaging
description: Update a Textmagic provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateTextmagicProvider
group: providers
weight: 366
cookies: false
type: ''
deprecated: false
demo: messaging/update-textmagic-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-textmagic-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
username:
type: string
description: Textmagic username.
x-example: <USERNAME>
apiKey:
type: string
description: Textmagic apiKey.
x-example: <API_KEY>
from:
type: string
description: Sender number.
x-example: <FROM>
/messaging/providers/twilio:
post:
summary: Create Twilio provider
operationId: messagingCreateTwilioProvider
tags:
- messaging
description: Create a new Twilio provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createTwilioProvider
group: providers
weight: 354
cookies: false
type: ''
deprecated: false
demo: messaging/create-twilio-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-twilio-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
from:
type: string
description: Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
accountSid:
type: string
description: Twilio account secret ID.
x-example: <ACCOUNT_SID>
authToken:
type: string
description: Twilio authentication token.
x-example: <AUTH_TOKEN>
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/twilio/{providerId}:
patch:
summary: Update Twilio provider
operationId: messagingUpdateTwilioProvider
tags:
- messaging
description: Update a Twilio provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateTwilioProvider
group: providers
weight: 367
cookies: false
type: ''
deprecated: false
demo: messaging/update-twilio-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-twilio-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
accountSid:
type: string
description: Twilio account secret ID.
x-example: <ACCOUNT_SID>
authToken:
type: string
description: Twilio authentication token.
x-example: <AUTH_TOKEN>
from:
type: string
description: Sender number.
x-example: <FROM>
/messaging/providers/vonage:
post:
summary: Create Vonage provider
operationId: messagingCreateVonageProvider
tags:
- messaging
description: Create a new Vonage provider.
responses:
'201':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: createVonageProvider
group: providers
weight: 355
cookies: false
type: ''
deprecated: false
demo: messaging/create-vonage-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-vonage-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
providerId:
type: string
description: Provider 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.
x-example: <PROVIDER_ID>
name:
type: string
description: Provider name.
x-example: <NAME>
from:
type: string
description: Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
apiKey:
type: string
description: Vonage API key.
x-example: <API_KEY>
apiSecret:
type: string
description: Vonage API secret.
x-example: <API_SECRET>
enabled:
type: boolean
description: Set as enabled.
x-example: false
required:
- providerId
- name
/messaging/providers/vonage/{providerId}:
patch:
summary: Update Vonage provider
operationId: messagingUpdateVonageProvider
tags:
- messaging
description: Update a Vonage provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: updateVonageProvider
group: providers
weight: 368
cookies: false
type: ''
deprecated: false
demo: messaging/update-vonage-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-vonage-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Provider name.
x-example: <NAME>
enabled:
type: boolean
description: Set as enabled.
x-example: false
apiKey:
type: string
description: Vonage API key.
x-example: <API_KEY>
apiSecret:
type: string
description: Vonage API secret.
x-example: <API_SECRET>
from:
type: string
description: Sender number.
x-example: <FROM>
/messaging/providers/{providerId}:
get:
summary: Get provider
operationId: messagingGetProvider
tags:
- messaging
description: |
Get a provider by its unique ID.
responses:
'200':
description: Provider
content:
application/json:
schema:
$ref: '#/components/schemas/provider'
x-appwrite:
method: getProvider
group: providers
weight: 360
cookies: false
type: ''
deprecated: false
demo: messaging/get-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/get-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
delete:
summary: Delete provider
operationId: messagingDeleteProvider
tags:
- messaging
description: Delete a provider by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteProvider
group: providers
weight: 371
cookies: false
type: ''
deprecated: false
demo: messaging/delete-provider.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/delete-provider.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
/messaging/providers/{providerId}/logs:
get:
summary: List provider logs
operationId: messagingListProviderLogs
tags:
- messaging
description: Get the provider activity logs listed by its unique ID.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listProviderLogs
group: providers
weight: 359
cookies: false
type: ''
deprecated: false
demo: messaging/list-provider-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-provider-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: providers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: providerId
description: Provider ID.
required: true
schema:
type: string
x-example: <PROVIDER_ID>
in: path
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/messaging/subscribers/{subscriberId}/logs:
get:
summary: List subscriber logs
operationId: messagingListSubscriberLogs
tags:
- messaging
description: Get the subscriber activity logs listed by its unique ID.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listSubscriberLogs
group: subscribers
weight: 380
cookies: false
type: ''
deprecated: false
demo: messaging/list-subscriber-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-subscriber-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: subscribers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: subscriberId
description: Subscriber ID.
required: true
schema:
type: string
x-example: <SUBSCRIBER_ID>
in: path
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/messaging/topics:
get:
summary: List topics
operationId: messagingListTopics
tags:
- messaging
description: Get a list of all topics from the current Appwrite project.
responses:
'200':
description: Topic list
content:
application/json:
schema:
$ref: '#/components/schemas/topicList'
x-appwrite:
method: listTopics
group: topics
weight: 373
cookies: false
type: ''
deprecated: false
demo: messaging/list-topics.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-topics.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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, description, emailTotal, smsTotal, pushTotal'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create topic
operationId: messagingCreateTopic
tags:
- messaging
description: Create a new topic.
responses:
'201':
description: Topic
content:
application/json:
schema:
$ref: '#/components/schemas/topic'
x-appwrite:
method: createTopic
group: topics
weight: 372
cookies: false
type: ''
deprecated: false
demo: messaging/create-topic.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/create-topic.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
topicId:
type: string
description: Topic ID. Choose a custom Topic ID or a new Topic ID.
x-example: <TOPIC_ID>
name:
type: string
description: Topic Name.
x-example: <NAME>
subscribe:
type: array
description: An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.
x-example: '["any"]'
items:
type: string
required:
- topicId
- name
/messaging/topics/{topicId}:
get:
summary: Get topic
operationId: messagingGetTopic
tags:
- messaging
description: |
Get a topic by its unique ID.
responses:
'200':
description: Topic
content:
application/json:
schema:
$ref: '#/components/schemas/topic'
x-appwrite:
method: getTopic
group: topics
weight: 375
cookies: false
type: ''
deprecated: false
demo: messaging/get-topic.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/get-topic.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
patch:
summary: Update topic
operationId: messagingUpdateTopic
tags:
- messaging
description: |
Update a topic by its unique ID.
responses:
'200':
description: Topic
content:
application/json:
schema:
$ref: '#/components/schemas/topic'
x-appwrite:
method: updateTopic
group: topics
weight: 376
cookies: false
type: ''
deprecated: false
demo: messaging/update-topic.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/update-topic.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Topic Name.
x-example: <NAME>
subscribe:
type: array
description: An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.
x-example: '["any"]'
items:
type: string
delete:
summary: Delete topic
operationId: messagingDeleteTopic
tags:
- messaging
description: Delete a topic by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteTopic
group: topics
weight: 377
cookies: false
type: ''
deprecated: false
demo: messaging/delete-topic.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/delete-topic.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.write
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
/messaging/topics/{topicId}/logs:
get:
summary: List topic logs
operationId: messagingListTopicLogs
tags:
- messaging
description: Get the topic activity logs listed by its unique ID.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listTopicLogs
group: topics
weight: 374
cookies: false
type: ''
deprecated: false
demo: messaging/list-topic-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-topic-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: topics.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/messaging/topics/{topicId}/subscribers:
get:
summary: List subscribers
operationId: messagingListSubscribers
tags:
- messaging
description: Get a list of all subscribers from the current Appwrite project.
responses:
'200':
description: Subscriber list
content:
application/json:
schema:
$ref: '#/components/schemas/subscriberList'
x-appwrite:
method: listSubscribers
group: subscribers
weight: 379
cookies: false
type: ''
deprecated: false
demo: messaging/list-subscribers.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/list-subscribers.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: subscribers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID. The topic ID subscribed to.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
- name: queries
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, provider, type, enabled'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create subscriber
operationId: messagingCreateSubscriber
tags:
- messaging
description: Create a new subscriber.
responses:
'201':
description: Subscriber
content:
application/json:
schema:
$ref: '#/components/schemas/subscriber'
x-appwrite:
method: createSubscriber
group: subscribers
weight: 378
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
auth:
Project: []
JWT: []
security:
- Project: []
JWT: []
Session: []
Key: []
parameters:
- name: topicId
description: Topic ID. The topic ID to subscribe to.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
subscriberId:
type: string
description: Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.
x-example: <SUBSCRIBER_ID>
targetId:
type: string
description: Target ID. The target ID to link to the specified Topic ID.
x-example: <TARGET_ID>
required:
- subscriberId
- targetId
/messaging/topics/{topicId}/subscribers/{subscriberId}:
get:
summary: Get subscriber
operationId: messagingGetSubscriber
tags:
- messaging
description: |
Get a subscriber by its unique ID.
responses:
'200':
description: Subscriber
content:
application/json:
schema:
$ref: '#/components/schemas/subscriber'
x-appwrite:
method: getSubscriber
group: subscribers
weight: 381
cookies: false
type: ''
deprecated: false
demo: messaging/get-subscriber.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/messaging/get-subscriber.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: subscribers.read
platforms:
- console
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: topicId
description: Topic ID. The topic ID subscribed to.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
- name: subscriberId
description: Subscriber ID.
required: true
schema:
type: string
x-example: <SUBSCRIBER_ID>
in: path
delete:
summary: Delete subscriber
operationId: messagingDeleteSubscriber
tags:
- messaging
description: Delete a subscriber by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteSubscriber
group: subscribers
weight: 382
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
auth:
Project: []
JWT: []
security:
- Project: []
JWT: []
Session: []
Key: []
parameters:
- name: topicId
description: Topic ID. The topic ID subscribed to.
required: true
schema:
type: string
x-example: <TOPIC_ID>
in: path
- name: subscriberId
description: Subscriber ID.
required: true
schema:
type: string
x-example: <SUBSCRIBER_ID>
in: path
/storage/buckets:
get:
summary: List buckets
operationId: storageListBuckets
tags:
- storage
description: Get a list of all the storage buckets. You can use the query params to filter your results.
responses:
'200':
description: Buckets List
content:
application/json:
schema:
$ref: '#/components/schemas/bucketList'
x-appwrite:
method: listBuckets
group: buckets
weight: 205
cookies: false
type: ''
deprecated: false
demo: storage/list-buckets.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/storage/list-buckets.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: buckets.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create bucket
operationId: storageCreateBucket
tags:
- storage
description: Create a new storage bucket.
responses:
'201':
description: Bucket
content:
application/json:
schema:
$ref: '#/components/schemas/bucket'
x-appwrite:
method: createBucket
group: buckets
weight: 204
cookies: false
type: ''
deprecated: false
demo: storage/create-bucket.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/storage/create-bucket.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: buckets.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
bucketId:
type: string
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.
x-example: <BUCKET_ID>
name:
type: string
description: Bucket name
x-example: <NAME>
permissions:
type: array
description: An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
fileSecurity:
type: boolean
description: Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: false
enabled:
type: boolean
description: Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.
x-example: false
maximumFileSize:
type: integer
description: Maximum file size allowed in bytes. Maximum allowed value is 30MB.
x-example: 1
allowedFileExtensions:
type: array
description: Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.
x-example: null
items:
type: string
compression:
type: string
description: Compression algorithm choosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled
x-example: none
enum:
- none
- gzip
- zstd
x-enum-name: null
x-enum-keys: []
encryption:
type: boolean
description: Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled
x-example: false
antivirus:
type: boolean
description: Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled
x-example: false
required:
- bucketId
- name
/storage/buckets/{bucketId}:
get:
summary: Get bucket
operationId: storageGetBucket
tags:
- storage
description: Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.
responses:
'200':
description: Bucket
content:
application/json:
schema:
$ref: '#/components/schemas/bucket'
x-appwrite:
method: getBucket
group: buckets
weight: 206
cookies: false
type: ''
deprecated: false
demo: storage/get-bucket.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/storage/get-bucket.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: buckets.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: bucketId
description: Bucket unique ID.
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
put:
summary: Update bucket
operationId: storageUpdateBucket
tags:
- storage
description: Update a storage bucket by its unique ID.
responses:
'200':
description: Bucket
content:
application/json:
schema:
$ref: '#/components/schemas/bucket'
x-appwrite:
method: updateBucket
group: buckets
weight: 207
cookies: false
type: ''
deprecated: false
demo: storage/update-bucket.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/storage/update-bucket.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: buckets.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: bucketId
description: Bucket unique ID.
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Bucket name
x-example: <NAME>
permissions:
type: array
description: An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
fileSecurity:
type: boolean
description: Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: false
enabled:
type: boolean
description: Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.
x-example: false
maximumFileSize:
type: integer
description: Maximum file size allowed in bytes. Maximum allowed value is 30MB.
x-example: 1
allowedFileExtensions:
type: array
description: Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.
x-example: null
items:
type: string
compression:
type: string
description: Compression algorithm choosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled
x-example: none
enum:
- none
- gzip
- zstd
x-enum-name: null
x-enum-keys: []
encryption:
type: boolean
description: Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled
x-example: false
antivirus:
type: boolean
description: Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled
x-example: false
required:
- name
delete:
summary: Delete bucket
operationId: storageDeleteBucket
tags:
- storage
description: Delete a storage bucket by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteBucket
group: buckets
weight: 208
cookies: false
type: ''
deprecated: false
demo: storage/delete-bucket.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/storage/delete-bucket.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: buckets.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: bucketId
description: Bucket unique ID.
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
/storage/buckets/{bucketId}/files:
get:
summary: List files
operationId: storageListFiles
tags:
- storage
description: Get a list of all the user files. You can use the query params to filter your results.
responses:
'200':
description: Files List
content:
application/json:
schema:
$ref: '#/components/schemas/fileList'
x-appwrite:
method: listFiles
group: files
weight: 210
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create file
operationId: storageCreateFile
tags:
- storage
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.
responses:
'201':
description: File
content:
application/json:
schema:
$ref: '#/components/schemas/file'
x-appwrite:
method: createFile
group: files
weight: 209
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},chunkId:{chunkId}
scope: files.write
platforms:
- client
- server
- server
packaging: false
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileId:
type: string
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.
x-example: <FILE_ID>
x-upload-id: true
file:
type: string
description: Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/products/storage/upload-download#input-file).
x-example: null
permissions:
type: array
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).
x-example: '["read("any")"]'
items:
type: string
required:
- fileId
- file
/storage/buckets/{bucketId}/files/{fileId}:
get:
summary: Get file
operationId: storageGetFile
tags:
- storage
description: Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.
responses:
'200':
description: File
content:
application/json:
schema:
$ref: '#/components/schemas/file'
x-appwrite:
method: getFile
group: files
weight: 211
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File ID.
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
put:
summary: Update file
operationId: storageUpdateFile
tags:
- storage
description: Update a file by its unique ID. Only users with write permissions have access to update this resource.
responses:
'200':
description: File
content:
application/json:
schema:
$ref: '#/components/schemas/file'
x-appwrite:
method: updateFile
group: files
weight: 216
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File unique ID.
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the file
x-example: <NAME>
permissions:
type: array
description: An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: '["read("any")"]'
items:
type: string
delete:
summary: Delete file
operationId: storageDeleteFile
tags:
- storage
description: Delete a file by its unique ID. Only users with write permissions have access to delete this resource.
responses:
'204':
description: No content
x-appwrite:
method: deleteFile
group: files
weight: 217
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File ID.
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
/storage/buckets/{bucketId}/files/{fileId}/download:
get:
summary: Get file for download
operationId: storageGetFileDownload
tags:
- storage
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.'
responses:
'200':
description: File
x-appwrite:
method: getFileDownload
group: files
weight: 213
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
description: Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File ID.
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
/storage/buckets/{bucketId}/files/{fileId}/preview:
get:
summary: Get file preview
operationId: storageGetFilePreview
tags:
- storage
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.
responses:
'200':
description: Image
x-appwrite:
method: getFilePreview
group: files
weight: 212
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File ID
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
- name: width
description: Resize preview image width, Pass an integer between 0 to 4000.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 0
in: query
- name: height
description: Resize preview image height, Pass an integer between 0 to 4000.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 0
in: query
- name: gravity
description: Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right
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
- name: quality
description: Preview image quality. Pass an integer between 0 to 100. Defaults to 100.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 100
in: query
- name: borderWidth
description: Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 0
in: query
- name: borderColor
description: 'Preview image border color. Use a valid HEX color, no # is needed for prefix.'
required: false
schema:
type: string
default: ''
in: query
- name: borderRadius
description: Preview image border radius in pixels. Pass an integer between 0 to 4000.
required: false
schema:
type: integer
format: int32
x-example: 0
default: 0
in: query
- name: opacity
description: Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.
required: false
schema:
type: number
format: float
x-example: 0
default: 1
in: query
- name: rotation
description: Preview image rotation in degrees. Pass an integer between -360 and 360.
required: false
schema:
type: integer
format: int32
x-example: -360
default: 0
in: query
- name: background
description: 'Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.'
required: false
schema:
type: string
default: ''
in: query
- name: output
description: Output format type (jpeg, jpg, png, gif and webp).
required: false
schema:
type: string
x-example: jpg
enum:
- jpg
- jpeg
- gif
- png
- webp
- heic
- avif
x-enum-name: ImageFormat
x-enum-keys: []
default: ''
in: query
/storage/buckets/{bucketId}/files/{fileId}/view:
get:
summary: Get file for view
operationId: storageGetFileView
tags:
- storage
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.'
responses:
'200':
description: File
x-appwrite:
method: getFileView
group: files
weight: 214
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: bucketId
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).
required: true
schema:
type: string
x-example: <BUCKET_ID>
in: path
- name: fileId
description: File ID.
required: true
schema:
type: string
x-example: <FILE_ID>
in: path
/teams:
get:
summary: List teams
operationId: teamsList
tags:
- teams
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.
responses:
'200':
description: Teams List
content:
application/json:
schema:
$ref: '#/components/schemas/teamList'
x-appwrite:
method: list
group: teams
weight: 221
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create team
operationId: teamsCreate
tags:
- teams
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.
responses:
'201':
description: Team
content:
application/json:
schema:
$ref: '#/components/schemas/team'
x-appwrite:
method: create
group: teams
weight: 220
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
requestBody:
content:
application/json:
schema:
type: object
properties:
teamId:
type: string
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.
x-example: <TEAM_ID>
name:
type: string
description: 'Team name. Max length: 128 chars.'
x-example: <NAME>
roles:
type: array
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.
x-example: null
items:
type: string
required:
- teamId
- name
/teams/{teamId}:
get:
summary: Get team
operationId: teamsGet
tags:
- teams
description: Get a team by its ID. All team members have read access for this resource.
responses:
'200':
description: Team
content:
application/json:
schema:
$ref: '#/components/schemas/team'
x-appwrite:
method: get
group: teams
weight: 222
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
put:
summary: Update name
operationId: teamsUpdateName
tags:
- teams
description: Update the team's name by its unique ID.
responses:
'200':
description: Team
content:
application/json:
schema:
$ref: '#/components/schemas/team'
x-appwrite:
method: updateName
group: teams
weight: 224
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'New team name. Max length: 128 chars.'
x-example: <NAME>
required:
- name
delete:
summary: Delete team
operationId: teamsDelete
tags:
- teams
description: Delete a team using its ID. Only team members with the owner role can delete the team.
responses:
'204':
description: No content
x-appwrite:
method: delete
group: teams
weight: 226
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
/teams/{teamId}/memberships:
get:
summary: List team memberships
operationId: teamsListMemberships
tags:
- teams
description: Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.
responses:
'200':
description: Memberships List
content:
application/json:
schema:
$ref: '#/components/schemas/membershipList'
x-appwrite:
method: listMemberships
group: memberships
weight: 228
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create team membership
operationId: teamsCreateMembership
tags:
- teams
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.
responses:
'201':
description: Membership
content:
application/json:
schema:
$ref: '#/components/schemas/membership'
x-appwrite:
method: createMembership
group: memberships
weight: 227
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: Email of the new team member.
x-example: [email protected]
userId:
type: string
description: ID of the user to be added to a team.
x-example: <USER_ID>
phone:
type: string
description: Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
roles:
type: array
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.
x-example: null
items:
type: string
url:
type: string
description: URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.
x-example: https://example.com
name:
type: string
description: 'Name of the new team member. Max length: 128 chars.'
x-example: <NAME>
required:
- roles
/teams/{teamId}/memberships/{membershipId}:
get:
summary: Get team membership
operationId: teamsGetMembership
tags:
- teams
description: Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.
responses:
'200':
description: Membership
content:
application/json:
schema:
$ref: '#/components/schemas/membership'
x-appwrite:
method: getMembership
group: memberships
weight: 229
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
- name: membershipId
description: Membership ID.
required: true
schema:
type: string
x-example: <MEMBERSHIP_ID>
in: path
patch:
summary: Update membership
operationId: teamsUpdateMembership
tags:
- teams
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).
responses:
'200':
description: Membership
content:
application/json:
schema:
$ref: '#/components/schemas/membership'
x-appwrite:
method: updateMembership
group: memberships
weight: 230
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
- name: membershipId
description: Membership ID.
required: true
schema:
type: string
x-example: <MEMBERSHIP_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
roles:
type: array
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.
x-example: null
items:
type: string
required:
- roles
delete:
summary: Delete team membership
operationId: teamsDeleteMembership
tags:
- teams
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.
responses:
'204':
description: No content
x-appwrite:
method: deleteMembership
group: memberships
weight: 232
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
Key: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
- name: membershipId
description: Membership ID.
required: true
schema:
type: string
x-example: <MEMBERSHIP_ID>
in: path
/teams/{teamId}/memberships/{membershipId}/status:
patch:
summary: Update team membership status
operationId: teamsUpdateMembershipStatus
tags:
- teams
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.
responses:
'200':
description: Membership
content:
application/json:
schema:
$ref: '#/components/schemas/membership'
x-appwrite:
method: updateMembershipStatus
group: memberships
weight: 231
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
- name: membershipId
description: Membership ID.
required: true
schema:
type: string
x-example: <MEMBERSHIP_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
description: User ID.
x-example: <USER_ID>
secret:
type: string
description: Secret key.
x-example: <SECRET>
required:
- userId
- secret
/teams/{teamId}/prefs:
get:
summary: Get team preferences
operationId: teamsGetPrefs
tags:
- teams
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).
responses:
'200':
description: Preferences
content:
application/json:
schema:
$ref: '#/components/schemas/preferences'
x-appwrite:
method: getPrefs
group: teams
weight: 223
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
put:
summary: Update preferences
operationId: teamsUpdatePrefs
tags:
- teams
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.
responses:
'200':
description: Preferences
content:
application/json:
schema:
$ref: '#/components/schemas/preferences'
x-appwrite:
method: updatePrefs
group: teams
weight: 225
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
auth:
Project: []
Session: []
security:
- Project: []
Session: []
JWT: []
parameters:
- name: teamId
description: Team ID.
required: true
schema:
type: string
x-example: <TEAM_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
prefs:
type: object
description: Prefs key-value JSON object.
x-example: '{}'
required:
- prefs
/users:
get:
summary: List users
operationId: usersList
tags:
- users
description: Get a list of all the project's users. You can use the query params to filter your results.
responses:
'200':
description: Users List
content:
application/json:
schema:
$ref: '#/components/schemas/userList'
x-appwrite:
method: list
group: users
weight: 243
cookies: false
type: ''
deprecated: false
demo: users/list.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-users.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
post:
summary: Create user
operationId: usersCreate
tags:
- users
description: Create a new user.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: create
group: users
weight: 234
cookies: false
type: ''
deprecated: false
demo: users/create.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
phone:
type: string
description: Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
x-example: '+12065550100'
password:
type: string
description: Plain text user password. Must be at least 8 chars.
x-example: null
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
/users/argon2:
post:
summary: Create user with Argon2 password
operationId: usersCreateArgon2User
tags:
- users
description: Create a new user. Password provided must be hashed with the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createArgon2User
group: users
weight: 237
cookies: false
type: ''
deprecated: false
demo: users/create-argon2user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-argon2-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using Argon2.
x-example: password
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/users/bcrypt:
post:
summary: Create user with bcrypt password
operationId: usersCreateBcryptUser
tags:
- users
description: Create a new user. Password provided must be hashed with the [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createBcryptUser
group: users
weight: 235
cookies: false
type: ''
deprecated: false
demo: users/create-bcrypt-user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-bcrypt-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using Bcrypt.
x-example: password
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/users/identities:
get:
summary: List identities
operationId: usersListIdentities
tags:
- users
description: Get identities for all users.
responses:
'200':
description: Identities List
content:
application/json:
schema:
$ref: '#/components/schemas/identityList'
x-appwrite:
method: listIdentities
group: identities
weight: 251
cookies: false
type: ''
deprecated: false
demo: users/list-identities.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-identities.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
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'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
x-example: <SEARCH>
default: ''
in: query
/users/identities/{identityId}:
delete:
summary: Delete identity
operationId: usersDeleteIdentity
tags:
- users
description: Delete an identity by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteIdentity
group: identities
weight: 274
cookies: false
type: ''
deprecated: false
demo: users/delete-identity.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete-identity.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: identityId
description: Identity ID.
required: true
schema:
type: string
x-example: <IDENTITY_ID>
in: path
/users/md5:
post:
summary: Create user with MD5 password
operationId: usersCreateMD5User
tags:
- users
description: Create a new user. Password provided must be hashed with the [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createMD5User
group: users
weight: 236
cookies: false
type: ''
deprecated: false
demo: users/create-m-d5user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-md5-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using MD5.
x-example: password
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/users/phpass:
post:
summary: Create user with PHPass password
operationId: usersCreatePHPassUser
tags:
- users
description: Create a new user. Password provided must be hashed with the [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createPHPassUser
group: users
weight: 239
cookies: false
type: ''
deprecated: false
demo: users/create-p-h-pass-user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-phpass-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
description: User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. 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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using PHPass.
x-example: password
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/users/scrypt:
post:
summary: Create user with Scrypt password
operationId: usersCreateScryptUser
tags:
- users
description: Create a new user. Password provided must be hashed with the [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createScryptUser
group: users
weight: 240
cookies: false
type: ''
deprecated: false
demo: users/create-scrypt-user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-scrypt-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using Scrypt.
x-example: password
passwordSalt:
type: string
description: Optional salt used to hash password.
x-example: <PASSWORD_SALT>
passwordCpu:
type: integer
description: Optional CPU cost used to hash password.
x-example: null
passwordMemory:
type: integer
description: Optional memory cost used to hash password.
x-example: null
passwordParallel:
type: integer
description: Optional parallelization cost used to hash password.
x-example: null
passwordLength:
type: integer
description: Optional hash length used to hash password.
x-example: null
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
- passwordSalt
- passwordCpu
- passwordMemory
- passwordParallel
- passwordLength
/users/scrypt-modified:
post:
summary: Create user with Scrypt modified password
operationId: usersCreateScryptModifiedUser
tags:
- users
description: Create a new user. Password provided must be hashed with the [Scrypt Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createScryptModifiedUser
group: users
weight: 241
cookies: false
type: ''
deprecated: false
demo: users/create-scrypt-modified-user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-scrypt-modified-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using Scrypt Modified.
x-example: password
passwordSalt:
type: string
description: Salt used to hash password.
x-example: <PASSWORD_SALT>
passwordSaltSeparator:
type: string
description: Salt separator used to hash password.
x-example: <PASSWORD_SALT_SEPARATOR>
passwordSignerKey:
type: string
description: Signer key used to hash password.
x-example: <PASSWORD_SIGNER_KEY>
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
- passwordSalt
- passwordSaltSeparator
- passwordSignerKey
/users/sha:
post:
summary: Create user with SHA password
operationId: usersCreateSHAUser
tags:
- users
description: Create a new user. Password provided must be hashed with the [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.
responses:
'201':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: createSHAUser
group: users
weight: 238
cookies: false
type: ''
deprecated: false
demo: users/create-s-h-a-user.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-sha-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
userId:
type: string
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.
x-example: <USER_ID>
email:
type: string
description: User email.
x-example: [email protected]
password:
type: string
description: User password hashed using SHA.
x-example: password
passwordVersion:
type: string
description: 'Optional SHA version used to hash password. Allowed values are: ''sha1'', ''sha224'', ''sha256'', ''sha384'', ''sha512/224'', ''sha512/256'', ''sha512'', ''sha3-224'', ''sha3-256'', ''sha3-384'', ''sha3-512'''
x-example: sha1
enum:
- sha1
- sha224
- sha256
- sha384
- sha512/224
- sha512/256
- sha512
- sha3-224
- sha3-256
- sha3-384
- sha3-512
x-enum-name: PasswordHash
x-enum-keys: []
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- userId
- email
- password
/users/{userId}:
get:
summary: Get user
operationId: usersGet
tags:
- users
description: Get a user by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: get
group: users
weight: 244
cookies: false
type: ''
deprecated: false
demo: users/get.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/get-user.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
delete:
summary: Delete user
operationId: usersDelete
tags:
- users
description: Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https://appwrite.io/docs/server/users#usersUpdateStatus) endpoint instead.
responses:
'204':
description: No content
x-appwrite:
method: delete
group: users
weight: 272
cookies: false
type: ''
deprecated: false
demo: users/delete.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
/users/{userId}/email:
patch:
summary: Update email
operationId: usersUpdateEmail
tags:
- users
description: Update the user email by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateEmail
group: users
weight: 257
cookies: false
type: ''
deprecated: false
demo: users/update-email.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-email.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: User email.
x-example: [email protected]
required:
- email
/users/{userId}/jwts:
post:
summary: Create user JWT
operationId: usersCreateJWT
tags:
- users
description: Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.
responses:
'201':
description: JWT
content:
application/json:
schema:
$ref: '#/components/schemas/jwt'
x-appwrite:
method: createJWT
group: sessions
weight: 275
cookies: false
type: ''
deprecated: false
demo: users/create-j-w-t.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-user-jwt.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
sessionId:
type: string
description: Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.
x-example: <SESSION_ID>
duration:
type: integer
description: Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.
x-example: 0
/users/{userId}/labels:
put:
summary: Update user labels
operationId: usersUpdateLabels
tags:
- users
description: |-
Update the user labels by its unique ID.
Labels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appwrite.io/docs/permissions) for more info.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateLabels
group: users
weight: 253
cookies: false
type: ''
deprecated: false
demo: users/update-labels.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-labels.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
labels:
type: array
description: Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.
x-example: null
items:
type: string
required:
- labels
/users/{userId}/logs:
get:
summary: List user logs
operationId: usersListLogs
tags:
- users
description: Get the user activity logs list by its unique ID.
responses:
'200':
description: Logs List
content:
application/json:
schema:
$ref: '#/components/schemas/logList'
x-appwrite:
method: listLogs
group: logs
weight: 249
cookies: false
type: ''
deprecated: false
demo: users/list-logs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-user-logs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: queries
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
required: false
schema:
type: array
items:
type: string
default: []
in: query
/users/{userId}/memberships:
get:
summary: List user memberships
operationId: usersListMemberships
tags:
- users
description: Get the user membership list by its unique ID.
responses:
'200':
description: Memberships List
content:
application/json:
schema:
$ref: '#/components/schemas/membershipList'
x-appwrite:
method: listMemberships
group: memberships
weight: 248
cookies: false
type: ''
deprecated: false
demo: users/list-memberships.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-user-memberships.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
/users/{userId}/mfa:
patch:
summary: Update MFA
operationId: usersUpdateMfa
tags:
- users
description: Enable or disable MFA on a user account.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateMfa
group: users
weight: 262
cookies: false
type: ''
deprecated: false
demo: users/update-mfa.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-mfa.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
mfa:
type: boolean
description: Enable or disable MFA.
x-example: false
required:
- mfa
/users/{userId}/mfa/authenticators/{type}:
delete:
summary: Delete authenticator
operationId: usersDeleteMfaAuthenticator
tags:
- users
description: Delete an authenticator app.
responses:
'204':
description: No content
x-appwrite:
method: deleteMfaAuthenticator
group: mfa
weight: 267
cookies: false
type: ''
deprecated: false
demo: users/delete-mfa-authenticator.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete-mfa-authenticator.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: type
description: Type of authenticator.
required: true
schema:
type: string
x-example: totp
enum:
- totp
x-enum-name: AuthenticatorType
x-enum-keys: []
in: path
/users/{userId}/mfa/factors:
get:
summary: List factors
operationId: usersListMfaFactors
tags:
- users
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
group: mfa
weight: 263
cookies: false
type: ''
deprecated: false
demo: users/list-mfa-factors.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-mfa-factors.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
/users/{userId}/mfa/recovery-codes:
get:
summary: Get MFA recovery codes
operationId: usersGetMfaRecoveryCodes
tags:
- users
description: Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.
responses:
'200':
description: MFA Recovery Codes
content:
application/json:
schema:
$ref: '#/components/schemas/mfaRecoveryCodes'
x-appwrite:
method: getMfaRecoveryCodes
group: mfa
weight: 264
cookies: false
type: ''
deprecated: false
demo: users/get-mfa-recovery-codes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/get-mfa-recovery-codes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
put:
summary: Update MFA recovery codes (regenerate)
operationId: usersUpdateMfaRecoveryCodes
tags:
- users
description: Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.
responses:
'200':
description: MFA Recovery Codes
content:
application/json:
schema:
$ref: '#/components/schemas/mfaRecoveryCodes'
x-appwrite:
method: updateMfaRecoveryCodes
group: mfa
weight: 266
cookies: false
type: ''
deprecated: false
demo: users/update-mfa-recovery-codes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-mfa-recovery-codes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
patch:
summary: Create MFA recovery codes
operationId: usersCreateMfaRecoveryCodes
tags:
- users
description: Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method by client SDK.
responses:
'201':
description: MFA Recovery Codes
content:
application/json:
schema:
$ref: '#/components/schemas/mfaRecoveryCodes'
x-appwrite:
method: createMfaRecoveryCodes
group: mfa
weight: 265
cookies: false
type: ''
deprecated: false
demo: users/create-mfa-recovery-codes.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-mfa-recovery-codes.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
/users/{userId}/name:
patch:
summary: Update name
operationId: usersUpdateName
tags:
- users
description: Update the user name by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateName
group: users
weight: 255
cookies: false
type: ''
deprecated: false
demo: users/update-name.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-name.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'User name. Max length: 128 chars.'
x-example: <NAME>
required:
- name
/users/{userId}/password:
patch:
summary: Update password
operationId: usersUpdatePassword
tags:
- users
description: Update the user password by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePassword
group: users
weight: 256
cookies: false
type: ''
deprecated: false
demo: users/update-password.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-password.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
password:
type: string
description: New user password. Must be at least 8 chars.
x-example: null
required:
- password
/users/{userId}/phone:
patch:
summary: Update phone
operationId: usersUpdatePhone
tags:
- users
description: Update the user phone by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePhone
group: users
weight: 258
cookies: false
type: ''
deprecated: false
demo: users/update-phone.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-phone.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: User phone number.
x-example: '+12065550100'
required:
- number
/users/{userId}/prefs:
get:
summary: Get user preferences
operationId: usersGetPrefs
tags:
- users
description: Get the user preferences by its unique ID.
responses:
'200':
description: Preferences
content:
application/json:
schema:
$ref: '#/components/schemas/preferences'
x-appwrite:
method: getPrefs
group: users
weight: 245
cookies: false
type: ''
deprecated: false
demo: users/get-prefs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/get-user-prefs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
patch:
summary: Update user preferences
operationId: usersUpdatePrefs
tags:
- users
description: Update the user 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 error if exceeded.
responses:
'200':
description: Preferences
content:
application/json:
schema:
$ref: '#/components/schemas/preferences'
x-appwrite:
method: updatePrefs
group: users
weight: 260
cookies: false
type: ''
deprecated: false
demo: users/update-prefs.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-prefs.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
prefs:
type: object
description: Prefs key-value JSON object.
x-example: '{}'
required:
- prefs
/users/{userId}/sessions:
get:
summary: List user sessions
operationId: usersListSessions
tags:
- users
description: Get the user sessions list by its unique ID.
responses:
'200':
description: Sessions List
content:
application/json:
schema:
$ref: '#/components/schemas/sessionList'
x-appwrite:
method: listSessions
group: sessions
weight: 247
cookies: false
type: ''
deprecated: false
demo: users/list-sessions.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-user-sessions.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.read
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
post:
summary: Create session
operationId: usersCreateSession
tags:
- users
description: |-
Creates a session for a user. Returns an immediately usable session object.
If you want to generate a token for a custom authentication flow, use the [POST /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken) endpoint.
responses:
'201':
description: Session
content:
application/json:
schema:
$ref: '#/components/schemas/session'
x-appwrite:
method: createSession
group: sessions
weight: 268
cookies: false
type: ''
deprecated: false
demo: users/create-session.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-session.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: 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.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
delete:
summary: Delete user sessions
operationId: usersDeleteSessions
tags:
- users
description: Delete all user's sessions by using the user's unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteSessions
group: sessions
weight: 271
cookies: false
type: ''
deprecated: false
demo: users/delete-sessions.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete-user-sessions.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
/users/{userId}/sessions/{sessionId}:
delete:
summary: Delete user session
operationId: usersDeleteSession
tags:
- users
description: Delete a user sessions by its unique ID.
responses:
'204':
description: No content
x-appwrite:
method: deleteSession
group: sessions
weight: 270
cookies: false
type: ''
deprecated: false
demo: users/delete-session.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete-user-session.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: sessionId
description: Session ID.
required: true
schema:
type: string
x-example: <SESSION_ID>
in: path
/users/{userId}/status:
patch:
summary: Update user status
operationId: usersUpdateStatus
tags:
- users
description: Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateStatus
group: users
weight: 252
cookies: false
type: ''
deprecated: false
demo: users/update-status.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-status.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
status:
type: boolean
description: User Status. To activate the user pass `true` and to block the user pass `false`.
x-example: false
required:
- status
/users/{userId}/targets:
get:
summary: List user targets
operationId: usersListTargets
tags:
- users
description: List the messaging targets that are associated with a user.
responses:
'200':
description: Target list
content:
application/json:
schema:
$ref: '#/components/schemas/targetList'
x-appwrite:
method: listTargets
group: targets
weight: 250
cookies: false
type: ''
deprecated: false
demo: users/list-targets.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/list-user-targets.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: targets.read
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: queries
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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels'
required: false
schema:
type: array
items:
type: string
default: []
in: query
post:
summary: Create user target
operationId: usersCreateTarget
tags:
- users
description: Create a messaging target.
responses:
'201':
description: Target
content:
application/json:
schema:
$ref: '#/components/schemas/target'
x-appwrite:
method: createTarget
group: targets
weight: 242
cookies: false
type: ''
deprecated: false
demo: users/create-target.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-target.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: targets.write
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
targetId:
type: string
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.
x-example: <TARGET_ID>
providerType:
type: string
description: 'The target provider type. Can be one of the following: `email`, `sms` or `push`.'
x-example: email
enum:
- email
- sms
- push
x-enum-name: MessagingProviderType
x-enum-keys: []
identifier:
type: string
description: The target identifier (token, email, phone etc.)
x-example: <IDENTIFIER>
providerId:
type: string
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.
x-example: <PROVIDER_ID>
name:
type: string
description: 'Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.'
x-example: <NAME>
required:
- targetId
- providerType
- identifier
/users/{userId}/targets/{targetId}:
get:
summary: Get user target
operationId: usersGetTarget
tags:
- users
description: Get a user's push notification target by ID.
responses:
'200':
description: Target
content:
application/json:
schema:
$ref: '#/components/schemas/target'
x-appwrite:
method: getTarget
group: targets
weight: 246
cookies: false
type: ''
deprecated: false
demo: users/get-target.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/get-user-target.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: targets.read
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: targetId
description: Target ID.
required: true
schema:
type: string
x-example: <TARGET_ID>
in: path
patch:
summary: Update user target
operationId: usersUpdateTarget
tags:
- users
description: Update a messaging target.
responses:
'200':
description: Target
content:
application/json:
schema:
$ref: '#/components/schemas/target'
x-appwrite:
method: updateTarget
group: targets
weight: 261
cookies: false
type: ''
deprecated: false
demo: users/update-target.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-target.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: targets.write
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: targetId
description: Target ID.
required: true
schema:
type: string
x-example: <TARGET_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
description: The target identifier (token, email, phone etc.)
x-example: <IDENTIFIER>
providerId:
type: string
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.
x-example: <PROVIDER_ID>
name:
type: string
description: 'Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.'
x-example: <NAME>
delete:
summary: Delete user target
operationId: usersDeleteTarget
tags:
- users
description: Delete a messaging target.
responses:
'204':
description: No content
x-appwrite:
method: deleteTarget
group: targets
weight: 273
cookies: false
type: ''
deprecated: false
demo: users/delete-target.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/delete-target.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: targets.write
platforms:
- server
- console
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
- name: targetId
description: Target ID.
required: true
schema:
type: string
x-example: <TARGET_ID>
in: path
/users/{userId}/tokens:
post:
summary: Create token
operationId: usersCreateToken
tags:
- users
description: |
Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT /account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process.
responses:
'201':
description: Token
content:
application/json:
schema:
$ref: '#/components/schemas/token'
x-appwrite:
method: createToken
group: sessions
weight: 269
cookies: false
type: ''
deprecated: false
demo: users/create-token.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/create-token.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
length:
type: integer
description: Token length in characters. The default length is 6 characters
x-example: 4
expire:
type: integer
description: Token expiration period in seconds. The default expiration is 15 minutes.
x-example: 60
/users/{userId}/verification:
patch:
summary: Update email verification
operationId: usersUpdateEmailVerification
tags:
- users
description: Update the user email verification status by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updateEmailVerification
group: users
weight: 259
cookies: false
type: ''
deprecated: false
demo: users/update-email-verification.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-email-verification.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
emailVerification:
type: boolean
description: User email verification status.
x-example: false
required:
- emailVerification
/users/{userId}/verification/phone:
patch:
summary: Update phone verification
operationId: usersUpdatePhoneVerification
tags:
- users
description: Update the user phone verification status by its unique ID.
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
x-appwrite:
method: updatePhoneVerification
group: users
weight: 254
cookies: false
type: ''
deprecated: false
demo: users/update-phone-verification.md
edit: https://github.com/appwrite/appwrite/edit/master/docs/references/users/update-user-phone-verification.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: users.write
platforms:
- server
packaging: false
auth:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: userId
description: User ID.
required: true
schema:
type: string
x-example: <USER_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
phoneVerification:
type: boolean
description: User phone verification status.
x-example: false
required:
- phoneVerification
tags:
- name: account
description: The Account service allows you to authenticate and manage a user account.
- name: avatars
description: The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.
- name: databases
description: The Databases service allows you to create structured collections of documents, query and filter lists of documents
- name: locale
description: The Locale service allows you to customize your app based on your users' location.
- name: health
description: The Health service allows you to both validate and monitor your Appwrite server's health.
- name: projects
description: The Project service allows you to manage all the projects in your Appwrite server.
- name: project
description: The Project service allows you to manage all the projects in your Appwrite server.
- name: storage
description: The Storage service allows you to manage your project files.
- name: teams
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: users
description: The Users service allows you to manage your project users.
- name: functions
description: The Functions Service allows you view, create and manage your Cloud Functions.
- name: proxy
description: The Proxy Service allows you to configure actions for your domains beyond DNS configuration.
- name: graphql
description: The GraphQL API allows you to query and mutate your Appwrite server using GraphQL.
- name: console
description: The Console service allows you to interact with console relevant informations.
- name: migrations
description: The Migrations service allows you to migrate third-party data to your Appwrite project.
- name: messaging
description: The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.).
components:
schemas:
any:
description: Any
type: object
additionalProperties: true
error:
description: Error
type: object
properties:
message:
type: string
description: Error message.
x-example: Not found
code:
type: string
description: Error code.
x-example: '404'
type:
type: string
description: Error type. You can learn more about all the error types at https://appwrite.io/docs/error-codes#errorTypes
x-example: not_found
version:
type: string
description: Server version number.
x-example: '1.0'
required:
- message
- code
- type
- version
documentList:
description: Documents List
type: object
properties:
total:
type: integer
description: Total number of documents documents that matched your query.
x-example: 5
format: int32
documents:
type: array
description: List of documents.
items:
$ref: '#/components/schemas/document'
x-example: ''
required:
- total
- documents
collectionList:
description: Collections List
type: object
properties:
total:
type: integer
description: Total number of collections documents that matched your query.
x-example: 5
format: int32
collections:
type: array
description: List of collections.
items:
$ref: '#/components/schemas/collection'
x-example: ''
required:
- total
- collections
databaseList:
description: Databases List
type: object
properties:
total:
type: integer
description: Total number of databases documents that matched your query.
x-example: 5
format: int32
databases:
type: array
description: List of databases.
items:
$ref: '#/components/schemas/database'
x-example: ''
required:
- total
- databases
indexList:
description: Indexes List
type: object
properties:
total:
type: integer
description: Total number of indexes documents that matched your query.
x-example: 5
format: int32
indexes:
type: array
description: List of indexes.
items:
$ref: '#/components/schemas/index'
x-example: ''
required:
- total
- indexes
userList:
description: Users List
type: object
properties:
total:
type: integer
description: Total number of users documents that matched your query.
x-example: 5
format: int32
users:
type: array
description: List of users.
items:
$ref: '#/components/schemas/user'
x-example: ''
required:
- total
- users
sessionList:
description: Sessions List
type: object
properties:
total:
type: integer
description: Total number of sessions documents that matched your query.
x-example: 5
format: int32
sessions:
type: array
description: List of sessions.
items:
$ref: '#/components/schemas/session'
x-example: ''
required:
- total
- sessions
identityList:
description: Identities List
type: object
properties:
total:
type: integer
description: Total number of identities documents that matched your query.
x-example: 5
format: int32
identities:
type: array
description: List of identities.
items:
$ref: '#/components/schemas/identity'
x-example: ''
required:
- total
- identities
logList:
description: Logs List
type: object
properties:
total:
type: integer
description: Total number of logs documents that matched your query.
x-example: 5
format: int32
logs:
type: array
description: List of logs.
items:
$ref: '#/components/schemas/log'
x-example: ''
required:
- total
- logs
fileList:
description: Files List
type: object
properties:
total:
type: integer
description: Total number of files documents that matched your query.
x-example: 5
format: int32
files:
type: array
description: List of files.
items:
$ref: '#/components/schemas/file'
x-example: ''
required:
- total
- files
bucketList:
description: Buckets List
type: object
properties:
total:
type: integer
description: Total number of buckets documents that matched your query.
x-example: 5
format: int32
buckets:
type: array
description: List of buckets.
items:
$ref: '#/components/schemas/bucket'
x-example: ''
required:
- total
- buckets
teamList:
description: Teams List
type: object
properties:
total:
type: integer
description: Total number of teams documents that matched your query.
x-example: 5
format: int32
teams:
type: array
description: List of teams.
items:
$ref: '#/components/schemas/team'
x-example: ''
required:
- total
- teams
membershipList:
description: Memberships List
type: object
properties:
total:
type: integer
description: Total number of memberships documents that matched your query.
x-example: 5
format: int32
memberships:
type: array
description: List of memberships.
items:
$ref: '#/components/schemas/membership'
x-example: ''
required:
- total
- memberships
functionList:
description: Functions List
type: object
properties:
total:
type: integer
description: Total number of functions documents that matched your query.
x-example: 5
format: int32
functions:
type: array
description: List of functions.
items:
$ref: '#/components/schemas/function'
x-example: ''
required:
- total
- functions
runtimeList:
description: Runtimes List
type: object
properties:
total:
type: integer
description: Total number of runtimes documents that matched your query.
x-example: 5
format: int32
runtimes:
type: array
description: List of runtimes.
items:
$ref: '#/components/schemas/runtime'
x-example: ''
required:
- total
- runtimes
deploymentList:
description: Deployments List
type: object
properties:
total:
type: integer
description: Total number of deployments documents that matched your query.
x-example: 5
format: int32
deployments:
type: array
description: List of deployments.
items:
$ref: '#/components/schemas/deployment'
x-example: ''
required:
- total
- deployments
executionList:
description: Executions List
type: object
properties:
total:
type: integer
description: Total number of executions documents that matched your query.
x-example: 5
format: int32
executions:
type: array
description: List of executions.
items:
$ref: '#/components/schemas/execution'
x-example: ''
required:
- total
- executions
countryList:
description: Countries List
type: object
properties:
total:
type: integer
description: Total number of countries documents that matched your query.
x-example: 5
format: int32
countries:
type: array
description: List of countries.
items:
$ref: '#/components/schemas/country'
x-example: ''
required:
- total
- countries
continentList:
description: Continents List
type: object
properties:
total:
type: integer
description: Total number of continents documents that matched your query.
x-example: 5
format: int32
continents:
type: array
description: List of continents.
items:
$ref: '#/components/schemas/continent'
x-example: ''
required:
- total
- continents
languageList:
description: Languages List
type: object
properties:
total:
type: integer
description: Total number of languages documents that matched your query.
x-example: 5
format: int32
languages:
type: array
description: List of languages.
items:
$ref: '#/components/schemas/language'
x-example: ''
required:
- total
- languages
currencyList:
description: Currencies List
type: object
properties:
total:
type: integer
description: Total number of currencies documents that matched your query.
x-example: 5
format: int32
currencies:
type: array
description: List of currencies.
items:
$ref: '#/components/schemas/currency'
x-example: ''
required:
- total
- currencies
phoneList:
description: Phones List
type: object
properties:
total:
type: integer
description: Total number of phones documents that matched your query.
x-example: 5
format: int32
phones:
type: array
description: List of phones.
items:
$ref: '#/components/schemas/phone'
x-example: ''
required:
- total
- phones
variableList:
description: Variables List
type: object
properties:
total:
type: integer
description: Total number of variables documents that matched your query.
x-example: 5
format: int32
variables:
type: array
description: List of variables.
items:
$ref: '#/components/schemas/variable'
x-example: ''
required:
- total
- variables
localeCodeList:
description: Locale codes list
type: object
properties:
total:
type: integer
description: Total number of localeCodes documents that matched your query.
x-example: 5
format: int32
localeCodes:
type: array
description: List of localeCodes.
items:
$ref: '#/components/schemas/localeCode'
x-example: ''
required:
- total
- localeCodes
providerList:
description: Provider list
type: object
properties:
total:
type: integer
description: Total number of providers documents that matched your query.
x-example: 5
format: int32
providers:
type: array
description: List of providers.
items:
$ref: '#/components/schemas/provider'
x-example: ''
required:
- total
- providers
messageList:
description: Message list
type: object
properties:
total:
type: integer
description: Total number of messages documents that matched your query.
x-example: 5
format: int32
messages:
type: array
description: List of messages.
items:
$ref: '#/components/schemas/message'
x-example: ''
required:
- total
- messages
topicList:
description: Topic list
type: object
properties:
total:
type: integer
description: Total number of topics documents that matched your query.
x-example: 5
format: int32
topics:
type: array
description: List of topics.
items:
$ref: '#/components/schemas/topic'
x-example: ''
required:
- total
- topics
subscriberList:
description: Subscriber list
type: object
properties:
total:
type: integer
description: Total number of subscribers documents that matched your query.
x-example: 5
format: int32
subscribers:
type: array
description: List of subscribers.
items:
$ref: '#/components/schemas/subscriber'
x-example: ''
required:
- total
- subscribers
targetList:
description: Target list
type: object
properties:
total:
type: integer
description: Total number of targets documents that matched your query.
x-example: 5
format: int32
targets:
type: array
description: List of targets.
items:
$ref: '#/components/schemas/target'
x-example: ''
required:
- total
- targets
specificationList:
description: Specifications List
type: object
properties:
total:
type: integer
description: Total number of specifications documents that matched your query.
x-example: 5
format: int32
specifications:
type: array
description: List of specifications.
items:
$ref: '#/components/schemas/specification'
x-example: ''
required:
- total
- specifications
database:
description: Database
type: object
properties:
$id:
type: string
description: Database ID.
x-example: 5e5ea5c16897e
name:
type: string
description: Database name.
x-example: My Database
$createdAt:
type: string
description: Database creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Database update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
enabled:
type: boolean
description: If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.
x-example: false
required:
- $id
- name
- $createdAt
- $updatedAt
- enabled
collection:
description: Collection
type: object
properties:
$id:
type: string
description: Collection ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Collection creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Collection update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$permissions:
type: array
description: Collection permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
items:
type: string
x-example:
- read("any")
databaseId:
type: string
description: Database ID.
x-example: 5e5ea5c16897e
name:
type: string
description: Collection name.
x-example: My Collection
enabled:
type: boolean
description: Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.
x-example: false
documentSecurity:
type: boolean
description: Whether document-level permissions are enabled. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: true
attributes:
type: array
description: Collection attributes.
items:
anyOf:
- $ref: '#/components/schemas/attributeBoolean'
- $ref: '#/components/schemas/attributeInteger'
- $ref: '#/components/schemas/attributeFloat'
- $ref: '#/components/schemas/attributeEmail'
- $ref: '#/components/schemas/attributeEnum'
- $ref: '#/components/schemas/attributeUrl'
- $ref: '#/components/schemas/attributeIp'
- $ref: '#/components/schemas/attributeDatetime'
- $ref: '#/components/schemas/attributeRelationship'
- $ref: '#/components/schemas/attributeString'
x-example: {}
indexes:
type: array
description: Collection indexes.
items:
$ref: '#/components/schemas/index'
x-example: {}
required:
- $id
- $createdAt
- $updatedAt
- $permissions
- databaseId
- name
- enabled
- documentSecurity
- attributes
- indexes
attributeList:
description: Attributes List
type: object
properties:
total:
type: integer
description: Total number of attributes in the given collection.
x-example: 5
format: int32
attributes:
type: array
description: List of attributes.
items:
anyOf:
- $ref: '#/components/schemas/attributeBoolean'
- $ref: '#/components/schemas/attributeInteger'
- $ref: '#/components/schemas/attributeFloat'
- $ref: '#/components/schemas/attributeEmail'
- $ref: '#/components/schemas/attributeEnum'
- $ref: '#/components/schemas/attributeUrl'
- $ref: '#/components/schemas/attributeIp'
- $ref: '#/components/schemas/attributeDatetime'
- $ref: '#/components/schemas/attributeRelationship'
- $ref: '#/components/schemas/attributeString'
x-example: ''
required:
- total
- attributes
attributeString:
description: AttributeString
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: fullName
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
size:
type: integer
description: Attribute size.
x-example: 128
format: int32
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: default
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- size
attributeInteger:
description: AttributeInteger
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: count
type:
type: string
description: Attribute type.
x-example: integer
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
min:
type: integer
description: Minimum value to enforce for new documents.
x-example: 1
format: int32
nullable: true
max:
type: integer
description: Maximum value to enforce for new documents.
x-example: 10
format: int32
nullable: true
default:
type: integer
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: 10
format: int32
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
attributeFloat:
description: AttributeFloat
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: percentageCompleted
type:
type: string
description: Attribute type.
x-example: double
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
min:
type: number
description: Minimum value to enforce for new documents.
x-example: 1.5
format: double
nullable: true
max:
type: number
description: Maximum value to enforce for new documents.
x-example: 10.5
format: double
nullable: true
default:
type: number
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: 2.5
format: double
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
attributeBoolean:
description: AttributeBoolean
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: isEnabled
type:
type: string
description: Attribute type.
x-example: boolean
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
default:
type: boolean
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: false
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
attributeEmail:
description: AttributeEmail
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: userEmail
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
format:
type: string
description: String format.
x-example: email
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: [email protected]
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- format
attributeEnum:
description: AttributeEnum
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: status
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
elements:
type: array
description: Array of elements in enumerated type.
items:
type: string
x-example: element
format:
type: string
description: String format.
x-example: enum
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: element
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- elements
- format
attributeIp:
description: AttributeIP
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: ipAddress
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
format:
type: string
description: String format.
x-example: ip
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: 192.0.2.0
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- format
attributeUrl:
description: AttributeURL
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: githubUrl
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
format:
type: string
description: String format.
x-example: url
default:
type: string
description: Default value for attribute when not provided. Cannot be set when attribute is required.
x-example: http://example.com
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- format
attributeDatetime:
description: AttributeDatetime
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: birthDay
type:
type: string
description: Attribute type.
x-example: datetime
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
format:
type: string
description: ISO 8601 format.
x-example: datetime
default:
type: string
description: Default value for attribute when not provided. Only null is optional
x-example: '2020-10-15T06:38:00.000+00:00'
nullable: true
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- format
attributeRelationship:
description: AttributeRelationship
type: object
properties:
key:
type: string
description: Attribute Key.
x-example: fullName
type:
type: string
description: Attribute type.
x-example: string
status:
type: string
description: 'Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an attribute.
x-example: string
required:
type: boolean
description: Is attribute required?
x-example: true
array:
type: boolean
description: Is attribute an array?
x-example: false
nullable: true
$createdAt:
type: string
description: Attribute creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Attribute update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
relatedCollection:
type: string
description: The ID of the related collection.
x-example: collection
relationType:
type: string
description: The type of the relationship.
x-example: oneToOne|oneToMany|manyToOne|manyToMany
twoWay:
type: boolean
description: Is the relationship two-way?
x-example: false
twoWayKey:
type: string
description: The key of the two-way relationship.
x-example: string
onDelete:
type: string
description: How deleting the parent document will propagate to child documents.
x-example: restrict|cascade|setNull
side:
type: string
description: Whether this is the parent or child side of the relationship
x-example: parent|child
required:
- key
- type
- status
- error
- required
- $createdAt
- $updatedAt
- relatedCollection
- relationType
- twoWay
- twoWayKey
- onDelete
- side
index:
description: Index
type: object
properties:
key:
type: string
description: Index Key.
x-example: index1
type:
type: string
description: Index type.
x-example: primary
status:
type: string
description: 'Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`'
x-example: available
error:
type: string
description: Error message. Displays error generated on failure of creating or deleting an index.
x-example: string
attributes:
type: array
description: Index attributes.
items:
type: string
x-example: []
orders:
type: array
description: Index orders.
items:
type: string
x-example: []
nullable: true
$createdAt:
type: string
description: Index creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Index update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
required:
- key
- type
- status
- error
- attributes
- $createdAt
- $updatedAt
document:
description: Document
type: object
properties:
$id:
type: string
description: Document ID.
x-example: 5e5ea5c16897e
$collectionId:
type: string
description: Collection ID.
x-example: 5e5ea5c15117e
$databaseId:
type: string
description: Database ID.
x-example: 5e5ea5c15117e
$createdAt:
type: string
description: Document creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Document update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$permissions:
type: array
description: Document permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
items:
type: string
x-example:
- read("any")
additionalProperties: true
required:
- $id
- $collectionId
- $databaseId
- $createdAt
- $updatedAt
- $permissions
log:
description: Log
type: object
properties:
event:
type: string
description: Event name.
x-example: account.sessions.create
userId:
type: string
description: User ID.
x-example: 610fc2f985ee0
userEmail:
type: string
description: User Email.
x-example: [email protected]
userName:
type: string
description: User Name.
x-example: John Doe
mode:
type: string
description: API mode when event triggered.
x-example: admin
ip:
type: string
description: IP session in use when the session was created.
x-example: 127.0.0.1
time:
type: string
description: Log creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
osCode:
type: string
description: Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json).
x-example: Mac
osName:
type: string
description: Operating system name.
x-example: Mac
osVersion:
type: string
description: Operating system version.
x-example: Mac
clientType:
type: string
description: Client type.
x-example: browser
clientCode:
type: string
description: Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json).
x-example: CM
clientName:
type: string
description: Client name.
x-example: Chrome Mobile iOS
clientVersion:
type: string
description: Client version.
x-example: '84.0'
clientEngine:
type: string
description: Client engine name.
x-example: WebKit
clientEngineVersion:
type: string
description: Client engine name.
x-example: 605.1.15
deviceName:
type: string
description: Device name.
x-example: smartphone
deviceBrand:
type: string
description: Device brand name.
x-example: Google
deviceModel:
type: string
description: Device model name.
x-example: Nexus 5
countryCode:
type: string
description: Country two-character ISO 3166-1 alpha code.
x-example: US
countryName:
type: string
description: Country name.
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:
type: string
description: User ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: User creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: User update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: User name.
x-example: John Doe
password:
type: string
description: Hashed user password.
x-example: $argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L/4LdgrVRXxE
nullable: true
hash:
type: string
description: Password hashing algorithm.
x-example: argon2
nullable: true
hashOptions:
type: object
description: Password hashing algorithm configuration.
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:
type: string
description: User registration date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
status:
type: boolean
description: User status. Pass `true` for enabled and `false` for disabled.
x-example: true
labels:
type: array
description: Labels for the user.
items:
type: string
x-example:
- vip
passwordUpdate:
type: string
description: Password update time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
email:
type: string
description: User email address.
x-example: [email protected]
phone:
type: string
description: User phone number in E.164 format.
x-example: '+4930901820'
emailVerification:
type: boolean
description: Email verification status.
x-example: true
phoneVerification:
type: boolean
description: Phone verification status.
x-example: true
mfa:
type: boolean
description: Multi factor authentication status.
x-example: true
prefs:
type: object
description: User preferences as a key-value object
x-example:
theme: pink
timezone: UTC
items:
$ref: '#/components/schemas/preferences'
targets:
type: array
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.
items:
$ref: '#/components/schemas/target'
x-example: []
accessedAt:
type: string
description: Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.
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:
type: string
description: Algo type.
x-example: md5
required:
- type
algoSha:
description: AlgoSHA
type: object
properties:
type:
type: string
description: Algo type.
x-example: sha
required:
- type
algoPhpass:
description: AlgoPHPass
type: object
properties:
type:
type: string
description: Algo type.
x-example: phpass
required:
- type
algoBcrypt:
description: AlgoBcrypt
type: object
properties:
type:
type: string
description: Algo type.
x-example: bcrypt
required:
- type
algoScrypt:
description: AlgoScrypt
type: object
properties:
type:
type: string
description: Algo type.
x-example: scrypt
costCpu:
type: integer
description: CPU complexity of computed hash.
x-example: 8
format: int32
costMemory:
type: integer
description: Memory complexity of computed hash.
x-example: 14
format: int32
costParallel:
type: integer
description: Parallelization of computed hash.
x-example: 1
format: int32
length:
type: integer
description: Length used to compute hash.
x-example: 64
format: int32
required:
- type
- costCpu
- costMemory
- costParallel
- length
algoScryptModified:
description: AlgoScryptModified
type: object
properties:
type:
type: string
description: Algo type.
x-example: scryptMod
salt:
type: string
description: Salt used to compute hash.
x-example: UxLMreBr6tYyjQ==
saltSeparator:
type: string
description: Separator used to compute hash.
x-example: Bw==
signerKey:
type: string
description: Key used to compute hash.
x-example: XyEKE9RcTDeLEsL/RjwPDBv/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==
required:
- type
- salt
- saltSeparator
- signerKey
algoArgon2:
description: AlgoArgon2
type: object
properties:
type:
type: string
description: Algo type.
x-example: argon2
memoryCost:
type: integer
description: Memory used to compute hash.
x-example: 65536
format: int32
timeCost:
type: integer
description: Amount of time consumed to compute hash
x-example: 4
format: int32
threads:
type: integer
description: Number of threads used to compute hash.
x-example: 3
format: int32
required:
- type
- memoryCost
- timeCost
- threads
preferences:
description: Preferences
type: object
additionalProperties: true
session:
description: Session
type: object
properties:
$id:
type: string
description: Session ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Session creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Session update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
userId:
type: string
description: User ID.
x-example: 5e5bb8c16897e
expire:
type: string
description: Session expiration date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
provider:
type: string
description: Session Provider.
x-example: email
providerUid:
type: string
description: Session Provider User ID.
x-example: [email protected]
providerAccessToken:
type: string
description: Session Provider Access Token.
x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3
providerAccessTokenExpiry:
type: string
description: The date of when the access token expires in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
providerRefreshToken:
type: string
description: Session Provider Refresh Token.
x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3
ip:
type: string
description: IP in use when the session was created.
x-example: 127.0.0.1
osCode:
type: string
description: Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json).
x-example: Mac
osName:
type: string
description: Operating system name.
x-example: Mac
osVersion:
type: string
description: Operating system version.
x-example: Mac
clientType:
type: string
description: Client type.
x-example: browser
clientCode:
type: string
description: Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json).
x-example: CM
clientName:
type: string
description: Client name.
x-example: Chrome Mobile iOS
clientVersion:
type: string
description: Client version.
x-example: '84.0'
clientEngine:
type: string
description: Client engine name.
x-example: WebKit
clientEngineVersion:
type: string
description: Client engine name.
x-example: 605.1.15
deviceName:
type: string
description: Device name.
x-example: smartphone
deviceBrand:
type: string
description: Device brand name.
x-example: Google
deviceModel:
type: string
description: Device model name.
x-example: Nexus 5
countryCode:
type: string
description: Country two-character ISO 3166-1 alpha code.
x-example: US
countryName:
type: string
description: Country name.
x-example: United States
current:
type: boolean
description: Returns true if this the current user session.
x-example: true
factors:
type: array
description: Returns a list of active session factors.
items:
type: string
x-example:
- email
secret:
type: string
description: Secret used to authenticate the user. Only included if the request was made with an API key
x-example: 5e5bb8c16897e
mfaUpdatedAt:
type: string
description: Most recent date in ISO 8601 format when the session successfully passed MFA challenge.
x-example: '2020-10-15T06:38:00.000+00:00'
required:
- $id
- $createdAt
- $updatedAt
- 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:
type: string
description: Identity ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Identity creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Identity update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
userId:
type: string
description: User ID.
x-example: 5e5bb8c16897e
provider:
type: string
description: Identity Provider.
x-example: email
providerUid:
type: string
description: ID of the User in the Identity Provider.
x-example: 5e5bb8c16897e
providerEmail:
type: string
description: Email of the User in the Identity Provider.
x-example: [email protected]
providerAccessToken:
type: string
description: Identity Provider Access Token.
x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3
providerAccessTokenExpiry:
type: string
description: The date of when the access token expires in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
providerRefreshToken:
type: string
description: Identity Provider Refresh Token.
x-example: MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3
required:
- $id
- $createdAt
- $updatedAt
- userId
- provider
- providerUid
- providerEmail
- providerAccessToken
- providerAccessTokenExpiry
- providerRefreshToken
token:
description: Token
type: object
properties:
$id:
type: string
description: Token ID.
x-example: bb8ea5c16897e
$createdAt:
type: string
description: Token creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
userId:
type: string
description: User ID.
x-example: 5e5ea5c168bb8
secret:
type: string
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.
x-example: ''
expire:
type: string
description: Token expiration date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
phrase:
type: string
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.
x-example: Golden Fox
required:
- $id
- $createdAt
- userId
- secret
- expire
- phrase
jwt:
description: JWT
type: object
properties:
jwt:
type: string
description: JWT encoded string.
x-example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
required:
- jwt
locale:
description: Locale
type: object
properties:
ip:
type: string
description: User IP address.
x-example: 127.0.0.1
countryCode:
type: string
description: Country code in [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) two-character format
x-example: US
country:
type: string
description: Country name. This field support localization.
x-example: United States
continentCode:
type: string
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.
x-example: NA
continent:
type: string
description: Continent name. This field support localization.
x-example: North America
eu:
type: boolean
description: True if country is part of the European Union.
x-example: false
currency:
type: string
description: Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format
x-example: USD
required:
- ip
- countryCode
- country
- continentCode
- continent
- eu
- currency
localeCode:
description: LocaleCode
type: object
properties:
code:
type: string
description: Locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
x-example: en-us
name:
type: string
description: Locale name
x-example: US
required:
- code
- name
file:
description: File
type: object
properties:
$id:
type: string
description: File ID.
x-example: 5e5ea5c16897e
bucketId:
type: string
description: Bucket ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: File creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: File update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$permissions:
type: array
description: File permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
items:
type: string
x-example:
- read("any")
name:
type: string
description: File name.
x-example: Pink.png
signature:
type: string
description: File MD5 signature.
x-example: 5d529fd02b544198ae075bd57c1762bb
mimeType:
type: string
description: File mime type.
x-example: image/png
sizeOriginal:
type: integer
description: File original size in bytes.
x-example: 17890
format: int32
chunksTotal:
type: integer
description: Total number of chunks available
x-example: 17890
format: int32
chunksUploaded:
type: integer
description: Total number of chunks uploaded
x-example: 17890
format: int32
required:
- $id
- bucketId
- $createdAt
- $updatedAt
- $permissions
- name
- signature
- mimeType
- sizeOriginal
- chunksTotal
- chunksUploaded
bucket:
description: Bucket
type: object
properties:
$id:
type: string
description: Bucket ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Bucket creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Bucket update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$permissions:
type: array
description: Bucket permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
items:
type: string
x-example:
- read("any")
fileSecurity:
type: boolean
description: Whether file-level security is enabled. [Learn more about permissions](https://appwrite.io/docs/permissions).
x-example: true
name:
type: string
description: Bucket name.
x-example: Documents
enabled:
type: boolean
description: Bucket enabled.
x-example: false
maximumFileSize:
type: integer
description: Maximum file size supported.
x-example: 100
format: int32
allowedFileExtensions:
type: array
description: Allowed file extensions.
items:
type: string
x-example:
- jpg
- png
compression:
type: string
description: Compression algorithm choosen for compression. Will be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd).
x-example: gzip
encryption:
type: boolean
description: Bucket is encrypted.
x-example: false
antivirus:
type: boolean
description: Virus scanning is enabled.
x-example: false
required:
- $id
- $createdAt
- $updatedAt
- $permissions
- fileSecurity
- name
- enabled
- maximumFileSize
- allowedFileExtensions
- compression
- encryption
- antivirus
team:
description: Team
type: object
properties:
$id:
type: string
description: Team ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Team creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Team update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: Team name.
x-example: VIP
total:
type: integer
description: Total number of team members.
x-example: 7
format: int32
prefs:
type: object
description: Team preferences as a key-value 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:
type: string
description: Membership ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Membership creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Membership update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
userId:
type: string
description: User ID.
x-example: 5e5ea5c16897e
userName:
type: string
description: User name. Hide this attribute by toggling membership privacy in the Console.
x-example: John Doe
userEmail:
type: string
description: User email address. Hide this attribute by toggling membership privacy in the Console.
x-example: [email protected]
teamId:
type: string
description: Team ID.
x-example: 5e5ea5c16897e
teamName:
type: string
description: Team name.
x-example: VIP
invited:
type: string
description: Date, the user has been invited to join the team in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
joined:
type: string
description: Date, the user has accepted the invitation to join the team in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
confirm:
type: boolean
description: User confirmation status, true if the user has joined the team or false otherwise.
x-example: false
mfa:
type: boolean
description: Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.
x-example: false
roles:
type: array
description: User list of roles
items:
type: string
x-example:
- owner
required:
- $id
- $createdAt
- $updatedAt
- userId
- userName
- userEmail
- teamId
- teamName
- invited
- joined
- confirm
- mfa
- roles
function:
description: Function
type: object
properties:
$id:
type: string
description: Function ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Function creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Function update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
execute:
type: array
description: Execution permissions.
items:
type: string
x-example: users
name:
type: string
description: Function name.
x-example: My Function
enabled:
type: boolean
description: Function enabled.
x-example: false
live:
type: boolean
description: Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.
x-example: false
logging:
type: boolean
description: Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project.
x-example: false
runtime:
type: string
description: Function execution runtime.
x-example: python-3.8
deployment:
type: string
description: Function's active deployment ID.
x-example: 5e5ea5c16897e
scopes:
type: array
description: Allowed permission scopes.
items:
type: string
x-example: users.read
vars:
type: array
description: Function variables.
items:
$ref: '#/components/schemas/variable'
x-example: []
events:
type: array
description: Function trigger events.
items:
type: string
x-example: account.create
schedule:
type: string
description: Function execution schedule in CRON format.
x-example: 5 4 * * *
timeout:
type: integer
description: Function execution timeout in seconds.
x-example: 300
format: int32
entrypoint:
type: string
description: The entrypoint file used to execute the deployment.
x-example: index.js
commands:
type: string
description: The build command used to build the deployment.
x-example: npm install
version:
type: string
description: Version of Open Runtimes used for the function.
x-example: v2
installationId:
type: string
description: Function VCS (Version Control System) installation id.
x-example: 6m40at4ejk5h2u9s1hboo
providerRepositoryId:
type: string
description: VCS (Version Control System) Repository ID
x-example: appwrite
providerBranch:
type: string
description: VCS (Version Control System) branch name
x-example: main
providerRootDirectory:
type: string
description: Path to function in VCS (Version Control System) repository
x-example: functions/helloWorld
providerSilentMode:
type: boolean
description: Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests
x-example: false
specification:
type: string
description: Machine specification for builds and executions.
x-example: s-1vcpu-512mb
required:
- $id
- $createdAt
- $updatedAt
- execute
- name
- enabled
- live
- logging
- runtime
- deployment
- scopes
- vars
- events
- schedule
- timeout
- entrypoint
- commands
- version
- installationId
- providerRepositoryId
- providerBranch
- providerRootDirectory
- providerSilentMode
- specification
runtime:
description: Runtime
type: object
properties:
$id:
type: string
description: Runtime ID.
x-example: python-3.8
key:
type: string
description: Parent runtime key.
x-example: python
name:
type: string
description: Runtime Name.
x-example: Python
version:
type: string
description: Runtime version.
x-example: '3.8'
base:
type: string
description: Base Docker image used to build the runtime.
x-example: python:3.8-alpine
image:
type: string
description: Image name of Docker Hub.
x-example: appwrite\/runtime-for-python:3.8
logo:
type: string
description: Name of the logo image.
x-example: python.png
supports:
type: array
description: List of supported architectures.
items:
type: string
x-example: amd64
required:
- $id
- key
- name
- version
- base
- image
- logo
- supports
deployment:
description: Deployment
type: object
properties:
$id:
type: string
description: Deployment ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Deployment creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Deployment update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
type:
type: string
description: Type of deployment.
x-example: vcs
resourceId:
type: string
description: Resource ID.
x-example: 5e5ea6g16897e
resourceType:
type: string
description: Resource type.
x-example: functions
entrypoint:
type: string
description: The entrypoint file to use to execute the deployment code.
x-example: index.js
size:
type: integer
description: The code size in bytes.
x-example: 128
format: int32
buildSize:
type: integer
description: The build output size in bytes.
x-example: 128
format: int32
buildId:
type: string
description: The current build ID.
x-example: 5e5ea5c16897e
activate:
type: boolean
description: Whether the deployment should be automatically activated.
x-example: true
status:
type: string
description: The deployment status. Possible values are "processing", "building", "waiting", "ready", and "failed".
x-example: ready
buildLogs:
type: string
description: The build logs.
x-example: Compiling source files...
buildTime:
type: integer
description: The current build time in seconds.
x-example: 128
format: int32
providerRepositoryName:
type: string
description: The name of the vcs provider repository
x-example: database
providerRepositoryOwner:
type: string
description: The name of the vcs provider repository owner
x-example: utopia
providerRepositoryUrl:
type: string
description: The url of the vcs provider repository
x-example: https://github.com/vermakhushboo/g4-node-function
providerBranch:
type: string
description: The branch of the vcs repository
x-example: 0.7.x
providerCommitHash:
type: string
description: The commit hash of the vcs commit
x-example: 7c3f25d
providerCommitAuthorUrl:
type: string
description: The url of vcs commit author
x-example: https://github.com/vermakhushboo
providerCommitAuthor:
type: string
description: The name of vcs commit author
x-example: Khushboo Verma
providerCommitMessage:
type: string
description: The commit message
x-example: Update index.js
providerCommitUrl:
type: string
description: The url of the vcs commit
x-example: https://github.com/vermakhushboo/g4-node-function/commit/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb
providerBranchUrl:
type: string
description: The branch of the vcs repository
x-example: https://github.com/vermakhushboo/appwrite/tree/0.7.x
required:
- $id
- $createdAt
- $updatedAt
- type
- resourceId
- resourceType
- entrypoint
- size
- buildSize
- buildId
- activate
- status
- buildLogs
- buildTime
- providerRepositoryName
- providerRepositoryOwner
- providerRepositoryUrl
- providerBranch
- providerCommitHash
- providerCommitAuthorUrl
- providerCommitAuthor
- providerCommitMessage
- providerCommitUrl
- providerBranchUrl
execution:
description: Execution
type: object
properties:
$id:
type: string
description: Execution ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Execution creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Execution upate date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$permissions:
type: array
description: Execution roles.
items:
type: string
x-example:
- any
functionId:
type: string
description: Function ID.
x-example: 5e5ea6g16897e
trigger:
type: string
description: 'The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.'
x-example: http
status:
type: string
description: 'The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.'
x-example: processing
requestMethod:
type: string
description: HTTP request method type.
x-example: GET
requestPath:
type: string
description: HTTP request path and query.
x-example: /articles?id=5
requestHeaders:
type: array
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.
items:
$ref: '#/components/schemas/headers'
x-example:
- Content-Type: application/json
responseStatusCode:
type: integer
description: HTTP response status code.
x-example: 200
format: int32
responseBody:
type: string
description: HTTP response body. This will return empty unless execution is created as synchronous.
x-example: ''
responseHeaders:
type: array
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.
items:
$ref: '#/components/schemas/headers'
x-example:
- Content-Type: application/json
logs:
type: string
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.
x-example: ''
errors:
type: string
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.
x-example: ''
duration:
type: number
description: Function execution duration in seconds.
x-example: 0.4
format: double
scheduledAt:
type: string
description: The scheduled time for execution. If left empty, execution will be queued immediately.
x-example: '2020-10-15T06:38:00.000+00:00'
nullable: true
required:
- $id
- $createdAt
- $updatedAt
- $permissions
- functionId
- trigger
- status
- requestMethod
- requestPath
- requestHeaders
- responseStatusCode
- responseBody
- responseHeaders
- logs
- errors
- duration
build:
description: Build
type: object
properties:
$id:
type: string
description: Build ID.
x-example: 5e5ea5c16897e
deploymentId:
type: string
description: The deployment that created this build.
x-example: 5e5ea5c16897e
status:
type: string
description: The build status. There are a few different types and each one means something different. \nFailed - The deployment build has failed. More details can usually be found in buildStderr\nReady - The deployment build was successful and the deployment is ready to be deployed\nProcessing - The deployment is currently waiting to have a build triggered\nBuilding - The deployment is currently being built
x-example: ready
stdout:
type: string
description: The stdout of the build.
x-example: ''
stderr:
type: string
description: The stderr of the build.
x-example: ''
startTime:
type: string
description: The deployment creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
endTime:
type: string
description: The time the build was finished in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
duration:
type: integer
description: The build duration in seconds.
x-example: 0
format: int32
size:
type: integer
description: The code size in bytes.
x-example: 128
format: int32
required:
- $id
- deploymentId
- status
- stdout
- stderr
- startTime
- endTime
- duration
- size
variable:
description: Variable
type: object
properties:
$id:
type: string
description: Variable ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Variable creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Variable creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
key:
type: string
description: Variable key.
x-example: API_KEY
value:
type: string
description: Variable value.
x-example: myPa$$word1
resourceType:
type: string
description: Service to which the variable belongs. Possible values are "project", "function"
x-example: function
resourceId:
type: string
description: ID of resource to which the variable belongs. If resourceType is "project", it is empty. If resourceType is "function", it is ID of the function.
x-example: myAwesomeFunction
required:
- $id
- $createdAt
- $updatedAt
- key
- value
- resourceType
- resourceId
country:
description: Country
type: object
properties:
name:
type: string
description: Country name.
x-example: United States
code:
type: string
description: Country two-character ISO 3166-1 alpha code.
x-example: US
required:
- name
- code
continent:
description: Continent
type: object
properties:
name:
type: string
description: Continent name.
x-example: Europe
code:
type: string
description: Continent two letter code.
x-example: EU
required:
- name
- code
language:
description: Language
type: object
properties:
name:
type: string
description: Language name.
x-example: Italian
code:
type: string
description: Language two-character ISO 639-1 codes.
x-example: it
nativeName:
type: string
description: Language native name.
x-example: Italiano
required:
- name
- code
- nativeName
currency:
description: Currency
type: object
properties:
symbol:
type: string
description: Currency symbol.
x-example: $
name:
type: string
description: Currency name.
x-example: US dollar
symbolNative:
type: string
description: Currency native symbol.
x-example: $
decimalDigits:
type: integer
description: Number of decimal digits.
x-example: 2
format: int32
rounding:
type: number
description: Currency digit rounding.
x-example: 0
format: double
code:
type: string
description: Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format.
x-example: USD
namePlural:
type: string
description: Currency plural name
x-example: US dollars
required:
- symbol
- name
- symbolNative
- decimalDigits
- rounding
- code
- namePlural
phone:
description: Phone
type: object
properties:
code:
type: string
description: Phone code.
x-example: '+1'
countryCode:
type: string
description: Country two-character ISO 3166-1 alpha code.
x-example: US
countryName:
type: string
description: Country name.
x-example: United States
required:
- code
- countryCode
- countryName
healthAntivirus:
description: Health Antivirus
type: object
properties:
version:
type: string
description: Antivirus version.
x-example: 1.0.0
status:
type: string
description: 'Antivirus status. Possible values can are: `disabled`, `offline`, `online`'
x-example: online
required:
- version
- status
healthQueue:
description: Health Queue
type: object
properties:
size:
type: integer
description: Amount of actions in the queue.
x-example: 8
format: int32
required:
- size
healthStatus:
description: Health Status
type: object
properties:
name:
type: string
description: Name of the service.
x-example: database
ping:
type: integer
description: Duration in milliseconds how long the health check took.
x-example: 128
format: int32
status:
type: string
description: 'Service status. Possible values can are: `pass`, `fail`'
x-example: pass
required:
- name
- ping
- status
healthCertificate:
description: Health Certificate
type: object
properties:
name:
type: string
description: Certificate name
x-example: /CN=www.google.com
subjectSN:
type: string
description: Subject SN
x-example: ''
issuerOrganisation:
type: string
description: Issuer organisation
x-example: ''
validFrom:
type: string
description: Valid from
x-example: '1704200998'
validTo:
type: string
description: Valid to
x-example: '1711458597'
signatureTypeSN:
type: string
description: Signature type SN
x-example: RSA-SHA256
required:
- name
- subjectSN
- issuerOrganisation
- validFrom
- validTo
- signatureTypeSN
healthTime:
description: Health Time
type: object
properties:
remoteTime:
type: integer
description: Current unix timestamp on trustful remote server.
x-example: 1639490751
format: int32
localTime:
type: integer
description: Current unix timestamp of local server where Appwrite runs.
x-example: 1639490844
format: int32
diff:
type: integer
description: Difference of unix remote and local timestamps in milliseconds.
x-example: 93
format: int32
required:
- remoteTime
- localTime
- diff
headers:
description: Headers
type: object
properties:
name:
type: string
description: Header name.
x-example: Content-Type
value:
type: string
description: Header value.
x-example: application/json
required:
- name
- value
specification:
description: Specification
type: object
properties:
memory:
type: integer
description: Memory size in MB.
x-example: 512
format: int32
cpus:
type: number
description: Number of CPUs.
x-example: 1
format: double
enabled:
type: boolean
description: Is size enabled.
x-example: true
slug:
type: string
description: Size slug.
x-example: s-1vcpu-512mb
required:
- memory
- cpus
- enabled
- slug
mfaChallenge:
description: MFA Challenge
type: object
properties:
$id:
type: string
description: Token ID.
x-example: bb8ea5c16897e
$createdAt:
type: string
description: Token creation date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
userId:
type: string
description: User ID.
x-example: 5e5ea5c168bb8
expire:
type: string
description: Token expiration date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
required:
- $id
- $createdAt
- userId
- expire
mfaRecoveryCodes:
description: MFA Recovery Codes
type: object
properties:
recoveryCodes:
type: array
description: Recovery codes.
items:
type: string
x-example:
- a3kf0-s0cl2
- s0co1-as98s
required:
- recoveryCodes
mfaType:
description: MFAType
type: object
properties:
secret:
type: string
description: Secret token used for TOTP factor.
x-example: true
uri:
type: string
description: URI for authenticator apps.
x-example: true
required:
- secret
- uri
mfaFactors:
description: MFAFactors
type: object
properties:
totp:
type: boolean
description: Can TOTP be used for MFA challenge for this account.
x-example: true
phone:
type: boolean
description: Can phone (SMS) be used for MFA challenge for this account.
x-example: true
email:
type: boolean
description: Can email be used for MFA challenge for this account.
x-example: true
recoveryCode:
type: boolean
description: Can recovery code be used for MFA challenge for this account.
x-example: true
required:
- totp
- phone
- email
- recoveryCode
provider:
description: Provider
type: object
properties:
$id:
type: string
description: Provider ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Provider creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Provider update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: The name for the provider instance.
x-example: Mailgun
provider:
type: string
description: The name of the provider service.
x-example: mailgun
enabled:
type: boolean
description: Is provider enabled?
x-example: true
type:
type: string
description: Type of provider.
x-example: sms
credentials:
type: object
description: Provider credentials.
x-example:
key: '123456789'
options:
type: object
description: Provider options.
x-example:
from: sender-email@mydomain
nullable: true
required:
- $id
- $createdAt
- $updatedAt
- name
- provider
- enabled
- type
- credentials
message:
description: Message
type: object
properties:
$id:
type: string
description: Message ID.
x-example: 5e5ea5c16897e
$createdAt:
type: string
description: Message creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Message update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
providerType:
type: string
description: Message provider type.
x-example: email
topics:
type: array
description: Topic IDs set as recipients.
items:
type: string
x-example:
- 5e5ea5c16897e
users:
type: array
description: User IDs set as recipients.
items:
type: string
x-example:
- 5e5ea5c16897e
targets:
type: array
description: Target IDs set as recipients.
items:
type: string
x-example:
- 5e5ea5c16897e
scheduledAt:
type: string
description: The scheduled time for message.
x-example: '2020-10-15T06:38:00.000+00:00'
nullable: true
deliveredAt:
type: string
description: The time when the message was delivered.
x-example: '2020-10-15T06:38:00.000+00:00'
nullable: true
deliveryErrors:
type: array
description: Delivery errors if any.
items:
type: string
x-example:
- 'Failed to send message to target 5e5ea5c16897e: Credentials not valid.'
nullable: true
deliveredTotal:
type: integer
description: Number of recipients the message was delivered to.
x-example: 1
format: int32
data:
type: object
description: Data of the message.
x-example:
subject: Welcome to Appwrite
content: Hi there, welcome to Appwrite family.
status:
type: string
description: Status of delivery.
x-example: 'Message status can be one of the following: draft, processing, scheduled, sent, or failed.'
required:
- $id
- $createdAt
- $updatedAt
- providerType
- topics
- users
- targets
- deliveredTotal
- data
- status
topic:
description: Topic
type: object
properties:
$id:
type: string
description: Topic ID.
x-example: '259125845563242502'
$createdAt:
type: string
description: Topic creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Topic update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: The name of the topic.
x-example: events
emailTotal:
type: integer
description: Total count of email subscribers subscribed to the topic.
x-example: 100
format: int32
smsTotal:
type: integer
description: Total count of SMS subscribers subscribed to the topic.
x-example: 100
format: int32
pushTotal:
type: integer
description: Total count of push subscribers subscribed to the topic.
x-example: 100
format: int32
subscribe:
type: array
description: Subscribe permissions.
items:
type: string
x-example: users
required:
- $id
- $createdAt
- $updatedAt
- name
- emailTotal
- smsTotal
- pushTotal
- subscribe
subscriber:
description: Subscriber
type: object
properties:
$id:
type: string
description: Subscriber ID.
x-example: '259125845563242502'
$createdAt:
type: string
description: Subscriber creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Subscriber update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
targetId:
type: string
description: Target ID.
x-example: '259125845563242502'
target:
type: object
description: Target.
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: [email protected]
userId: 5e5ea5c16897e
items:
$ref: '#/components/schemas/target'
userId:
type: string
description: Topic ID.
x-example: 5e5ea5c16897e
userName:
type: string
description: User Name.
x-example: Aegon Targaryen
topicId:
type: string
description: Topic ID.
x-example: '259125845563242502'
providerType:
type: string
description: 'The target provider type. Can be one of the following: `email`, `sms` or `push`.'
x-example: email
required:
- $id
- $createdAt
- $updatedAt
- targetId
- target
- userId
- userName
- topicId
- providerType
target:
description: Target
type: object
properties:
$id:
type: string
description: Target ID.
x-example: '259125845563242502'
$createdAt:
type: string
description: Target creation time in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Target update date in ISO 8601 format.
x-example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: Target Name.
x-example: Apple iPhone 12
userId:
type: string
description: User ID.
x-example: '259125845563242502'
providerId:
type: string
description: Provider ID.
x-example: '259125845563242502'
nullable: true
providerType:
type: string
description: 'The target provider type. Can be one of the following: `email`, `sms` or `push`.'
x-example: email
identifier:
type: string
description: The target identifier.
x-example: token
expired:
type: boolean
description: Is the target expired.
x-example: false
required:
- $id
- $createdAt
- $updatedAt
- name
- userId
- providerType
- identifier
- expired
securitySchemes:
Project:
type: apiKey
name: X-Appwrite-Project
description: Your project ID
in: header
x-appwrite:
demo: <YOUR_PROJECT_ID>
Key:
type: apiKey
name: X-Appwrite-Key
description: Your secret API key
in: header
x-appwrite:
demo: <YOUR_API_KEY>
JWT:
type: apiKey
name: X-Appwrite-JWT
description: Your secret JSON Web Token
in: header
Locale:
type: apiKey
name: X-Appwrite-Locale
description: ''
in: header
x-appwrite:
demo: en
Session:
type: apiKey
name: X-Appwrite-Session
description: The user session to authenticate with
in: header
ForwardedUserAgent:
type: apiKey
name: X-Forwarded-User-Agent
description: The user agent string of the client that made the request
in: header
externalDocs:
description: Full API docs, specs and tutorials
url: https://appwrite.io/docs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment