---
title: "List farm protocol versions"
method: GET
path: "/v1/farm/{farm_id}/protocol-versions"
tags: ["protocol-versions"]
---

# List farm protocol versions

`GET /v1/farm/{farm_id}/protocol-versions`

## Request

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

List immutable protocol definitions without inventing missing care steps. External credential scopes: read:records. Minimum farm role: READER.

## Path parameters

- `farm_id` string, uuid, required

## Query parameters

- `skip` integer
- `take` integer

## Response `200`

Success

- object
  - `total` integer, required
  - `records` FarmProtocolVersion[], required
    - `id` string, uuid, required
    - `farm_id` string, uuid, required
    - `name` string, required
    - `version` string, required
    - `steps` string[], required
    - `created_by_user_id` string, uuid, required
    - `created_at` string, date-time, 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.
- `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)
