> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List schedules

> List Forward schedules for an Identity with cursor pagination.

`GET /api/v1/forward/schedules`

Returns Schedule configuration records. Archived schedules are excluded by default.

## Headers

| Header          | Required | Description    |
| --------------- | -------- | -------------- |
| `Authorization` | Yes      | `Bearer <PAT>` |

## Query parameters

| Parameter          | Type    | Required | Default                                     | Description                                      |
| ------------------ | ------- | -------- | ------------------------------------------- | ------------------------------------------------ |
| `identity_id`      | string  | Yes      | Forward Identity ID that owns the Schedule. |                                                  |
| `template_id`      | string  | No       | -                                           | Filter by Forward Template ID.                   |
| `status`           | string  | No       | -                                           | Filter by `active` or `paused`.                  |
| `include_archived` | boolean | No       | `false`                                     | Include archived schedules.                      |
| `limit`            | integer | No       | 20                                          | Items per page. Maximum 100.                     |
| `after_id`         | string  | No       | -                                           | Cursor for records after the given Schedule ID.  |
| `before_id`        | string  | No       | -                                           | Cursor for records before the given Schedule ID. |

## Example request

```bash theme={null}
curl -s -X GET 'https://api.qoder.com/api/v1/forward/schedules?identity_id=idn_019eabc123&limit=20' \
  -H "Authorization: Bearer $QODER_PAT"
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "data": [
    {
      "id": "sched_019f00112233445566778899aabbccdd",
      "identity_id": "idn_019eabc123",
      "template_id": "tmpl_support",
      "name": "Daily tech brief",
      "description": "Generate a daily technology news summary",
      "status": "active",
      "paused_reason": null,
      "initial_events": [
        {
          "type": "user.message",
          "content": "Summarize current technology news in five bullet points."
        }
      ],
      "execution": {
        "session_mode": "new_session",
        "max_concurrent_runs": 1,
        "max_attempts": 1,
        "timeout_ms": 300000
      },
      "trigger_policy": {
        "type": "cron",
        "expression": "0 9 * * *",
        "timezone": "Asia/Shanghai",
        "upcoming_runs_at": ["2026-06-23T01:00:00Z"]
      },
      "environment_id": "env_019e64e01a137caf953ac2ac7b42ec5c",
      "sinks": [],
      "metadata": {},
      "archived_at": null,
      "created_at": "2026-06-22T10:00:00Z",
      "updated_at": "2026-06-22T10:00:00Z"
    }
  ],
  "first_id": "sched_019f00112233445566778899aabbccdd",
  "last_id": "sched_019f00112233445566778899aabbccdd",
  "has_more": false
}
```

## Response fields

| Field      | Type         | Description                                |
| ---------- | ------------ | ------------------------------------------ |
| `data`     | array        | Full Schedule objects on the current page. |
| `first_id` | string\|null | ID of the first record on this page.       |
| `last_id`  | string\|null | ID of the last record on this page.        |
| `has_more` | boolean      | Whether more records remain.               |

## Errors

| HTTP | Type                    | Code                      | Trigger                              |
| ---- | ----------------------- | ------------------------- | ------------------------------------ |
| 400  | `invalid_request_error` | `invalid_identity`        | `identity_id` is missing or invalid. |
| 400  | `invalid_request_error` | `invalid_pagination`      | Pagination parameters are invalid.   |
| 401  | `authentication_error`  | `authentication_required` | PAT invalid or expired.              |

## Notes

* Results are returned in descending creation order.
* Archived records are returned only when `include_archived=true`.

## Related

<CardGroup cols={2}>
  <Card title="Create a schedule" icon="plus" href="/cloud-agents/api/forward/schedules/create" />

  <Card title="List schedule runs" icon="history" href="/cloud-agents/api/forward/schedule-runs/list" />
</CardGroup>
