Replace project

Moves an app to a project.

PUT /v1/platform/apps/{app}/project

Addresshttps://api.hanzo.ai/v1/platform/apps/{app}/project
MethodPUT
Operationput_platform_apps_by_app_project
AuthAuthorization: Bearer $HANZO_API_KEY

Moves an app to a project.

It sets the declaration's partOf — in its cluster overlay when the overlay sets the key, else in its values file — and nothing else. Naming a project nothing names yet creates it. org is the values directory the app lives in; mode as for create.

Request

5 fields, body application/json (required).

FieldInTypeRequiredDescription
apppathstringyesApp is the declaration's name, from the path.
appbodystring—App is the declaration's name, from the path.
modebodystring—Mode is branch (the default) or commit.
orgbodystring—Org is the values directory the app lives in, defaulting to the caller's own org.
partOfbodystring—PartOf is the project to move it to.

Response

StatusBodyMeaning
200platform.projectWriteok
defaultproblem-detailsrefused

200 body — 11 fields.

FieldInTypeAlwaysDescription
commitbodystring—Commit is the sha the change created, "" when nothing had to move.
livebodyboolean—Live says whether the generator will see it: true only on main.
modebodystring—Mode is branch (a review; nothing deploys) or commit (main).
movedbodyplatform.relabel[]—Moved are the declarations whose partOf moved, and from what.
moved[].frombodystring—
moved[].namebodystring—
moved[].orgbodystring—
moved[].tobodystring—
projectbodystring—Project is the project the change leaves the moved apps in.
refbodystring—Ref is the branch the change was pushed to, main for a commit.
reviewbodystring—Review is where to open the pull request for a branch.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

import { Configuration, PlatformApi } from 'hanzoai';

const api = new PlatformApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putPlatformAppsByAppProject({ app: 'app', app: "<app>", mode: "<mode>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import PlatformApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = PlatformApi(client).put_platform_apps_by_app_project(app='app', app="<app>", mode="<mode>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.PlatformAPI.PutPlatformAppsByAppProject(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, platform_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = platform_api::put_platform_apps_by_app_project(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PlatformApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new PlatformApi(client).putPlatformAppsByAppProject();
curl -X PUT https://api.hanzo.ai/v1/platform/apps/<app>/project \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "app": "<app>",
       "mode": "<mode>"
     }'

MCP reaches platform through the platform tool, which names its 38 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_build"
         }
       }
     }'

Platform API · All Hanzo APIs · Interactive reference

Was this page useful?