Back to home
Connect a client

Create an application

Create an application from a repository, a completed source upload, or files sent here: files as [{path, content}] (base64 with encoding: "base64" for binary files) or a whole ZIP as base64 in archive, within the 1 MiB request limit, become the first source upload, and sending them also needs source:write. This requires an organisation key and an available project allowance. Environment variables, build arguments and build secrets sent here are in place for the first deploy; sending any of them also needs configuration:write. staticUnknownPaths decides what a static site serves for a path with no file: auto (the default) serves the home page for a single-page app and a 404 page for any other site, spa always serves the home page, not_found always returns a 404; a 404.html in the site is the 404 page. When the plan has no room (its project count, or the memory or storage the new app needs), it is refused with HTTP 403 quota_exceeded and details.quota naming the resource, used, limit, requested and free; this refusal used to come back as 403 forbidden.

Queued work: send an idempotencyKey and reuse the same value when retrying this exact call.

Arguments

NameTypeRequiredLimits
namestringYesAt least 1 character(s)
descriptionstringNoSee schema
frameworkstringNoSee schema
repositoryUrlstringNoSee schema
branchstringNoSee schema
githubInstallationIdintegerNoMinimum 1
rootDirectorystringNoSee schema
buildTypestringNoSee schema
installCommandstringNoSee schema
buildCommandstringNoSee schema
startCommandstringNoSee schema
outputDirectorystringNoSee schema
healthCheckPathstringNoSee schema
dockerfilePathstringNoSee schema
dockerContextPathstringNoSee schema
dockerBuildStagestringNoSee schema
staticUnknownPaths"auto" | "spa" | "not_found"NoSee schema
sourceType"github" | "upload"NoSee schema
sourceUploadIdstringNoAt least 1 character(s)
frameworkPortintegerNoSee schema
runtimeIntentstringNoSee schema
autoDeployOnCreatebooleanNoSee schema
envVarsobject[]NoSee schema
dockerBuildArgsstringNoSee schema
dockerBuildSecretsstringNoSee schema
filesobject[]NoSee schema
archivestringNoAt least 1 character(s)
idempotencyKeystringYesAt least 1 character(s)
Full input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "framework": {
      "type": "string"
    },
    "repositoryUrl": {
      "type": "string"
    },
    "branch": {
      "type": "string"
    },
    "githubInstallationId": {
      "type": "integer",
      "minimum": 1
    },
    "rootDirectory": {
      "type": "string"
    },
    "buildType": {
      "type": "string"
    },
    "installCommand": {
      "type": "string"
    },
    "buildCommand": {
      "type": "string"
    },
    "startCommand": {
      "type": "string"
    },
    "outputDirectory": {
      "type": "string"
    },
    "healthCheckPath": {
      "type": "string"
    },
    "dockerfilePath": {
      "type": "string"
    },
    "dockerContextPath": {
      "type": "string"
    },
    "dockerBuildStage": {
      "type": "string"
    },
    "staticUnknownPaths": {
      "type": "string",
      "enum": [
        "auto",
        "spa",
        "not_found"
      ]
    },
    "sourceType": {
      "type": "string",
      "enum": [
        "github",
        "upload"
      ]
    },
    "sourceUploadId": {
      "type": "string",
      "minLength": 1
    },
    "frameworkPort": {
      "type": "integer"
    },
    "runtimeIntent": {
      "type": "string"
    },
    "autoDeployOnCreate": {
      "type": "boolean"
    },
    "envVars": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string"
          },
          "isSecret": {
            "type": "boolean"
          }
        },
        "required": [
          "key",
          "value"
        ],
        "additionalProperties": false
      }
    },
    "dockerBuildArgs": {
      "type": "string"
    },
    "dockerBuildSecrets": {
      "type": "string"
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1
          },
          "content": {
            "type": "string"
          },
          "encoding": {
            "type": "string",
            "enum": [
              "utf8",
              "base64"
            ]
          }
        },
        "required": [
          "path",
          "content"
        ],
        "additionalProperties": false
      }
    },
    "archive": {
      "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": [
    "name",
    "idempotencyKey"
  ],
  "additionalProperties": false
}

Example call

The params of a tools/call request. Replace the placeholder values with your own IDs.

{
  "name": "createApplicationProject",
  "arguments": {
    "name": "example-app",
    "idempotencyKey": "REPLACE_WITH_IDEMPOTENCY_KEY"
  }
}

Result

The same data as the API operation, wrapped as {"untrusted_data": true, "source": "createApplicationProject", "note": "...", "data": ...} so the model treats project content as data, not instructions.