Appwrite API

The Appwrite REST API provides programmatic access to authentication, databases, storage, functions, and messaging for building open source web and mobile application backends.

Documentation

Specifications

SDKs

Examples

Schemas & Data

Other Resources

OpenAPI Specification

appwrite-openapi.yaml Raw ↑
openapi: 3.0.3
info:
  title: Appwrite API
  description: >-
    The Appwrite REST API provides programmatic access to backend services for
    web and mobile applications, including user authentication, databases, file
    storage, cloud functions, real-time messaging, and team management. Appwrite
    is open source and can be self-hosted or used via Appwrite Cloud.
  version: 1.6.0
  contact:
    name: Appwrite
    url: https://appwrite.io/docs
  license:
    name: BSD 3-Clause
    url: https://opensource.org/licenses/BSD-3-Clause
servers:
  - url: https://cloud.appwrite.io/v1
    description: Appwrite Cloud API
security:
  - projectKey: []
tags:
  - name: Account
    description: User account management
  - name: Users
    description: Server-side user management (requires server key)
  - name: Databases
    description: Database and collection management
  - name: Storage
    description: File storage management
paths:
  /account:
    get:
      operationId: getAccount
      summary: Appwrite - Get Account
      description: Returns the currently authenticated user account information
      tags:
        - Account
      responses:
        '200':
          description: User account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples:
                GetAccountExample:
                  x-microcks-default: true
                  summary: Example account response
                  value:
                    $id: user-abc123
                    name: Jane Developer
                    email: [email protected]
                    emailVerification: true
                    status: true
                    createdAt: "2026-01-01T12:00:00Z"
        '401':
          description: Unauthorized - invalid or missing session
  /users:
    get:
      operationId: listUsers
      summary: Appwrite - List Users
      description: Returns a list of all users in the project (requires server API key)
      tags:
        - Users
      parameters:
        - name: queries
          in: query
          description: Array of query strings for filtering users
          schema:
            type: array
            items:
              type: string
        - name: search
          in: query
          description: Search term to filter users by name or email
          schema:
            type: string
      responses:
        '200':
          description: A list of users
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of users
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
              examples:
                ListUsersExample:
                  x-microcks-default: true
                  summary: Example users list
                  value:
                    total: 1
                    users:
                      - $id: user-abc123
                        name: Jane Developer
                        email: [email protected]
                        emailVerification: true
                        status: true
        '401':
          description: Unauthorized - invalid or missing API key
    post:
      operationId: createUser
      summary: Appwrite - Create User
      description: Creates a new user account in the Appwrite project
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - userId
                - email
                - password
              properties:
                userId:
                  type: string
                  description: Unique user ID (use "unique()" to auto-generate)
                email:
                  type: string
                  description: User email address
                password:
                  type: string
                  description: User password
                name:
                  type: string
                  description: User display name
            examples:
              CreateUserExample:
                x-microcks-default: true
                summary: Example user creation request
                value:
                  userId: unique()
                  email: [email protected]
                  password: securepassword123
                  name: New User
      responses:
        '201':
          description: User created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Invalid request body
        '409':
          description: User with this email already exists
        '401':
          description: Unauthorized - invalid or missing API key
  /databases:
    get:
      operationId: listDatabases
      summary: Appwrite - List Databases
      description: Returns a list of all databases in the Appwrite project
      tags:
        - Databases
      responses:
        '200':
          description: A list of databases
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of databases
                  databases:
                    type: array
                    items:
                      $ref: '#/components/schemas/Database'
              examples:
                ListDatabasesExample:
                  x-microcks-default: true
                  summary: Example databases list
                  value:
                    total: 1
                    databases:
                      - $id: main-db
                        name: Main Database
                        createdAt: "2026-01-01T00:00:00Z"
        '401':
          description: Unauthorized - invalid or missing API key
  /storage/buckets:
    get:
      operationId: listBuckets
      summary: Appwrite - List Buckets
      description: Returns a list of all storage buckets in the Appwrite project
      tags:
        - Storage
      responses:
        '200':
          description: A list of storage buckets
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of buckets
                  buckets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Bucket'
              examples:
                ListBucketsExample:
                  x-microcks-default: true
                  summary: Example buckets list
                  value:
                    total: 1
                    buckets:
                      - $id: avatars
                        name: User Avatars
                        createdAt: "2026-01-01T00:00:00Z"
        '401':
          description: Unauthorized - invalid or missing API key
components:
  securitySchemes:
    projectKey:
      type: apiKey
      in: header
      name: X-Appwrite-Project
  schemas:
    User:
      title: User
      description: An Appwrite user account
      type: object
      properties:
        $id:
          type: string
          description: Unique user identifier
        name:
          type: string
          description: User display name
        email:
          type: string
          description: User email address
        phone:
          type: string
          description: User phone number
        emailVerification:
          type: boolean
          description: Email verification status
        phoneVerification:
          type: boolean
          description: Phone verification status
        status:
          type: boolean
          description: Account active status
        createdAt:
          type: string
          format: date-time
          description: Account creation timestamp
        labels:
          type: array
          items:
            type: string
          description: User labels for role-based access control
    Database:
      title: Database
      description: An Appwrite database for storing collections and documents
      type: object
      properties:
        $id:
          type: string
          description: Unique database identifier
        name:
          type: string
          description: Database name
        createdAt:
          type: string
          format: date-time
          description: Database creation timestamp
    Bucket:
      title: Bucket
      description: An Appwrite storage bucket for managing files
      type: object
      properties:
        $id:
          type: string
          description: Unique bucket identifier
        name:
          type: string
          description: Bucket name
        createdAt:
          type: string
          format: date-time
          description: Bucket creation timestamp
        maximumFileSize:
          type: integer
          description: Maximum file size in bytes
        allowedFileExtensions:
          type: array
          items:
            type: string
          description: Allowed file extensions (empty = all allowed)