This repository contains the official Appwrite API specifications and SDK code examples for all supported versions.
specs/
{version}/
open-api3-{version}.json # 2.0.x and later: one document, all platforms
open-api3-{version}-{platform}.json # up to 1.9.x
swagger2-{version}-{platform}.json # up to 1.8.x
examples/
{version}/
{platform}-{sdk}/
examples/
{service}/
{method}.md
API specification files in Swagger 2.0 and OpenAPI 3.0 formats, organized by version. From 2.0.x there is one OpenAPI 3 document per version; each operation, method alias and security scheme lists the SDK platforms it is available on under x-appwrite.platforms. Older versions ship one document per platform:
- client - Client-side APIs (web, mobile)
- server - Server-side APIs (backend SDKs)
- console - Console APIs (Appwrite dashboard)
SDK code examples for each supported language, organized by version, platform, and SDK. Each example demonstrates how to call a specific API method using the corresponding Appwrite SDK.
| Version | Specs | Examples |
|---|---|---|
| latest | specs/latest | - |
| 1.9.x | specs/1.9.x | examples/1.9.x |
| 1.8.x | specs/1.8.x | examples/1.8.x |
| 1.7.x | specs/1.7.x | examples/1.7.x |
| 1.6.x | specs/1.6.x | examples/1.6.x |
| 1.5.x | specs/1.5.x | examples/1.5.x |
| 1.4.x | specs/1.4.x | examples/1.4.x |
| 1.3.x | specs/1.3.x | examples/1.3.x |
| 1.2.x | specs/1.2.x | examples/1.2.x |
| 1.1.x | specs/1.1.x | examples/1.1.x |
| 1.0.x | specs/1.0.x | examples/1.0.x |
| 0.15.x | specs/0.15.x | examples/0.15.x |
| 0.14.x | specs/0.14.x | examples/0.14.x |
| 0.13.x | specs/0.13.x | examples/0.13.x |
| 0.12.x | specs/0.12.x | examples/0.12.x |
| 0.11.x | specs/0.11.x | examples/0.11.x |
| 0.10.x | specs/0.10.x | examples/0.10.x |
| 0.9.x | specs/0.9.x | examples/0.9.x |
| 0.8.x | specs/0.8.x | examples/0.8.x |
| 0.7.x | specs/0.7.x | examples/0.7.x |
| 0.6.x | specs/0.6.x | examples/0.6.x |
You can use these specs with any OpenAPI-compatible tool. For example, to generate a client using OpenAPI Generator:
# Download the spec
curl -O https://raw.githubusercontent.com/appwrite/specs/main/specs/2.0.x/open-api3-2.0.x.json
# The document covers every platform. Keep the operations available to one of
# them (client, server or console) by filtering on x-appwrite.platforms.
jq --arg platform server '
.paths |= (map_values(with_entries(select(.value["x-appwrite"].platforms | index($platform))))
| with_entries(select(.value | length > 0)))
' open-api3-2.0.x.json > open-api3-2.0.x-server.json
# Generate a client
openapi-generator generate -i open-api3-2.0.x-server.json -g python -o ./sdkOr import directly into tools like Postman, Insomnia, or Swagger UI.
Each example file is a Markdown document showing how to call a specific API method. You can link to them directly from documentation or use them as reference when integrating with Appwrite.
Specs and examples are automatically generated from the appwrite/appwrite repository using the specs CLI task:
php app/cli.php specs --version=1.9.x --git=yes --message="Update specs for 1.9.x"This generates the API specification files, regenerates SDK examples for all supported languages, and creates a PR in this repository.
All contributions are welcome! If you find issues with the specs or examples, please open an issue or submit a pull request.
For more information on contributing to Appwrite, see the Contributing Guide.
For security issues, please email security@appwrite.io instead of posting a public issue on GitHub.
Join our growing community around the world! See our official Blog. Follow us on Twitter, Facebook Page, Facebook Group, Dev Community or join our live Discord server for more help, ideas, and discussions.
This repository is available under the BSD 3-Clause License.