---
title: "Get a project"
method: GET
path: "/v1/projects/{projectId}"
tags: ["Projects"]
---

# Get a project

`GET /v1/projects/{projectId}`

## Request

- Base URL: `https://serp-agent.com`
- URL: `https://serp-agent.com/v1/projects/{projectId}`
- Auth: HTTP bearer

Project details including counts and the latest completed technical-audit summary (`latest_audit`, null when no audit has completed yet).

## Path parameters

- `projectId` string, required

## Response `200`

Project details.

- ProjectDetail: Project (with counts) plus latest_audit.
  - `project_id` string, required
  - `url` string, uri, required
  - `name` string, required
  - `status` 'setup' | 'running' | 'completed' | 'paused', required
  - `language` string, required
  - `country` string, required
  - `sandbox` boolean, required
  - `access` 'active' | 'pending_payment' | 'sandbox', required
  - `created_at` string, date-time, required
  - `counts` object, required
    - `keywords` integer
    - `articles` integer
    - `audits` integer
  - `latest_audit` LatestAudit, nullable, required: Latest COMPLETED technical audit, or null when none has completed.
    - `audit_id` string
    - `status` 'queued' | 'running' | 'completed' | 'failed'
    - `completed_at` string, date-time, nullable
    - `score` integer, nullable: Overall score 0–100.
    - `summary` AuditSummary: Summarized audit report — severity counts, top issues (grouped per check, capped at 10, worst first), and per-category scores.
      - `issues_critical` integer, required
      - `issues_warning` integer, required
      - `issues_info` integer, required
      - `top_issues` object[], required
        - `check` string, required: Check type, e.g. SSL, PAGESPEED, SITEMAP, CANONICAL, MOBILE.
        - `severity` 'critical' | 'warning' | 'info', required
        - `title` string, required
        - `affected_count` integer, required
      - `categories` object, required: Average score 0–100 per category (performance, security, indexability, mobile, structure, other). Only categories with scored checks appear.

## Other responses

- `401`: Missing, malformed, unknown, revoked, or expired API key. Codes: `unauthorized`, `key_revoked`, `key_expired`.
- `404`: No such project on this account. Code: `not_found`.
- `429`: Rate limit exceeded (600 requests/minute per API key). Honor `Retry-After`.

---

[API](https://skmtc.dev/serp-agent/apis/serp-agent-api.md) · [All operations](https://skmtc.dev/serp-agent/apis/serp-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/serp-agent/apis/serp-agent-api/revisions/438a943019ac?raw)
