> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

## `brevo app upload` replaces `brevo app update`

Push `app-config.json` to Brevo with `brevo app upload`. It fetches your app's current state, shows a local-vs-server diff, and asks you to confirm before pushing anything. No differences means no network call.

* Edit the field you want to change in `app-config.json` — name, redirect URLs, scopes, logo — then run `brevo app upload`. The old `--name`, `--redirect-uri`, `--scope`, `--logo-uri`, and `--app-id` flags are gone.
* `app-config.json` also has a cleaner shape: `auth.redirectUrls` is now `auth.redirectUris`, `distribution` is now `distribution_type`, and there's a new read-only `version`. Existing files keep working and migrate automatically the next time a command writes them.
* `brevo app update` still runs, but only to point you to `brevo app upload` — it no longer changes anything.

Read the docs

## Recover a project with `brevo app scaffold`

Lost your project folder, or setting up on a new machine? `brevo app scaffold --app-id <id>` sets an empty directory up for an app you already have, picking up where `brevo app update --app-id` left off. Leave off the ID and it offers to pick from your apps interactively.

Read the docs

## `brevo app create` asks separately before scaffolding

`brevo app create` now writes your app's base project first, then asks **"Scaffold the Test OAuth App?"**. Decline to stay base-only and add the OAuth test server later with `brevo app scaffold`. Non-interactive runs always stay base-only.

Read the docs