Quick Deploy

POST /v1/applications/quick-deploy

The one-call deploy: create a static application, push its first deploy, and create + assign an agentless endpoint — all at once. Returns the application, the deploy, the endpoint, and the live HTTPS url. Use this for the common case; the granular endpoints exist for finer control.

Two request shapes are accepted. Send multipart/form-data with a file to deploy an uploaded .zip, or application/json with a repo_url to connect a git repo. Requires the application_hosting entitlement. Content is served as-is — upload built files with index.html at the publish-dir root (there is no build step).

Request body — upload (multipart/form-data)

name string
Required. Application name, unique within the account (1–255 chars).
file file (.zip)
Required. A .zip of your built static site. Max size is plan-limited (default 100 MB).
subdomain string
Optional. Desired subdomain for the endpoint; auto-generated when omitted.
wait boolean
Optional. When true, block up to 90s until the build is live before responding.

Request body — git (application/json)

name string
Required. Application name (1–255 chars).
repo_url string
Required. A github.com or gitlab.com repository URL.
branch string
Optional. Branch to deploy (default main).
git_token string
Optional. A GitHub PAT / GitLab token for private repos. Encrypted at rest.
subdomain string
Optional. Desired endpoint subdomain; auto-generated when omitted.
wait boolean
Optional. Block up to 90s for the first build to go live.

Response (201 Created)

application object
The created application (see Create Application).
deploy object
The first deploy, with its status (queuedready).
endpoint object
The agentless endpoint serving the app, including hostname / public_url.
url string
The ready-to-open https://… URL for the site.

Errors

207 Multi-Status
The app + deploy succeeded but endpoint creation failed; retry endpoint creation separately.
403 Forbidden
application_hosting not on your plan, or an application/quota limit was hit.
409 Conflict
An application with that name already exists.
413 / 507
Upload exceeds the size limit (413) or object storage is not configured (507).
Request — upload
curl -X POST "https://api.ngris.com/v1/applications/quick-deploy" \ -H "X-API-KEY: <your_api_key>" \ -F "name=my-site" \ -F "file=@dist.zip" \ -F "wait=true"
Request — git
curl -X POST "https://api.ngris.com/v1/applications/quick-deploy" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{ "name": "my-site", "repo_url": "https://github.com/acme/site", "branch": "main" }'
Response — 201 Created
{ "application": { "uuid": "a1b2…", "name": "my-site", "source": "upload", "type": "static" }, "deploy": { "uuid": "d3e4…", "version": 1, "trigger_type": "upload", "status": "ready" }, "endpoint": { "uuid": "e5f6…", "hostname": "my-site.ngris.app", "public_url": "my-site.ngris.app", "serving_mode": "agentless" }, "url": "https://my-site.ngris.app" }
On this page
Quick Deploy
Iris