Moving from cPanel? Your whole site imports in one clickMoving from cPanel? One-click import
Developer tools

Public API

Drive Orizon programmatically — projects, deployments, logs, environment variables, databases and domains. The same API powers the CLI and the MCP server.

Base URL

shell
https://api.orizon.ng/api/v1

Authentication

Create a platform API key in the dashboard and send it as a Bearer token. Keys are org-scoped and either full (read + write) or read (GET only). The key looks like orz_pk_… and the secret is shown once — store it safely.

shell
curl https://api.orizon.ng/api/v1/projects \
  -H "Authorization: Bearer orz_pk_your_key_here"

Deploy a project

Trigger a build of the connected repository. Pass a branch, a specific commitSha, or a sourceTarballUrl (from the /uploads endpoint) to deploy local code.

shell
curl -X POST https://api.orizon.ng/api/v1/projects/proj_123/deployments \
  -H "Authorization: Bearer orz_pk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"branch":"main"}'

Tail deployment logs

shell
curl https://api.orizon.ng/api/v1/deployments/dep_123/logs \
  -H "Authorization: Bearer orz_pk_your_key_here"

Set environment variables

PUTreplaces the project's variables with the map you send and triggers a redeploy so the new values take effect.

shell
curl -X PUT https://api.orizon.ng/api/v1/projects/proj_123/env \
  -H "Authorization: Bearer orz_pk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"variables":{"NODE_ENV":"production","API_URL":"https://api.example.com"}}'

Endpoints

Every public-API endpoint, grouped by resource. This list is generated from the OpenAPI spec, so it always matches the live API. Endpoints marked (write) require a full key.

Projects

GET/projectsList the caller's Orizon projects (hosted apps/sites)
POST/projectsCreate a project (the container for a deployed app or site) (write)
GET/projects/{id}Get one project's full configuration and live URL
PATCH/projects/{id}Update mutable project settings (write)
GET/projects/{id}/static-routingGet static-site URL routing mode
PUT/projects/{id}/static-routingSet static-site URL routing mode (write)

GitHub

GET/github/installationsList this org's connected GitHub App installations

Deployments

GET/projects/{id}/deploymentsList a project's deployments / deploy history (newest first)
POST/projects/{id}/deploymentsDeploy a project — build and ship it live (write)
GET/deployments/{id}Get one deployment's status (is it live yet?)
GET/deployments/{id}/logsGet a deployment's build and runtime logs

Uploads

POST/uploadsUpload source (a zip) for an upload-only deploy (write)

Environment variables

GET/projects/{id}/envList a project's environment variables (names, not secrets)
PUT/projects/{id}/envSet environment variables / secrets for a project (write)

Managed databases

GET/databasesList managed databases
POST/databasesProvision a managed database (write)
GET/databases/{id}Get a managed database
DELETE/databases/{id}Delete a managed database (write)
POST/databases/{id}/stopStop a managed database (write)
POST/databases/{id}/startStart a managed database (write)
POST/databases/{id}/restartRestart a managed database (write)
GET/databases/{id}/statsGet live stats for a managed database
GET/databases/{id}/logsGet recent container logs for a managed database
POST/databases/{id}/usersAdd a connection user to a managed database (write)
DELETE/databases/{id}/users/{username}Remove a connection user from a managed database (write)

Domains

GET/projects/{id}/domainsList a project's domains
POST/projects/{id}/domainsAttach a custom domain to a project (write)
POST/projects/{id}/domains/{domain}/primarySet a project's primary (production) domain (write)
DELETE/projects/{id}/domains/{domain}Detach a domain from a project (write)
GET/projects/{id}/domains/{domain}/proxy-statusGet a domain's Cloudflare proxy status

Email

GET/emailsList recent transactional emails
POST/emailsSend a transactional email (write)

DNS zones

GET/dns/zonesList managed DNS zones
POST/dns/zonesCreate a managed DNS zone (write)
GET/dns/zones/{id}Get a managed DNS zone
DELETE/dns/zones/{id}Delete a managed DNS zone (write)

DNS records

GET/dns/zones/{id}/recordsList DNS records in a zone
POST/dns/zones/{id}/recordsCreate a DNS record (write)
PUT/dns/zones/{id}/records/{recordId}Update a DNS record (write)
DELETE/dns/zones/{id}/records/{recordId}Delete a DNS record (write)

CDN buckets

GET/cdn/bucketsList CDN storage buckets
POST/cdn/bucketsCreate a CDN storage bucket (write)
GET/cdn/buckets/{id}Get a CDN bucket
PATCH/cdn/buckets/{id}Update a CDN bucket (write)
DELETE/cdn/buckets/{id}Delete a CDN bucket (write)

CDN assets

GET/cdn/buckets/{id}/assetsList assets in a CDN bucket
POST/cdn/buckets/{id}/uploads/presignPresign a direct-to-R2 CDN upload (write)
POST/cdn/buckets/{id}/uploads/finalizeFinalize a direct-to-R2 CDN upload (write)
GET/cdn/assets/{id}Get a CDN asset
DELETE/cdn/assets/{id}Delete a CDN asset (write)
GET/cdn/assets/{id}/signed-urlGet a signed URL for a private CDN asset

CDN

GET/cdn/usageGet CDN usage totals + a daily window

CDN keys

GET/cdn/keysList CDN upload API keys
POST/cdn/keysCreate a CDN upload API key (write)
DELETE/cdn/keys/{id}Revoke a CDN upload API key (write)

Cron jobs

GET/cronList cron jobs
POST/cronCreate a cron job (write)
POST/cron/previewValidate a cron expression and preview its next runs
GET/cron/{id}Get a cron job
PATCH/cron/{id}Update a cron job (write)
DELETE/cron/{id}Delete a cron job (write)
POST/cron/{id}/runRun a cron job now (write)
GET/cron/{id}/runsList a cron job's run history

Environment groups

GET/env-groupsList environment-variable groups
POST/env-groupsCreate an environment-variable group (write)
GET/env-groups/{id}Get an environment-variable group
PATCH/env-groups/{id}Update an environment-variable group (write)
DELETE/env-groups/{id}Delete an environment-variable group (write)
POST/env-groups/{id}/varsSet a variable on an environment-variable group (write)
PUT/env-groups/{id}/vars/{name}Update a variable on an environment-variable group (write)
DELETE/env-groups/{id}/vars/{name}Delete a variable from an environment-variable group (write)
GET/projects/{id}/env-groupsList a project's environment-variable groups
POST/projects/{id}/env-groupsAttach an environment-variable group to a project (write)
DELETE/projects/{id}/env-groups/{groupId}Detach an environment-variable group from a project (write)

files

GET/projects/{id}/filesList a directory in a project's source tree
GET/projects/{id}/files/contentRead a file's contents
PUT/projects/{id}/files/contentWrite (create or overwrite) a file (write)
DELETE/projects/{id}/files/contentDelete a file or directory (write)
POST/projects/{id}/files/directoriesCreate a directory (write)
POST/projects/{id}/files/moveMove or rename a file/directory (write)
GET/projects/{id}/files/searchSearch file contents
POST/projects/{id}/files/deployDeploy the edited source tree (write)

services

GET/projects/{id}/servicesList a project's running containers
POST/projects/{id}/services/{service}/{action}Start, stop or restart one container (write)
POST/projects/{id}/services/{service}/execRun a command inside one service's live container (write)

runs

GET/projects/{id}/runsList previous runs for a project
POST/projects/{id}/runsRun a one-off command against a project in an isolated sandbox (write)
GET/projects/{id}/runs/{runId}Get one run, including its full output
GET/runs/allowed-commandsList the commands create_project_run accepts

service_env

GET/projects/{id}/services/{service}/envList a compose service's own environment variables
PUT/projects/{id}/services/{service}/env/{name}Set one environment variable for a single compose service (write)
DELETE/projects/{id}/services/{service}/env/{name}Remove a service-scoped environment variable (write)
Rate limit20 requests/second per key. Exceeding it returns 429 with a Retry-After header. The full machine-readable spec lives at https://api.orizon.ng/api/v1/openapi.json. Agents can fetch the whole surface at once from /llms-api.txt.