Configuring a project has always meant working through the Appwrite Console: toggling auth methods, pasting OAuth credentials, registering platforms, and setting up SMTP one screen at a time. For a single project, that is fine. For teams managing several environments, onboarding new projects, or rebuilding a configuration from scratch, repeating those steps by hand becomes a bottleneck.
Today, we are announcing the Projects API, which lets you configure and read every project setting programmatically through the Appwrite Server SDKs.
This is part of a wider effort to make everything in Appwrite accessible through the API. Our goal is to ensure that any action you can perform in the Appwrite Console can also be done programmatically, giving you full control over your projects through code.
Why this matters
A project's configuration is the foundation every other resource sits on. Which auth methods are enabled, which platforms can connect, how email is delivered: these decisions shape how your app behaves. This matters most for partners: agencies, consultancies, and platforms that manage Appwrite projects on behalf of their clients, where every new client means another project to set up and keep consistent. Managing configuration from code opens up workflows that were previously manual:
- Reproducible environments where development, staging, and production projects are configured from the same script
- Project provisioning that sets up auth, platforms, and policies for a new project in one run
- Multi-tenant platforms that configure a project per customer without Console access
- Partner workflows, where agencies, consultancies, and other teams that build for clients provision and manage projects at scale without clicking through the Console for each one
- Configuration in version control, so changes to a project are reviewed and tracked like any other code
What you can configure
The Projects API covers the full surface of project settings, grouped into a few areas:
- Authentication: enable or disable auth methods, configure OAuth2 providers, and set password and session policies.
- Access: create and manage API keys, register platforms, and toggle protocols and services.
- Email: configure a custom SMTP server, customize email templates, and send test emails.
- Project: manage environment variables, register mock phone numbers for testing, assign labels, and read the full configuration with
project.get.
How it works
Every operation lives on the Project service. Initialize a Server SDK with an API key, then call the settings you need. For example, registering a web platform that is allowed to call your project:
import { Client, Project, ID } from 'node-appwrite';
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1')
.setProject('<PROJECT_ID>')
.setKey('<YOUR_API_KEY>');
const project = new Project(client);
const result = await project.createWebPlatform({
platformId: ID.unique(),
name: 'My Web App',
hostname: 'app.example.com'
});
Or controlling which API protocols clients can use to reach your project, for example enabling REST:
import { Client, Project, ProjectProtocolId } from 'node-appwrite';
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1')
.setProject('<PROJECT_ID>')
.setKey('<YOUR_API_KEY>');
const project = new Project(client);
const result = await project.updateProtocol({
protocolId: ProjectProtocolId.Rest,
enabled: true
});
Every setting maps to a method on the Project service, available across all Server SDKs with the matching object or named parameters.
Get started
The Projects API is available on Appwrite Cloud today, across all Appwrite Server SDKs, including Node.js, Python, PHP, Ruby, .NET, Dart, Kotlin, Java, Swift, Go, and Rust, as well as the Appwrite CLI.
- Create an API key with the scopes for the settings you want to manage.
- Initialize a Server SDK with your API key.
- Use the
Projectservice to configure your project from code.






