Docs

Get claim status

GET
/projects/{project_id}/claim/status

Polled by the CLI while a browser completes the claim. Authorized by the project secret that initiated the challenge. Returns pending, or completed with the owning team, the claim timestamp, and the dashboard URL once the project is claimed. The claim grant, not the polled challenge, is the source of truth: a project claimed through another concurrent challenge also reports completed, and a completed claim keeps reporting completed past this challenge's expiry and past the project's claim window.

Authorization

oauth2 project.write
headerAuthorizationBearer <token>

Scope: project.write

Path Parameters

project_id*string

The unique identifier of the project.

Match^[a-zA-Z0-9_-]+$

Query Parameters

challenge_id*string

The challenge minted by the matching claim init, as the claim URL carries it.

Match^ch_[a-zA-Z0-9_-]+$

Response Body

Claim status.

application/json
  1. response

A claim challenge that is still awaiting the browser leg.

status*"pending"

The claim has not completed yet.

Value in"pending"
Example Request
import { createZitadelClient } from "@zitadel/api/client";const client = createZitadelClient({  baseUrl: process.env.ZITADEL_URL ?? "http://localhost:8080",  token: process.env.ZITADEL_PROJECT_SECRET!, // server-side only});const claimStatus = await client.getClaimStatus(  "proj_01KWH1P4MYS7F0N9WD3P2E4YM5",  { challenge_id: "ch_01J0Z9KX7Y0Q2Y7JX5M9K2YF3C" },);
Example Response
{  "status": "pending"}

Was this helpful?