Logout deploy

Ends the console session on this host.

POST /v1/deploy/logout

Addresshttps://api.hanzo.ai/v1/deploy/logout
MethodPOST
Operationpost_deploy_logout
AuthAuthorization: Bearer $HANZO_API_KEY

Ends the console session on this host.

It clears this console's session cookie and answers the signed-out state with the sign-in URL to start again. IAM's own session is untouched — this ends the console session only, so signing back in may not prompt for credentials.

It is a POST because it CHANGES STATE. As a GET it was reachable by a cross-site top-level navigation, which a SameSite=Lax cookie still rides, so any page could sign a SuperAdmin out; a POST is not carried cross-site by that cookie. It reads no request body and takes no argument: the session it ends is the one the request already carries.

Request

The document declares no body for POST /v1/deploy/logout. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's describe for post_deploy_logout, which answers from the running route.

Response

StatusBodyMeaning
200deploy.sessionEndedok
defaultproblem-detailsrefused

200 body — 2 fields.

FieldInTypeAlwaysDescription
loggedInbodyboolean—LoggedIn is always false — this is the answer to having just signed out, so it states the resulting session state rather than reporting the request's outcome.
loginUrlbodystring—LoginURL is where to sign in again.

Failure carries the platform error shape — see Errors.

Examples

hanzo deploy logout
import { Configuration, DeployApi } from 'hanzoai';

const api = new DeployApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postDeployLogout();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DeployApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DeployApi(client).post_deploy_logout()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

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

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

let result = deploy_api::post_deploy_logout(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DeployApi;

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

var result = new DeployApi(client).postDeployLogout();
curl -X POST https://api.hanzo.ai/v1/deploy/logout \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches deploy through the deploy tool, which names its 11 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": "list_deploy_applications"
         }
       }
     }'

Deploy API · All Hanzo APIs · Interactive reference

Was this page useful?