Ranch.Bot
Skip to reference

Notifications API

HTTP reference for notifications. Read authentication and access before using these operations. All examples use made-up data and placeholder credentials.

GET /v1/farm/{farm_id}/notifications

Get Notifications

Current notifications HTTP operation. External credential scopes: read:records. Minimum farm role: READER. Pagination accepts integer skip and take; set both explicitly. An omitted value passes through to the data query. Collection property names differ by resource; use the response schema. 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.

ParameterInRequiredSchema
farm_idpathYes{"type":"string","format":"uuid"}
skipqueryNo{"type":"integer"}
takequeryNo{"type":"integer"}
statusqueryNo{"type":"string","enum":["FAILED","PENDING","SENT"]}

Request example

bash example
curl --fail-with-body -X GET \
  'https://api.ranch.bot/v1/farm/<farm_id>/notifications' \
  -H "Authorization: Bearer $RANCHBOT_TOKEN"

Responses

StatusMeaningContent type
200Successapplication/json
400Request validation failed.application/json
401Missing/invalid authentication or insufficient farm role.application/json
403Missing required scope or credential type is disallowed.application/json
404Resource or active farm membership not found.application/json
429Rate limit exceeded. Retry after the indicated delay.application/json
500Unexpected server failure.application/json

200 response schema (application/json)

FieldTypePresenceConstraints
notificationsarrayRequired
notifications[]objectRequired
notifications[].statusstringRequiredenum: ["FAILED","PENDING","SENT"]
notifications[].typestringRequiredenum: ["EMAIL","IN_APP","SMS"]
notifications[].idstringRequired
notifications[].created_atstringRequiredformat: "date-time"
notifications[].updated_atstringRequiredformat: "date-time"
notifications[].user_idstringRequired
notifications[].farm_idstringRequired
notifications[].error_message (variant 1)nullRequired
notifications[].error_message (variant 2)stringRequired
notifications[].scheduled_event_idstringRequired
notifications[].sent_at (variant 1)nullRequired
notifications[].sent_at (variant 2)stringRequiredformat: "date-time"
totalnumberRequired
json example
{
  "notifications": [],
  "total": 1
}

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
{
  "success": false,
  "errors": [
    {
      "code": 400,
      "name": "ValidationError",
      "message": "Example validation failure"
    }
  ]
}