Appwrite Project API
The Project service allows you to manage all the projects in your Appwrite server. 109 operations across 97 paths in the Appwrite 2.0.0 OpenAPI.
The Project service allows you to manage all the projects in your Appwrite server. 109 operations across 97 paths in the Appwrite 2.0.0 OpenAPI.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/appwrite-project-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.0.0
info:
title: Appwrite Project API
description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](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: project
description: The Project service allows you to manage all the projects in your Appwrite server.
paths:
/project:
get:
summary: Get project
operationId: projectGet
tags:
- project
description: Get a project.
responses:
'200':
description: Project
content:
? ''
: schema:
$ref: '#/components/schemas/project'
deprecated: false
x-appwrite:
group: null
demo: project/get.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: project.read
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
delete:
summary: Delete project
operationId: projectDelete
tags:
- project
description: Delete a project.
responses:
'204':
description: No content
deprecated: false
x-appwrite:
group: null
demo: project/delete.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: project.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
/project/auth-methods/{methodId}:
patch:
summary: Update project auth method status
operationId: projectUpdateAuthMethod
tags:
- project
description: 'Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. '
responses:
'200':
description: Project
content:
application/json:
schema:
$ref: '#/components/schemas/project'
deprecated: false
x-appwrite:
group: null
demo: project/update-auth-method.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: project.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: methodId
description: 'Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone'
required: true
schema:
type: string
example: email-password
title: ProjectAuthMethodId
oneOf:
- type: string
enum:
- email-password
title: email-password
- type: string
enum:
- magic-url
title: magic-url
- type: string
enum:
- email-otp
title: email-otp
- type: string
enum:
- anonymous
title: anonymous
- type: string
enum:
- invites
title: invites
- type: string
enum:
- jwt
title: jwt
- type: string
enum:
- phone
title: phone
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
enabled:
description: Auth method status.
type: boolean
example: false
required:
- enabled
/project/keys:
get:
summary: List project keys
operationId: projectListKeys
tags:
- project
description: Get a list of all API keys from the current project.
responses:
'200':
description: API Keys List
content:
application/json:
schema:
$ref: '#/components/schemas/keyList'
deprecated: false
x-appwrite:
group: keys
demo: project/list-keys.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: keys.read
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
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: expire, accessedAt, name, scopes'
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 project key
operationId: projectCreateKey
tags:
- project
description: 'Create a new API key. It''s recommended to have multiple API keys with strict scopes for separate functions within your project.
You can also create an ephemeral API key if you need a short-lived key instead.'
responses:
'201':
description: Key
content:
application/json:
schema:
$ref: '#/components/schemas/key'
deprecated: false
x-appwrite:
group: keys
demo: project/create-key.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: keys.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
keyId:
description: Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
type: string
example: <KEY_ID>
x-appwrite:
idGenerator: ID.unique
name:
description: 'Key name. Max length: 128 chars.'
type: string
example: <NAME>
scopes:
description: Key scopes list. Maximum of 200 scopes are allowed.
type: array
items:
title: ProjectKeyScopes
type: string
oneOf:
- type: string
enum:
- project.read
title: project.read
- type: string
enum:
- project.write
title: project.write
- type: string
enum:
- usage.read
title: usage.read
- type: string
enum:
- keys.read
title: keys.read
- type: string
enum:
- keys.write
title: keys.write
- type: string
enum:
- platforms.read
title: platforms.read
- type: string
enum:
- platforms.write
title: platforms.write
- type: string
enum:
- mocks.read
title: mocks.read
- type: string
enum:
- mocks.write
title: mocks.write
- type: string
enum:
- policies.read
title: policies.read
- type: string
enum:
- policies.write
title: policies.write
- type: string
enum:
- project.policies.read
title: project.policies.read
- type: string
enum:
- project.policies.write
title: project.policies.write
- type: string
enum:
- project.oauth2.read
title: project.oauth2.read
- type: string
enum:
- project.oauth2.write
title: project.oauth2.write
- type: string
enum:
- templates.read
title: templates.read
- type: string
enum:
- templates.write
title: templates.write
- type: string
enum:
- stages.read
title: stages.read
- type: string
enum:
- stages.write
title: stages.write
- type: string
enum:
- users.read
title: users.read
- type: string
enum:
- users.write
title: users.write
- type: string
enum:
- sessions.read
title: sessions.read
- type: string
enum:
- sessions.write
title: sessions.write
- type: string
enum:
- teams.read
title: teams.read
- type: string
enum:
- teams.write
title: teams.write
- type: string
enum:
- databases.read
title: databases.read
- type: string
enum:
- databases.write
title: databases.write
- type: string
enum:
- tables.read
title: tables.read
- type: string
enum:
- tables.write
title: tables.write
- type: string
enum:
- columns.read
title: columns.read
- type: string
enum:
- columns.write
title: columns.write
- type: string
enum:
- indexes.read
title: indexes.read
- type: string
enum:
- indexes.write
title: indexes.write
- type: string
enum:
- rows.read
title: rows.read
- type: string
enum:
- rows.write
title: rows.write
- type: string
enum:
- embeddings.write
title: embeddings.write
- type: string
enum:
- collections.read
title: collections.read
- type: string
enum:
- collections.write
title: collections.write
- type: string
enum:
- attributes.read
title: attributes.read
- type: string
enum:
- attributes.write
title: attributes.write
- type: string
enum:
- documents.read
title: documents.read
- type: string
enum:
- documents.write
title: documents.write
- type: string
enum:
- documentsdb.read
title: documentsdb.read
- type: string
enum:
- documentsdb.write
title: documentsdb.write
- type: string
enum:
- documentsdb.collections.read
title: documentsdb.collections.read
- type: string
enum:
- documentsdb.collections.write
title: documentsdb.collections.write
- type: string
enum:
- documentsdb.documents.read
title: documentsdb.documents.read
- type: string
enum:
- documentsdb.documents.write
title: documentsdb.documents.write
- type: string
enum:
- documentsdb.indexes.read
title: documentsdb.indexes.read
- type: string
enum:
- documentsdb.indexes.write
title: documentsdb.indexes.write
- type: string
enum:
- vectorsdb.read
title: vectorsdb.read
- type: string
enum:
- vectorsdb.write
title: vectorsdb.write
- type: string
enum:
- vectorsdb.collections.read
title: vectorsdb.collections.read
- type: string
enum:
- vectorsdb.collections.write
title: vectorsdb.collections.write
- type: string
enum:
- vectorsdb.documents.read
title: vectorsdb.documents.read
- type: string
enum:
- vectorsdb.documents.write
title: vectorsdb.documents.write
- type: string
enum:
- vectorsdb.indexes.read
title: vectorsdb.indexes.read
- type: string
enum:
- vectorsdb.indexes.write
title: vectorsdb.indexes.write
- type: string
enum:
- buckets.read
title: buckets.read
- type: string
enum:
- buckets.write
title: buckets.write
- type: string
enum:
- files.read
title: files.read
- type: string
enum:
- files.write
title: files.write
- type: string
enum:
- tokens.read
title: tokens.read
- type: string
enum:
- tokens.write
title: tokens.write
- type: string
enum:
- functions.read
title: functions.read
- type: string
enum:
- functions.write
title: functions.write
- type: string
enum:
- executions.read
title: executions.read
- type: string
enum:
- executions.write
title: executions.write
- type: string
enum:
- execution.read
title: execution.read
- type: string
enum:
- execution.write
title: execution.write
- type: string
enum:
- sites.read
title: sites.read
- type: string
enum:
- sites.write
title: sites.write
- type: string
enum:
- log.read
title: log.read
- type: string
enum:
- log.write
title: log.write
- type: string
enum:
- providers.read
title: providers.read
- type: string
enum:
- providers.write
title: providers.write
- type: string
enum:
- topics.read
title: topics.read
- type: string
enum:
- topics.write
title: topics.write
- type: string
enum:
- subscribers.read
title: subscribers.read
- type: string
enum:
- subscribers.write
title: subscribers.write
- type: string
enum:
- targets.read
title: targets.read
- type: string
enum:
- targets.write
title: targets.write
- type: string
enum:
- messages.read
title: messages.read
- type: string
enum:
- messages.write
title: messages.write
- type: string
enum:
- rules.read
title: rules.read
- type: string
enum:
- rules.write
title: rules.write
- type: string
enum:
- webhooks.read
title: webhooks.read
- type: string
enum:
- webhooks.write
title: webhooks.write
- type: string
enum:
- locale.read
title: locale.read
- type: string
enum:
- avatars.read
title: avatars.read
- type: string
enum:
- health.read
title: health.read
- type: string
enum:
- assistant.read
title: assistant.read
- type: string
enum:
- migrations.read
title: migrations.read
- type: string
enum:
- migrations.write
title: migrations.write
- type: string
enum:
- schedules.read
title: schedules.read
- type: string
enum:
- schedules.write
title: schedules.write
- type: string
enum:
- vcs.read
title: vcs.read
- type: string
enum:
- vcs.write
title: vcs.write
- type: string
enum:
- insights.read
title: insights.read
- type: string
enum:
- insights.write
title: insights.write
- type: string
enum:
- reports.read
title: reports.read
- type: string
enum:
- reports.write
title: reports.write
- type: string
enum:
- presences.read
title: presences.read
- type: string
enum:
- presences.write
title: presences.write
- type: string
enum:
- backups.policies.read
title: backups.policies.read
- type: string
enum:
- backups.policies.write
title: backups.policies.write
- type: string
enum:
- archives.read
title: archives.read
- type: string
enum:
- archives.write
title: archives.write
- type: string
enum:
- restorations.read
title: restorations.read
- type: string
enum:
- restorations.write
title: restorations.write
- type: string
enum:
- domains.read
title: domains.read
- type: string
enum:
- domains.write
title: domains.write
- type: string
enum:
- wafRules.read
title: wafRules.read
- type: string
enum:
- wafRules.write
title: wafRules.write
- type: string
enum:
- events.read
title: events.read
- type: string
enum:
- proxy.invalidations.write
title: proxy.invalidations.write
- type: string
enum:
- apps.read
title: apps.read
- type: string
enum:
- apps.write
title: apps.write
- type: string
enum:
- oauth2.read
title: oauth2.read
- type: string
enum:
- oauth2.write
title: oauth2.write
- type: string
enum:
- oauth2.introspect
title: oauth2.introspect
expire:
description: Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.
type: string
example: '2020-10-15T06:38:00.000+00:00'
format: datetime
nullable: true
required:
- keyId
- name
- scopes
/project/keys/ephemeral:
post:
summary: Create ephemeral project key
operationId: projectCreateEphemeralKey
tags:
- project
description: 'Create a new ephemeral API key. It''s recommended to have multiple API keys with strict scopes for separate functions within your project.
You can also create a standard API key if you need a longer-lived key instead.'
responses:
'201':
description: Ephemeral Key
content:
application/json:
schema:
$ref: '#/components/schemas/ephemeralKey'
deprecated: false
x-appwrite:
group: keys
demo: project/create-ephemeral-key.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: keys.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
scopes:
description: Key scopes list. Maximum of 200 scopes are allowed.
type: array
items:
title: ProjectKeyScopes
type: string
oneOf:
- type: string
enum:
- project.read
title: project.read
- type: string
enum:
- project.write
title: project.write
- type: string
enum:
- usage.read
title: usage.read
- type: string
enum:
- keys.read
title: keys.read
- type: string
enum:
- keys.write
title: keys.write
- type: string
enum:
- platforms.read
title: platforms.read
- type: string
enum:
- platforms.write
title: platforms.write
- type: string
enum:
- mocks.read
title: mocks.read
- type: string
enum:
- mocks.write
title: mocks.write
- type: string
enum:
- policies.read
title: policies.read
- type: string
enum:
- policies.write
title: policies.write
- type: string
enum:
- project.policies.read
title: project.policies.read
- type: string
enum:
- project.policies.write
title: project.policies.write
- type: string
enum:
- project.oauth2.read
title: project.oauth2.read
- type: string
enum:
- project.oauth2.write
title: project.oauth2.write
- type: string
enum:
- templates.read
title: templates.read
- type: string
enum:
- templates.write
title: templates.write
- type: string
enum:
- stages.read
title: stages.read
- type: string
enum:
- stages.write
title: stages.write
- type: string
enum:
- users.read
title: users.read
- type: string
enum:
- users.write
title: users.write
- type: string
enum:
- sessions.read
title: sessions.read
- type: string
enum:
- sessions.write
title: sessions.write
- type: string
enum:
- teams.read
title: teams.read
- type: string
enum:
- teams.write
title: teams.write
- type: string
enum:
- databases.read
title: databases.read
- type: string
enum:
- databases.write
title: databases.write
- type: string
enum:
- tables.read
title: tables.read
- type: string
enum:
- tables.write
title: tables.write
- type: string
enum:
- columns.read
title: columns.read
- type: string
enum:
- columns.write
title: columns.write
- type: string
enum:
- indexes.read
title: indexes.read
- type: string
enum:
# --- truncated at 32 KB (423 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-project-api-openapi.yml