Apply one Paid customer-owned hostname

Requires Paid access (a Stripe period or a grant) or, for a Free workspace, a project that currently shows the powered-by flag, and no expired credit-exhaustion grace. Returns paid_plan_required otherwise, or insufficient_organization_credits after seven days with no available credits, without provider mutation. Top-ups lift a credit-exhaustion block but never start or extend Paid access. Without an active Prod deployment, apply declares the hostname as awaiting_deployment, enabling Cloudflare consent without provider resources, DNS changes or domain charges. After a successful Prod deployment, replay the same hostname and idempotency key to activate it. A changed request under a used key returns idempotency_key_reused (409).

put/v1/projects/{project_id}/paid-domain

Request

  • Base URL: https://app.ohmyho.st
  • URL: https://app.ohmyho.st/v1/projects/{project_id}/paid-domain
  • Auth: HTTP bearer

Path parameters

project_idstring required

Project identifier.

Headers

X-Request-Idstring

Optional caller-provided correlation identifier.

Idempotency-Keystring required

Identifies one mutation and its canonical request payload.

Request body

hostnamestring required

Response

Declared hostname or current Cloudflare for SaaS hostname and certificate state.

status'not_configured' | 'awaiting_deployment' | 'pending' | 'active' | 'reconciliation_required' | 'deleted' | 'suspended' required
suspension_reason'paid_plan_required' | 'insufficient_organization_credits' | 'project_budget_exceeded' | 'null' nullable required

Non-null only while suspended by the same Paid, credit-grace or stop-budget policy used by the gateway. DNS/TLS receipts remain intact; url is null while suspended.

hostnamestring nullable required
environment'prod' required
cname_target'customers.omh.st' | 'customers.ohmyho.st' required
custom_hostname_statusstring nullable required
ssl_statusstring nullable required
urlstring uri nullable required

Changes

No recorded changes to this operation across all 1 revision of this API.