Start a project
Queue a start for a stopped project. Conflicting lifecycle transitions are rejected. A stopped app counts no memory against the plan, so a start needs its size free: otherwise HTTP 403 quota_exceeded with details.quota (resource memory, requested the app's size, free what the running apps and databases leave) and the message says to stop another app, make one smaller or upgrade. If the size changed while the app was stopped, it starts at the new size.
Queued work: send an idempotencyKey and reuse the same value when retrying this exact call.
Arguments
| Name | Type | Required | Limits |
|---|---|---|---|
projectId | string | Yes | At least 1 character(s) |
idempotencyKey | string | Yes | At least 1 character(s) |
Full input schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Unique request key. Reuse this exact value when retrying the same operation."
}
},
"required": [
"projectId",
"idempotencyKey"
],
"additionalProperties": false
}Example call
The params of a tools/call request. Replace the placeholder values with your own IDs.
{
"name": "startProject",
"arguments": {
"projectId": "REPLACE_WITH_PROJECT_ID",
"idempotencyKey": "REPLACE_WITH_IDEMPOTENCY_KEY"
}
} Result
The same data as the API operation, wrapped as {"untrusted_data": true, "source": "startProject", "note": "...", "data": ...} so the model treats project content as data, not instructions.