---
title: "List applications"
method: GET
path: "/v1/applications"
tags: ["Applications"]
---

# List applications

`GET /v1/applications`

## Request

- Base URL: `https://api.yardstick.team`
- URL: `https://api.yardstick.team/v1/applications`
- Auth: HTTP bearer

List applications

**Required scopes:** `applications:read`

**Example (curl):**

```bash
curl 'https://api.yardstick.team/v1/applications?person_id=per_abc123&limit=20' \
  -H 'Authorization: Bearer ys_sk_live_…'
```

**Example (TypeScript):**

```ts
await fetch(
  "https://api.yardstick.team/v1/applications?person_id=per_abc123&limit=20",
  { headers: { Authorization: `Bearer ${process.env.YS_API_KEY}` } },
).then((r) => r.json());
```

## Query parameters

- `limit` integer
- `starting_after` string
- `job_id` string
- `person_id` string
- `hiring_manager_decision` 'advanced' | 'held' | 'waiting'
- `status` string

## Headers

- `X-Request-Id` string

## Response `200`

Success

- object: Cursor-paginated list envelope.
  - `object` 'list', required
  - `data` Application[], required
    - `is_candidate` boolean, required: Explicitly admitted to the interview process; Review Applications and Candidates are mutually exclusive per application.
    - `candidate_admission_id` string, uuid, nullable, required: Raw current admission UUID, required as expected_admission_id when undoing.
    - `candidate_admitted_at` string, nullable, required
    - `candidate_admission_origin` string, nullable, required
    - `candidate_activity_started_at` string, nullable, required: Non-null after durable candidate activity; undo is then unavailable.
    - `id` string, required: Display id, e.g. `app_<base32>`
    - `object` 'application', required
    - `person_id` string, required: Canonical `per_...` person id.
    - `status` string, required
    - `stage` string, required: Deprecated free-form stage label. Status transitions never change it; read `pipeline_stage_id` for the pipeline position.
    - `pipeline_stage_id` string, nullable, required: Display id (`pst_<base32>`) of the configured pipeline stage (board column) the application sits in; every status transition moves it to the stage mapped to the new status. Null when no configured stage is assigned.
    - `job_id` string, nullable, required: Canonical `job_...` Job id when the application is linked to a Job; null for legacy or unlinked applications.
    - `job_posting_id` string, nullable, required
    - `source` object, required
      - `token_id` string, nullable, required
      - `label` string, nullable, required
    - `livemode` boolean, required
    - `created` string, nullable, required
    - `updated` string, nullable, required
    - `archived_at` string, nullable, required: ISO-8601 UTC; non-null when the application has been archived.
    - `archived_reason` string, nullable, required: Free-text archive reason captured at archive time; nullable.
  - `has_more` boolean, required

## Other responses

- `400`: Invalid request
- `401`: Authentication failure
- `403`: Permission denied (scope or feature flag)
- `404`: Resource not found. The error uses the resource-specific code and param names the exact body field or path parameter that referenced it.
- `409`: Conflict (e.g. idempotency key reuse with different body)
- `429`: Rate limited
- `500`: Internal error

## Changes

- **2026-10-20** `bef1d2eaaaa1`: 1 info
  - added the new optional `query` request parameter `hiring_manager_decision`

[Operation history](https://skmtc.dev/yardstick/apis/yardstick-public-api/changes/v1/applications/get.md)

---

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