---
title: "Report Cli Project Ready"
method: POST
path: "/v1/projects/{project_id}/setup-progress/{setup_attempt_id}/project-ready/"
tags: ["Projects"]
---

# Report Cli Project Ready

`POST /v1/projects/{project_id}/setup-progress/{setup_attempt_id}/project-ready/`

## Request

- Base URL: `https://logfire-api.pydantic.dev/api`
- URL: `https://logfire-api.pydantic.dev/api/v1/projects/{project_id}/setup-progress/{setup_attempt_id}/project-ready/`
- Auth: OAuth 2
  - Authorization code: `api/oauth/authorize`
  - Token URL: `/api/oauth/token` scopes: `project:write_token`
- TypeScript: <https://skmtc.dev/pydantic/apis/pydantic-logfire-api/docs/v1/projects/:project_id/setup-progress/:setup_attempt_id/project-ready/post.ts> (a function with typed inputs; its response is checked against the schema)

Report that the CLI prepared this project. This client report does not verify data ingestion.

Requires a user OAuth session and the caller's current browser-created setup attempt.
Duplicate reports preserve the first timestamp and version. Attempts expire after 24 hours.

## Path parameters

- `setup_attempt_id` string, uuid, required
- `project_id` string, uuid, required

## Request body

- CliProjectReadyReport
  - `cli_version` string, required

## Response `200`

Successful Response

- CliSetupProgress
  - `setup_attempt_id` string, uuid, required
  - `task` 'instrumentation' | 'infrastructure' | 'hosts' | 'docker' | 'kubernetes' | 'gateway' | 'evals', required
  - `started_at` string, date-time, required
  - `project_ready_at` string, date-time, nullable, required
  - `cli_version` string, nullable, required

## Other responses

- `422`: Validation Error
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/pydantic/apis/pydantic-logfire-api.md) - [All operations](https://skmtc.dev/pydantic/apis/pydantic-logfire-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pydantic/apis/pydantic-logfire-api/revisions/7996e45256f4?raw)
