---
title: "List job stages"
method: GET
path: "/v1/job-stages"
tags: ["Job Stage"]
---

# List job stages

`GET /v1/job-stages`

Returns job-stage summaries and resolved settings for the requested stage IDs or a single job. At least one of ids or job_id is required; when both are supplied, only stages that satisfy both are returned. This operation returns a single unpaginated result page.

## Query parameters

- `cursor` string — Opaque pagination cursor from the previous page's pagination.next_cursor, bound to the same query filters.
- `limit` integer — Page size. Must be between 1 and 100; defaults to 25.
- `ids` string[], nullable — Comma-separated list of IDs; maximum 100 values.
- `job_id` string — a job ID. Accepts the canonical prefixed compact UUID, a prefixed dashed UUID, a bare dashed UUID, or a bare compact UUID; input is case-insensitive.

## Response `200`

Success

- object
  - `data` JobStage[], required
    - `id` string, required — Canonical job stage ID (stg_ followed by 32 lowercase hexadecimal UUID characters).
    - `job_id` string, required — Canonical job ID (job_ followed by 32 lowercase hexadecimal UUID characters).
    - `name` string, required
    - `index` integer, required
    - `schedulable` boolean, required
    - `ats` object, nullable, required
      - `type` 'GREENHOUSE' | 'ASHBY' | 'LEVER' | 'WORKDAY' | 'SMARTRECRUITERS' | 'GEM' | 'KOMBO', required
      - `id` string, required
    - `has_custom_interview_plan` boolean, required
    - `settings` object, required
      - `automation` object, required
        - `is_automated_task_enabled` boolean, required
        - `create_automated_task_on_behalf_of` string, nullable, required — Canonical employee ID (emp_ followed by 32 lowercase hexadecimal UUID characters).
        - `default_task` 'ASSIGN_TASK' | 'AVAILABILITY_REQUEST' | 'SELF_SCHEDULE_REQUEST', nullable, required — Default action created when this stage automation runs. ASSIGN_TASK is the stage-default action name used by the job-stage service, distinct from a task-create request's ASSIGN command type.
      - `candidate_notifications` object, required
        - `should_send_email` boolean, required
        - `should_send_calendar_invite` boolean, required
        - `should_send_chat_message` boolean, required
        - `should_send_candidate_pulse` boolean, required
      - `self_schedule_defaults` object, nullable, required
        - `advance_notice_in_hours` integer, nullable, required
        - `rolling_days` integer, nullable, required
        - `use_rolling_days` boolean, nullable, required
        - `number_of_days` integer, nullable, required
        - `location` 'NONE' | 'ZOOM' | 'GOOGLE_MEET' | 'PHONE' | 'CUSTOM' | 'MICROSOFT_TEAMS', nullable, required — Location type for self-scheduled interviews. GOOGLE_MEET creates a Google Meet link.
        - `custom_location` string, nullable, required
        - `is_private_calendar_event` boolean, nullable, required
        - `should_respect_load_limit` boolean, nullable, required
        - `can_schedule_over_recruiting_keywords` boolean, nullable, required
        - `can_schedule_over_available_keywords` boolean, nullable, required
        - `can_schedule_over_free_time` boolean, nullable, required
        - `candidate_note` string, nullable, required
      - `availability_request_defaults` object, nullable, required
        - `number_of_days` integer, nullable, required
        - `minutes_per_day` integer, nullable, required
        - `minimum_time_block_minutes` integer, nullable, required
        - `advance_notice_minutes` integer, nullable, required
        - `rolling_days` integer, nullable, required
        - `use_rolling_days` boolean, nullable, required
        - `timeframe_number_of_days` integer, nullable, required
        - `should_respect_load_limit` boolean, nullable, required
        - `can_schedule_over_recruiting_keywords` boolean, nullable, required
        - `can_schedule_over_available_keywords` boolean, nullable, required
        - `can_schedule_over_free_time` boolean, nullable, required
        - `candidate_note` string, nullable, required
    - `created_at` string, date-time, required — ISO 8601 timestamp.
    - `updated_at` string, date-time, required — ISO 8601 timestamp.
  - `pagination` Pagination, required
    - `next_cursor` string, nullable, required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `409` — Conflict
- `410` — Gone
- `500` — Internal error

---

[API](https://skmtc.dev/modernloop/apis/modernloop-platform-api.md) · [All operations](https://skmtc.dev/modernloop/apis/modernloop-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/modernloop/modernloop-platform-api/revisions/33a0f9f44e4c/schema)
