---
title: "Update a farm follow-up task"
method: PUT
path: "/v1/farm/{farm_id}/farm-tasks/{task_id}"
tags: ["farm-tasks"]
---

# Update a farm follow-up task

`PUT /v1/farm/{farm_id}/farm-tasks/{task_id}`

## Request

- Base URL: `https://api.ranch.bot`
- URL: `https://api.ranch.bot/v1/farm/{farm_id}/farm-tasks/{task_id}`
- Auth: HTTP bearer

Set status and optionally the due date. Omitting due_date preserves it; null clears it. A provided date must be a real calendar date. External credential scopes: write:records. Minimum farm role: EDITOR.

## Path parameters

- `farm_id` string, uuid, required
- `task_id` string, uuid, required

## Request body

- object
  - `status` 'TODO' | 'DONE' | 'CANCELLED', required
  - `due_date` string, date, nullable

## Response `200`

Success

- FarmTask
  - `id` string, uuid, required
  - `farm_id` string, uuid, required
  - `birth_event_id` string, uuid, required
  - `name` string, required
  - `status` 'TODO' | 'DONE' | 'CANCELLED', required
  - `due_date` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `animals` object[]
    - `id` string, uuid, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing/invalid authentication or insufficient farm role.
- `403`: Missing required scope or credential type is disallowed.
- `404`: Resource or active farm membership not found.
- `409`: The approved preview is stale, the request ID is already used, or the protocol version has different steps.
- `429`: Rate limit exceeded. Retry after the indicated delay.
- `500`: Unexpected server failure.

---

[API](https://skmtc.dev/ranch/apis/ranch-bot-http-api.md) · [All operations](https://skmtc.dev/ranch/apis/ranch-bot-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ranch/apis/ranch-bot-http-api/revisions/24109d33fa02?raw)
