Skip to content
Blog / Announcing the Projects API: Configure your project with Server SDKs
5 min

Announcing the Projects API: Configure your project with Server SDKs

Every project setting, from auth methods and OAuth providers to SMTP and labels, can now be configured programmatically through the Appwrite Server SDKs.

Announcing the Projects API: Configure your project with Server SDKs

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:

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.

  1. Create an API key with the scopes for the settings you want to manage.
  2. Initialize a Server SDK with your API key.
  3. Use the Project service to configure your project from code.

Resources

Frequently asked questions

  • What is the Appwrite Projects API?

    It is a set of endpoints on the Project service that let you configure and read a project's settings programmatically from any Appwrite Server SDK. Previously, settings like auth methods, OAuth providers, and SMTP could only be changed through the Appwrite Console.

  • What can I configure with the Projects API?

    Auth methods, OAuth2 providers, API keys, platforms, protocols, services, password and session policies, environment variables, custom SMTP, email templates, mock phone numbers, and project labels. You can also read the full project configuration with project.get.

  • What does the Projects API require?

    An API key with the relevant scopes. Reading the project uses project.read, most configuration uses project.write, and some resources have dedicated scopes such as platforms.write, templates.write, or keys.write. These keys are server-side credentials, so keep them out of client applications.

  • How is the Projects API different from the Console?

    It exposes the same project settings as the Console through code. Anything you configure by clicking through the Console you can now script, version, and review, which makes project setup repeatable across environments.

  • Which SDKs support the Projects API?

    All Appwrite Server SDKs, including Node.js, Python, PHP, Ruby, .NET, Dart, Kotlin, Java, Swift, Go, and Rust, along with the Appwrite CLI. Per-language examples are in the Projects API documentation.

  • Can I create a project with the Projects API?

    The Projects API manages the settings of an existing project and reads it with project.get. Creating a project still happens in the Appwrite Console.

Start building with Appwrite today