Create a project
create_projectCreate and deploy a project. With serviceId: deploy into that existing service (the same as a deploy). Without serviceId: store the archive (the uploadId of an upload made without a serviceId, or archive as base64 under 1 MiB), analyse it, quote the cheapest server that fits, create the order and return actionId and approveUrl (also mailed to the person; one hour): the person opens it, sees the whole order (server, cost, card) and pays with one click; nothing is charged without that click. domain takes a name found available: the page offers it outside the total and the person adds it with one click (domainNote in the answer says when it could not be offered, or was offered before the registry answered). Once paid, the project deploys on the new server by itself. A partner account can instead have the client pay: payer client with clientEmail and secrets with a value for each secret the project declares; nothing is minted for the partner, the client gets a signup and payment link by mail and pays the regular price in their own account, and the answer carries inviteId. This fits only when the pre-flight needs list has a payer entry. An active partner with servers for client sites (services of kind host) can put the new site on one: hostId with the host's id puts it there for the site fee alone (the answer's mode is on-host and names the server's fit), hostId new buys a server of its own; left out, the site goes where the website's order form would put it. A full server refuses.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>"
},
"name": "create_project"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | the project name shown on the dashboard | |
| payer | No | who pays for a new site: self (default, the person approves and pays) or client (a partner sends the client a signup and payment link) | |
| domain | No | a full name: one found available (offered on the approval page, added with one click, never charged without it), or one the account already holds (heldDomains), which rides the order for free and points at the new server after its first deploy | |
| hostId | No | partner hosts only: the id of one of the account's services of kind host, or new for a server of its own; left out, the best-fitting host with room, else a new server | |
| archive | No | ||
| secrets | No | payer client only: a value for each secret the project declares (handsome.json secrets), by name; never echoed back | |
| uploadId | No | ||
| mailboxes | No | optional: the mailbox names at the site's domain the person chose, up to five, such as info or sales; [] for none; left out, info is set up | |
| preflight | No | the pre-flight report of the checks run on the person's machine; required: the call refuses without a passing one | |
| serviceId | No | the id of a service on this account | |
| clientEmail | No | payer client only: the client's address |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| data | No | ||
| error | No |