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

# List recurring tasks

> List recurring task schedules created by the authenticated user.

```
GET https://www.wiseyield.co/api/v1/recurring-tasks
```

Recurring task schedules auto-generate concrete tasks based on a pattern. Generation runs server-side on a cron — there's no manual `generate` endpoint exposed on the v1 API.

### Authentication

Requires a key with the `tasks:read` scope. See [Authentication](/authentication).

### Query parameters

<ParamField query="page" type="integer" default="1">Page number (≥ 1).</ParamField>
<ParamField query="limit" type="integer" default="20">Results per page (1–100).</ParamField>
<ParamField query="farmId" type="string">Filter to schedules on a specific farm (UUID).</ParamField>
<ParamField query="templateId" type="string">Filter by linked template (UUID).</ParamField>
<ParamField query="isActive" type="string">`"true"` or `"false"` — filter by active status.</ParamField>

### Response

<ResponseField name="data" type="array">
  Array of recurring task schedules.

  <Expandable title="Recurring task">
    <ResponseField name="id" type="string">UUID.</ResponseField>
    <ResponseField name="farmId" type="string">Parent farm UUID.</ResponseField>
    <ResponseField name="templateId" type="string | null">Task template UUID (drives the generated task content).</ResponseField>
    <ResponseField name="sopTemplateId" type="string | null">SOP template UUID (alternative to templateId, Blueprint §9.5).</ResponseField>
    <ResponseField name="pattern" type="string">One of `daily`, `weekly`, `monthly`, `yearly`, `custom`.</ResponseField>
    <ResponseField name="interval" type="integer">Pattern interval (e.g. `2` with `weekly` = every 2 weeks).</ResponseField>
    <ResponseField name="daysOfWeek" type="array | null">Days of week for `weekly` pattern: `[0,2,4]` = Sun/Tue/Thu.</ResponseField>
    <ResponseField name="dayOfMonth" type="integer | null">Day of month for `monthly` pattern.</ResponseField>
    <ResponseField name="monthOfYear" type="integer | null">Month for `yearly` pattern.</ResponseField>
    <ResponseField name="startDate" type="string">ISO 8601.</ResponseField>
    <ResponseField name="endDate" type="string | null">ISO 8601.</ResponseField>
    <ResponseField name="nextOccurrence" type="string">ISO 8601 — next time generation will fire.</ResponseField>
    <ResponseField name="isActive" type="boolean">Schedule active flag.</ResponseField>
    <ResponseField name="generateDaysBefore" type="integer | null">Generate the task this many days before its `nextOccurrence`.</ResponseField>
    <ResponseField name="assignedTo" type="string | null">Default assignee for generated tasks.</ResponseField>
    <ResponseField name="createdBy" type="string">Creator user ID.</ResponseField>
    <ResponseField name="createdAt" type="string">ISO 8601.</ResponseField>
    <ResponseField name="updatedAt" type="string">ISO 8601.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">Offset pagination envelope.</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl 'https://www.wiseyield.co/api/v1/recurring-tasks?isActive=true' \
    -H "Authorization: Bearer $WISEYIELD_API_KEY"
  ```
</RequestExample>

## Errors

| Status                    | When                                            |
| ------------------------- | ----------------------------------------------- |
| `401`                     | Missing, malformed, expired, or revoked API key |
| `403 INSUFFICIENT_SCOPE`  | Key lacks `tasks:read` scope                    |
| `429 RATE_LIMIT_EXCEEDED` | Per-user rate limit reached                     |
| `5xx`                     | Server error                                    |
