Appwrite Projects API

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

Operations 18

GET /projects/{projectId}/addons List project addons #
POST /projects/{projectId}/addons/premium-geo-db Create Premium Geo DB addon for project #
GET /projects/{projectId}/addons/{addonId} Get project addon #
DELETE /projects/{projectId}/addons/{addonId} Delete project addon #
POST /projects/{projectId}/addons/{addonId}/confirmations Confirm project addon payment after 3DS authentication #
GET /projects/{projectId}/addons/{addon}/price Get project addon price #
PATCH /projects/{projectId}/console-access Record console access to a project #
GET /projects/{projectId}/dev-keys List dev keys #
GET /projects/{projectId}/dev-keys/{keyId} Get dev key #
PUT /projects/{projectId}/dev-keys/{keyId} Update dev key #
DELETE /projects/{projectId}/dev-keys/{keyId} Delete dev key #
GET /projects/{projectId}/schedules List schedules #
POST /projects/{projectId}/schedules Create schedule #
GET /projects/{projectId}/schedules/{scheduleId} Get schedule #
GET /projects/{projectId}/stages List stages #
PATCH /projects/{projectId}/stages/{stageId} Update stage #
PATCH /projects/{projectId}/status Update the status of a project #
PATCH /projects/{projectId}/team Update project team #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

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

        '
      responses:
        '200':
          description: Addons list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonList'
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/list-addons.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
  /projects/{projectId}/addons/premium-geo-db:
    post:
      summary: Create Premium Geo DB addon for project
      operationId: projectsCreatePremiumGeoDBAddon
      tags:
      - projects
      description: 'Create a Premium Geo DB addon for a project.

        '
      responses:
        '201':
          description: Addon
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addon'
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/create-premium-geo-db-addon.md
        rate-limit: 10
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
  /projects/{projectId}/addons/{addonId}:
    get:
      summary: Get project addon
      operationId: projectsGetAddon
      tags:
      - projects
      description: 'Get the details of a billing addon for a project.

        '
      responses:
        '200':
          description: Addon
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addon'
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/get-addon.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: addonId
        description: Addon ID
        required: true
        schema:
          type: string
          example: <ADDON_ID>
        in: path
    delete:
      summary: Delete project addon
      operationId: projectsDeleteAddon
      tags:
      - projects
      description: 'Delete a billing addon for a project.

        '
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/delete-addon.md
        rate-limit: 10
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: addonId
        description: Addon ID
        required: true
        schema:
          type: string
          example: <ADDON_ID>
        in: path
  /projects/{projectId}/addons/{addonId}/confirmations:
    post:
      summary: Confirm project addon payment after 3DS authentication
      operationId: projectsConfirmAddonPayment
      tags:
      - projects
      description: 'Confirm payment for a billing addon for a project.

        '
      responses:
        '200':
          description: Addon
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addon'
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/confirm-addon-payment.md
        rate-limit: 10
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: addonId
        description: Addon ID
        required: true
        schema:
          type: string
          example: <ADDON_ID>
        in: path
  /projects/{projectId}/addons/{addon}/price:
    get:
      summary: Get project addon price
      operationId: projectsGetAddonPrice
      tags:
      - projects
      description: 'Get the price details for a billing addon for a project, including the prorated amount for the remaining days in the current billing cycle.

        '
      responses:
        '200':
          description: AddonPrice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonPrice'
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/get-addon-price.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: addon
        description: Addon key identifier (e.g. premiumGeoDB).
        required: true
        schema:
          type: string
          example: baa
        in: path
  /projects/{projectId}/console-access:
    patch:
      summary: Record console access to a project
      operationId: projectsUpdateConsoleAccess
      tags:
      - projects
      description: 'Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.

        '
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/update-console-access.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
  /projects/{projectId}/dev-keys:
    get:
      summary: List dev keys
      operationId: projectsListDevKeys
      tags:
      - projects
      description: List all the project\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'
      responses:
        '200':
          description: Dev Keys List
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/devKeyList'
      deprecated: false
      x-appwrite:
        group: devKeys
        demo: projects/list-dev-keys.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: devKeys.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_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: accessedAt, expire'
        required: false
        schema:
          type: array
          items:
            type: string
          default: []
        in: query
  /projects/{projectId}/dev-keys/{keyId}:
    get:
      summary: Get dev key
      operationId: projectsGetDevKey
      tags:
      - projects
      description: Get a project\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.
      responses:
        '200':
          description: DevKey
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/devKey'
      deprecated: false
      x-appwrite:
        group: devKeys
        demo: projects/get-dev-key.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: devKeys.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: keyId
        description: Key unique ID.
        required: true
        schema:
          type: string
          example: <KEY_ID>
        in: path
    put:
      summary: Update dev key
      operationId: projectsUpdateDevKey
      tags:
      - projects
      description: Update a project\'s dev key by its unique ID. Use this endpoint to update a project\'s dev key name or expiration time.'
      responses:
        '200':
          description: DevKey
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/devKey'
      deprecated: false
      x-appwrite:
        group: devKeys
        demo: projects/update-dev-key.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: devKeys.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: keyId
        description: Key unique ID.
        required: true
        schema:
          type: string
          example: <KEY_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: 'Key name. Max length: 128 chars.'
                  type: string
                  example: <NAME>
                expire:
                  description: Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
                  type: string
                  example: '2020-10-15T06:38:00.000+00:00'
                  format: datetime
              required:
              - name
              - expire
    delete:
      summary: Delete dev key
      operationId: projectsDeleteDevKey
      tags:
      - projects
      description: Delete a project\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: devKeys
        demo: projects/delete-dev-key.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: devKeys.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: keyId
        description: Key unique ID.
        required: true
        schema:
          type: string
          example: <KEY_ID>
        in: path
  /projects/{projectId}/schedules:
    get:
      summary: List schedules
      operationId: projectsListSchedules
      tags:
      - projects
      description: Get a list of all the project's schedules. You can use the query params to filter your results.
      responses:
        '200':
          description: Schedules List
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scheduleList'
      deprecated: false
      x-appwrite:
        group: schedules
        demo: projects/list-schedules.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: schedules.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_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: resourceType, resourceId, projectId, schedule, active, region'
        required: false
        schema:
          type: array
          items:
            type: string
          default: []
        in: query
      - name: total
        description: When set to false, the total count returned will be 0 and will not be calculated.
        required: false
        schema:
          type: boolean
          example: false
          default: true
        in: query
    post:
      summary: Create schedule
      operationId: projectsCreateSchedule
      tags:
      - projects
      description: Create a new schedule for a resource.
      responses:
        '201':
          description: Schedule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schedule'
      deprecated: false
      x-appwrite:
        group: schedules
        demo: projects/create-schedule.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: schedules.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                resourceType:
                  description: 'The resource type for the schedule. Possible values: function, execution, message, backup.'
                  type: string
                  example: function
                  title: ScheduleResourceType
                  oneOf:
                  - type: string
                    enum:
                    - function
                    title: function
                  - type: string
                    enum:
                    - execution
                    title: execution
                  - type: string
                    enum:
                    - message
                    title: message
                  - type: string
                    enum:
                    - backup
                    title: backup
                resourceId:
                  description: The resource ID to associate with this schedule.
                  type: string
                  example: <RESOURCE_ID>
                schedule:
                  description: Schedule CRON expression.
                  type: string
                  example: 0 0 * * *
                active:
                  description: Whether the schedule is active.
                  type: boolean
                  default: false
                  example: false
                data:
                  description: Schedule data as a JSON string. Used to store resource-specific context needed for execution.
                  type: object
                  default: {}
                  example: {}
              required:
              - resourceType
              - resourceId
              - schedule
  /projects/{projectId}/schedules/{scheduleId}:
    get:
      summary: Get schedule
      operationId: projectsGetSchedule
      tags:
      - projects
      description: Get a schedule by its unique ID.
      responses:
        '200':
          description: Schedule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schedule'
      deprecated: false
      x-appwrite:
        group: schedules
        demo: projects/get-schedule.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: schedules.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: scheduleId
        description: Schedule ID.
        required: true
        schema:
          type: string
          example: <SCHEDULE_ID>
        in: path
  /projects/{projectId}/stages:
    get:
      summary: List stages
      operationId: projectsListStages
      tags:
      - projects
      description: 'Get the onboarding stages for the current project, including each stage’s SDK method key and status (for example pending, completed, or skipped).

        '
      responses:
        '200':
          description: Stages List
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/stageList'
      deprecated: false
      x-appwrite:
        group: stages
        demo: projects/list-stages.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: stages.read
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
  /projects/{projectId}/stages/{stageId}:
    patch:
      summary: Update stage
      operationId: projectsUpdateStage
      tags:
      - projects
      description: 'Update an onboarding stage for the current project. Use this endpoint to skip a stage or leave it unchanged without performing the related API action.

        '
      responses:
        '200':
          description: Stage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/stage'
      deprecated: false
      x-appwrite:
        group: stages
        demo: projects/update-stage.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: stages.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      - name: stageId
        description: SDK method key (namespace.method).
        required: true
        schema:
          type: string
          example: <STAGE_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                skip:
                  description: Mark the stage as skipped.
                  type: boolean
                  default: true
                  example: false
  /projects/{projectId}/status:
    patch:
      summary: Update the status of a project
      operationId: projectsUpdateStatus
      tags:
      - projects
      description: 'Update the status of a project. Can be used to archive/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.

        '
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: null
        demo: projects/update-status.md
        rate-limit: 10
        rate-time: 3600
        rate-key: ip:{ip},userId:{userId}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project ID
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  description: New status for the project
                  type: string
                  example: active
                  title: Status
                  oneOf:
                  - type: string
                    enum:
                    - active
                    title: active
              required:
              - status
  /projects/{projectId}/team:
    patch:
      summary: Update project team
      operationId: projectsUpdateTeam
      tags:
      - projects
      description: Update the team ID of a project allowing for it to be transferred to another team.
      responses:
        '200':
          description: Project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/project'
      deprecated: false
      x-appwrite:
        group: projects
        demo: projects/update-team.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: projects.write
        platforms:
        - console
        packaging: false
        public: true
        auth:
          console:
            Project: []
      security:
      - Project: []
      parameters:
      - name: projectId
        description: Project unique ID.
        required: true
        schema:
          type: string
          example: <PROJECT_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                teamId:
                  description: Team ID of the team to transfer project to.
                  type: string
                  example: <TEAM_ID>
              required:
              - teamId
components:
  schemas:
    addon:
      description: Addon
      type: object
      properties:
        $id:
          type: string
          description: Addon ID.
          example: 5e5ea5c16897e
        $createdAt:
          type: string
          description: Addon creation time in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        $updatedAt:
          type: string
          description: Addon update date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        $permissions:
          type: array
          description: Addon permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
          items:
            type: string
          example:
          - read("any")
        key:
          type: string
          description: Addon key
          example: baa
        resourceType:
          type: string
          description: Resource type (organization or project)
          example: organization
        resourceId:
          type: string
          description: Resource ID
          example: 5e5ea5c16897e
        status:
          type: string
          description: 'Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).'
          example: active
        currentValue:
          type: integer
          description: 'Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.'
          format: int32
          example: 1
        nextValue:
          type: integer
          description: Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.
          format: int32
          nullable: true
      required:
      - $id
      - $createdAt
      - $updatedAt
      - $permissions
      - key
      - resourceType
      - resourceId
      - status
      - currentValue
      example:
        $id: 5e5ea5c16897e
        $createdAt: '2020-10-15T06:38:00.000+00:00'
        $updatedAt: '2020-10-15T06:38:00.000+00:00'
        $permissions:
        - read("any")
        key: baa
        resourceType: organization
        resourceId: 5e5ea5c16897e
        status: active
        currentValue: 1
        nextValue: null
    addonList:
      description: Addons list
      type: object
      properties:
        total:
          type: integer
          description: Total number of addons that matched your query.
          format: int32
          example: 5
        addons:
          type: array
          description: List of addons.
          items:
            $ref: '#/components/schemas/addon'
          example: []
      required:
      - total
      - addons
      example:
        total: 5
        addons: ''
    addonPrice:
      description: AddonPrice
      type: object
      properties:
        addonKey:
          type: string
          description: Addon key.
          example: baa
        name:
          type: string
          description: Addon display name.
          example: HIPAA BAA
        monthlyPrice:
          type: number
          description: Full monthly price of the addon.
          format: double
          example: 350
        proratedAmount:
          type: number
          description: Calculated prorated amount for the current billing cycle.
          format: double
          example: 175.5
        remainingDays:
          type: integer
          description: Days remaining in the current billing cycle.
          format: int32
          example: 15
        totalCycleDays:
          type: integer
          description: Total days in the billing cycle.
          format: int32
          example: 30
        currency:
          type: string
          description: Currency code.
          example: USD
        billingCycleEnd:
          type: string
          description: When the current billing cycle ends.
          example: '2024-02-01T00:00:00.000+00:00'
      required:
      - addonKey
      - name
      - monthlyPrice
      - proratedAmount
      - remainingDays
      - totalCycleDays
      - currency
      - billingCycleEnd
      example:
        addonKey: baa
        name: HIPAA BAA
        monthlyPrice: 350
        proratedAmount: 175.5
        remainingDays: 15
        totalCycleDays: 30
        currency: USD
        billingCycleEnd: '2024-02-01T00:00:00.000+00:00'
    billingLimits:
      description: Limits
      type: object
      properties:
        bandwidth:
          type: integer
          description: Bandwidth limit
          format: int32
          example: 5
          nullable: true
        storage:
          type: integer
          description: Storage limit
          format: int32
          example: 150
          nullable: true
        users:
          type: integer
          description: Users limit
          format: int32
          example: 200000
          nullable: true
        executions:
          type: integer
          description: Executions limit
          format: int32
          example: 750000
          nullable: true
        GBHours:
          type: integer
          description: GBHours limit
          format: int32
          example: 100
          nullable: true
        imageTransformations:
          type: integer
          description: Image transformations limit
          format: int32
          example: 100
          nullable: true
        authPhone:
          type: integer
          description: Auth phone limit
          format: int32
          example: 10
          nullable: true
        budgetLimit:
          type: integer
          description: Budget limit percentage
          format: int32
          example: 100
          nullable: true
      example:
        bandwidth: 5
        storage: 150
        users: 200000
        executions: 750000
        GBHours: 100
        imageTransformations: 100
        authPhone: 10
        budgetLimit: 100
    block:
      description: Block
      type: object
      properties:
        $createdAt:
          type: string
          description: Block creation date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        resourceType:
          type: string
          description: Resource type that is blocked
          example: project
        resourceId:
          type: string
          description: Resource identifier that is blocked
          example: 5e5ea5c16897e
        mode:
          type: string
          description: Block mode. full blocks reads and writes; readOnly blocks writes only.
          example: readOnly
        reason:
          type: string
          description: Reason for the block. Can be null if no reason was provided.
          example: Payment overdue
          nullable: true
        expiredAt:
          type: string
          description: Block expiration date in ISO 8601 format. Can be null if the

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