---
title: "Sync Chute Session"
method: POST
path: "/v1/farm/{farm_id}/chute-sessions/{session_id}/sync"
tags: ["chute-sessions"]
---

# Sync Chute Session

`POST /v1/farm/{farm_id}/chute-sessions/{session_id}/sync`

## Request

- Base URL: `https://api.ranch.bot`
- URL: `https://api.ranch.bot/v1/farm/{farm_id}/chute-sessions/{session_id}/sync`
- Auth: HTTP bearer

Current chute sessions HTTP operation. External credential scopes: write:records, write:animals, write:groups. Minimum farm role: EDITOR. Direct requests execute without an app confirmation screen. Production rate limit: 100 requests per 15-minute window per device account, 1000 per browser session, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429.

## Path parameters

- `farm_id` string, uuid, required
- `session_id` string, uuid, required

## Request body

- object
  - `session` object, required
    - `name` string, required
    - `status` 'ACTIVE' | 'COMPLETED', required
    - `started_at` string, date-time, required
    - `completed_at` string, date-time
    - `config` object, required
      - `widgets` object[], required
        - `id` string, required
        - `type` 'boolean' | 'number' | 'photo' | 'score' | 'select' | 'text' | 'treatment' | 'weight', required
        - `label` string, required
        - `size` 'full' | 'half'
        - `options` object
      - `new_animal_fields` string[]
      - `record_type` 'FEED' | 'GENETIC' | 'HEALTH' | 'MOVEMENT' | 'OTHER'
    - `group_id` string, uuid, nullable
  - `entries` object[], required
    - `id` string, uuid, required
    - `animal` object, required
      - `id` string, uuid, required
      - `is_new` boolean
      - `identifiers` object[]
        - `type` 'BRAND' | 'EID' | 'MANAGEMENT_TAG' | 'NAME' | 'TATTOO', required
        - `value` string, required
      - `metadata` object
    - `position` integer, required
    - `payload` object, required
    - `captured_at` string, date-time, required
    - `client_updated_at` string, date-time, required
    - `deleted` boolean

## Response `200`

Success

- object
  - `session` object, required
    - `status` 'ACTIVE' | 'COMPLETED' | 'PROPOSED', required
    - `id` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `name` string, required
    - `is_active` boolean, required
    - `farm_id` string, required
    - `group_id` string, nullable, required
    - `completed_at` string, date-time, nullable, required
    - `config` unknown, required
    - `started_at` string, date-time, required
  - `animal_mappings` object[], required
    - `client_animal_id` string, required
    - `animal_id` string, required
    - `created` boolean, required
  - `results` object[], required
    - `entry_id` string, required
    - `status` 'error' | 'created' | 'updated' | 'unchanged' | 'deleted', required
    - `animal_id` string
    - `record_ids` string[]
    - `record_items` object[]
      - `widget_id` string, required
      - `record_item_id` string, required
    - `error` string

## 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)
