Recurring events API
HTTP reference for recurring events. Read authentication and access before using these operations. All examples use made-up data and placeholder credentials.
GET /v1/farm/{farm_id}/recurring-events
Get Recurring Events
Current recurring events HTTP operation. External credential scopes: read:records. Minimum farm role: READER. Production rate limit: 100 requests per 15-minute window, per legacy key, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429.
Parameter In Required Schema farm_id path Yes {"type":"string","format":"uuid"}
Request example
bash example Copy example
curl --fail-with-body -X GET \
'https://api.ranch.bot/v1/farm/<farm_id>/recurring-events' \
-H "Authorization: Bearer $RANCHBOT_TOKEN"
Responses
Status Meaning Content type 200 Success application/json 400 Request validation failed. application/json 401 Missing/invalid authentication or insufficient farm role. application/json 403 Missing required scope or credential type is disallowed. application/json 404 Resource or active farm membership not found. application/json 429 Rate limit exceeded. Retry after the indicated delay. application/json 500 Unexpected server failure. application/json
200 response schema (application/json)
Field Type Presence Constraints [] object Required [].type string Required enum: ["OTHER","FEED","GENETIC","HEALTH","MOVEMENT"] [].id string Required [].created_at string Required format: "date-time" [].updated_at string Required format: "date-time" [].name string Required [].is_active boolean Required [].farm_id string Required [].description (variant 1) null Required [].description (variant 2) string Required [].animal_ids JSON Required [].group_ids JSON Required [].end_date (variant 1) null Required [].end_date (variant 2) string Required format: "date-time" [].recurrence_type string Required enum: ["DAILY","MONTHLY","WEEKLY"] [].start_date string Required format: "date-time"
json example Copy example
[]
POST /v1/farm/{farm_id}/recurring-events
Create Recurring Event
Current recurring events HTTP operation. External credential scopes: write:records. Minimum farm role: EDITOR. Direct requests execute without an app confirmation screen. Production rate limit: 100 requests per 15-minute window, per legacy key, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429.
Parameter In Required Schema farm_id path Yes {"type":"string","format":"uuid"}
Request body (application/json)
Field Type Presence Constraints animal_ids array Required animal_ids[] string Required format: "uuid" description string Optional end_date string Optional format: "date-time" group_ids array Required group_ids[] string Required format: "uuid" name string Required recurrence_type string Required enum: ["DAILY","MONTHLY","WEEKLY"] start_date string Required format: "date-time" type string Required enum: ["FEED","GENETIC","HEALTH","MOVEMENT","OTHER"]
json example Copy example
{
"animal_ids": [],
"group_ids": [],
"name": "Example",
"recurrence_type": "DAILY",
"start_date": "2026-09-01T12:00:00.000Z",
"type": "FEED"
}
Request example
bash example Copy example
curl --fail-with-body -X POST \
'https://api.ranch.bot/v1/farm/<farm_id>/recurring-events' \
-H "Authorization: Bearer $RANCHBOT_TOKEN" \
-H "Content-Type: application/json" \
--data '{"animal_ids":[],"group_ids":[],"name":"Example","recurrence_type":"DAILY","start_date":"2026-09-01T12:00:00.000Z","type":"FEED"}'
Responses
Status Meaning Content type 201 Success application/json 400 Request validation failed. application/json 401 Missing/invalid authentication or insufficient farm role. application/json 403 Missing required scope or credential type is disallowed. application/json 404 Resource or active farm membership not found. application/json 429 Rate limit exceeded. Retry after the indicated delay. application/json 500 Unexpected server failure. application/json
201 response schema (application/json)
Field Type Presence Constraints type string Required enum: ["OTHER","FEED","GENETIC","HEALTH","MOVEMENT"] id string Required created_at string Required format: "date-time" updated_at string Required format: "date-time" name string Required is_active boolean Required farm_id string Required description (variant 1) null Required description (variant 2) string Required animal_ids JSON Required group_ids JSON Required end_date (variant 1) null Required end_date (variant 2) string Required format: "date-time" recurrence_type string Required enum: ["DAILY","MONTHLY","WEEKLY"] start_date string Required format: "date-time"
json example Copy example
{
"type": "OTHER",
"id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-01T12:00:00.000Z",
"updated_at": "2026-09-01T12:00:00.000Z",
"name": "Example",
"is_active": true,
"farm_id": "11111111-1111-4111-8111-111111111111",
"description": null,
"animal_ids": null,
"group_ids": null,
"end_date": null,
"recurrence_type": "DAILY",
"start_date": "2026-09-01T12:00:00.000Z"
}
DELETE /v1/farm/{farm_id}/recurring-events/{recurring_event_id}
Delete Recurring Event
Current recurring events HTTP operation. External credential scopes: write:records. Minimum farm role: EDITOR. Direct requests execute without an app confirmation screen. Production rate limit: 100 requests per 15-minute window, per legacy key, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429. Deletion behavior is described below; a successful status does not imply erasure from all retained history. Marks the stored entity inactive (soft deletion).
Parameter In Required Schema farm_id path Yes {"type":"string","format":"uuid"} recurring_event_id path Yes {"type":"string","format":"uuid"}
Request example
bash example Copy example
curl --fail-with-body -X DELETE \
'https://api.ranch.bot/v1/farm/<farm_id>/recurring-events/<recurring_event_id>' \
-H "Authorization: Bearer $RANCHBOT_TOKEN"
Responses
Status Meaning Content type 204 Completed; no response body. No body 400 Request validation failed. application/json 401 Missing/invalid authentication or insufficient farm role. application/json 403 Missing required scope or credential type is disallowed. application/json 404 Resource or active farm membership not found. application/json 429 Rate limit exceeded. Retry after the indicated delay. application/json 500 Unexpected server failure. application/json
GET /v1/farm/{farm_id}/recurring-events/{recurring_event_id}
Get Recurring Event
Current recurring events HTTP operation. External credential scopes: read:records. Minimum farm role: READER. Production rate limit: 100 requests per 15-minute window, per legacy key, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429.
Parameter In Required Schema farm_id path Yes {"type":"string","format":"uuid"} recurring_event_id path Yes {"type":"string","format":"uuid"}
Request example
bash example Copy example
curl --fail-with-body -X GET \
'https://api.ranch.bot/v1/farm/<farm_id>/recurring-events/<recurring_event_id>' \
-H "Authorization: Bearer $RANCHBOT_TOKEN"
Responses
Status Meaning Content type 200 Success application/json 400 Request validation failed. application/json 401 Missing/invalid authentication or insufficient farm role. application/json 403 Missing required scope or credential type is disallowed. application/json 404 Resource or active farm membership not found. application/json 429 Rate limit exceeded. Retry after the indicated delay. application/json 500 Unexpected server failure. application/json
200 response schema (application/json)
Field Type Presence Constraints type string Required enum: ["OTHER","FEED","GENETIC","HEALTH","MOVEMENT"] id string Required created_at string Required format: "date-time" updated_at string Required format: "date-time" name string Required is_active boolean Required farm_id string Required description (variant 1) null Required description (variant 2) string Required animal_ids JSON Required group_ids JSON Required end_date (variant 1) null Required end_date (variant 2) string Required format: "date-time" recurrence_type string Required enum: ["DAILY","MONTHLY","WEEKLY"] start_date string Required format: "date-time"
json example Copy example
{
"type": "OTHER",
"id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-01T12:00:00.000Z",
"updated_at": "2026-09-01T12:00:00.000Z",
"name": "Example",
"is_active": true,
"farm_id": "11111111-1111-4111-8111-111111111111",
"description": null,
"animal_ids": null,
"group_ids": null,
"end_date": null,
"recurrence_type": "DAILY",
"start_date": "2026-09-01T12:00:00.000Z"
}
PUT /v1/farm/{farm_id}/recurring-events/{recurring_event_id}
Update Recurring Event
Current recurring events HTTP operation. External credential scopes: write:records. Minimum farm role: EDITOR. Direct requests execute without an app confirmation screen. Production rate limit: 100 requests per 15-minute window, per legacy key, otherwise per client IP. RateLimit headers report the current window; respect Retry-After on 429.
Parameter In Required Schema farm_id path Yes {"type":"string","format":"uuid"} recurring_event_id path Yes {"type":"string","format":"uuid"}
Request body (application/json)
Field Type Presence Constraints animal_ids array Optional animal_ids[] string Required format: "uuid" description string Optional end_date string Optional format: "date-time" group_ids array Optional group_ids[] string Required format: "uuid" name string Optional recurrence_type string Optional enum: ["DAILY","MONTHLY","WEEKLY"] start_date string Optional format: "date-time" type string Optional enum: ["FEED","GENETIC","HEALTH","MOVEMENT","OTHER"]
json example Copy example
{}
Request example
bash example Copy example
curl --fail-with-body -X PUT \
'https://api.ranch.bot/v1/farm/<farm_id>/recurring-events/<recurring_event_id>' \
-H "Authorization: Bearer $RANCHBOT_TOKEN" \
-H "Content-Type: application/json" \
--data '{}'
Responses
Status Meaning Content type 200 Success application/json 400 Request validation failed. application/json 401 Missing/invalid authentication or insufficient farm role. application/json 403 Missing required scope or credential type is disallowed. application/json 404 Resource or active farm membership not found. application/json 429 Rate limit exceeded. Retry after the indicated delay. application/json 500 Unexpected server failure. application/json
200 response schema (application/json)
Field Type Presence Constraints recurringEvent object Required recurringEvent.type string Required enum: ["OTHER","FEED","GENETIC","HEALTH","MOVEMENT"] recurringEvent.id string Required recurringEvent.created_at string Required format: "date-time" recurringEvent.updated_at string Required format: "date-time" recurringEvent.name string Required recurringEvent.is_active boolean Required recurringEvent.farm_id string Required recurringEvent.description (variant 1) null Required recurringEvent.description (variant 2) string Required recurringEvent.animal_ids JSON Required recurringEvent.group_ids JSON Required recurringEvent.end_date (variant 1) null Required recurringEvent.end_date (variant 2) string Required format: "date-time" recurringEvent.recurrence_type string Required enum: ["DAILY","MONTHLY","WEEKLY"] recurringEvent.start_date string Required format: "date-time"
json example Copy example
{
"recurringEvent": {
"type": "OTHER",
"id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-01T12:00:00.000Z",
"updated_at": "2026-09-01T12:00:00.000Z",
"name": "Example",
"is_active": true,
"farm_id": "11111111-1111-4111-8111-111111111111",
"description": null,
"animal_ids": null,
"group_ids": null,
"end_date": null,
"recurrence_type": "DAILY",
"start_date": "2026-09-01T12:00:00.000Z"
}
}
Error body
Validation and authentication errors generally use this envelope. Rate-limit errors omit data; OAuth polling also has protocol-specific errors shown in its reference.
json example Copy example
{
"success": false,
"errors": [
{
"code": 400,
"name": "ValidationError",
"message": "Example validation failure"
}
]
}