---
title: "Start project-scoped Cloudflare DNS authorization"
method: POST
path: "/v1/projects/{project_id}/cloudflare-dns/authorization"
---

# Start project-scoped Cloudflare DNS authorization

`POST /v1/projects/{project_id}/cloudflare-dns/authorization`

## Request

- Base URL: `https://app.ohmyho.st`
- URL: `https://app.ohmyho.st/v1/projects/{project_id}/cloudflare-dns/authorization`
- Auth: HTTP bearer

Creates or replays one short-lived authorization URL for the customer Cloudflare zone bound to the project's Paid domain. Pending requests replay the original handoff. Expired or consumed requests return cloudflare_authorization_closed (409); read current DNS authorization status and reuse a valid matching grant, or request a fresh authorization with a new key. No provider credential is returned.

## Path parameters

- `project_id` string, required

## Headers

- `X-Request-Id` string
- `Idempotency-Key` string, required

## Request body

- CreateCloudflareDnsAuthorizationRequest
  - `zone` string, required

## Response `201`

A short-lived Cloudflare authorization URL.

- CloudflareDnsAuthorization: Short-lived credential-free redirect information for one Cloudflare OAuth authorization.
  - `authorization_id` string, required
  - `authorization_url` string, uri, required
  - `expires_at` string, date-time, required

## Other responses

- `400`: The request failed.
- `401`: The request failed.
- `403`: The request failed.
- `404`: The resource does not exist or is not visible to the authenticated principal.
- `409`: The request failed.
- `413`: The request failed.
- `429`: The request failed.
- `503`: The request failed.

---

[API](https://skmtc.dev/ohmyho/apis/ohmyho-st-api.md) · [All operations](https://skmtc.dev/ohmyho/apis/ohmyho-st-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ohmyho/apis/ohmyho-st-api/revisions/d069888c0017?raw)
