| command | string |
| quantity | number <float> Amount in grams to dispense |
| dispense_rate | string Preset rate: normal | slow | fast |
| audio_name | string <uuid> |
| audio_url (Auto generated) | string <uri> URL of the audio file will be autogenarated by server when audio_name is provided |
| snooze_until_pet_comes | boolean |
{- "command": "dispense_food",
- "quantity": 30,
- "dispense_rate": "normal",
- "audio_name": "0715e9b9-5c88-4054-a5f3-48891d6f62d3",
- "snooze_until_pet_comes": true
}{- "code": 200,
- "status": "success",
- "message": "Food dispensed successfully"
}| command | string |
| audio_name | string <uuid> |
| audio_url (Auto generated) | string <uri> URL of the audio file will be autogenarated by server when audio_name is provided |
{- "command": "call_pet",
- "audio_name": "0715e9b9-5c88-4054-a5f3-48891d6f62d3",
}{- "code": 200,
- "status": "success",
- "message": "Pet called successfully"
}| command | string |
| volume | integer [ 0 .. 100 ] Volume level (0–100) |
{- "command": "set_feeder_volume",
- "volume": 75
}{- "code": 200,
- "status": "success",
- "message": "Volume set to 75"
}| command | string |
| brightness | integer [ 0 .. 100 ] Brightness level (0–100) |
| adjustment | string Enum: "increase" "decrease" "" Adjust brightness relative to current level |
{- "command": "set_feeder_body_light_brightness",
- "brightness": 80,
- "adjustment": "increase"
}{- "code": 200,
- "status": "success",
- "message": "LED brightness set to 80"
}| command | string |
| brightness | integer [ 0 .. 100 ] Brightness level (0–100) |
| color | string LED color in HEX format |
| animation | string Enum: "static" "blink" "fade" "wave" LED animation effect |
| strip_number | integer [ 1 .. 3 ] LED strip number (1-3) and -1 for all strips |
{- "command": "set_feeder_body_light_animation",
- "brightness": 80,
- "color": "#FF5733",
- "animation": "blink",
- "strip_number": 1
}{- "code": 200,
- "status": "success",
- "message": "LED set to"
}| feeder_id required | string <uuid> UUID of the feeder device |
| action required | string Enum: "feeder_enable_privacy" "feeder_disable_privacy" Action to control privacy mode.
|
| keep_until_disabled | boolean If true, privacy mode remains active until explicitly disabled. |
| duration_minutes | integer Number of minutes to keep privacy mode active (only valid when enabling). |
{- "action": "feeder_enable_privacy",
- "keep_until_disabled": true,
- "duration_minutes": 30
}{- "code": 200,
- "status": "success",
- "message": "Privacy mode enabled successfully",
- "data": {
- "timestamp": "2025-09-19T12:34:56Z"
}
}{- "command": "delete_feeder_music",
- "audio_name": "some_music.wav"
}{- "code": 200,
- "status": "success",
- "message": "Music Deleted successfully"
}{- "code": 200,
- "status": "success",
- "music": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "Relaxing Tune",
}
]
}| command | string |
| video_duration | integer Duration of the video in seconds |
{- "command": "capture_feeder_video",
- "video_duration": 30
}{- "code": 200,
- "status": "success",
}| command | string |
| sync_types | enum send all in the form of list for syncing everything |
{- "command": "sync",
- "sync_types": [
- "settings",
- "logs",
- "status"
]
}{- "code": 200,
- "status": "success",
- "message": "Feeder synced successfully"
}| count | integer Default: 10 Example: count=10 Number of history records to retrieve. Use -1 to fetch all available records. |
[- {
- "event_id": "550e8400-e29b-41d4-a716-446655440000",
- "event_type": "meal_dispensed",
- "description": "Dispensed 120g of food",
- "timestamp": "2025-09-10T14:30:00Z"
}
]| no_of_insights | integer Default: 5 Example: no_of_insights=5 Number of insights to retrieve. Use -1 to fetch all available insights. |
[- {
- "total_meals_dispensed": 42,
- "average_meal_size": 120,
- "eating_duration_avg": "00:07:32",
- "most_active_time": "18:30",
- "least_active_time": "03:00",
- "food_refills": 3,
- "last_insight_generated_at": "2025-09-10T14:00:00Z"
}
]{- "code": 200,
- "status": "success",
- "data": {
- "food_level_container": 75,
- "food_level_bowl": 40,
- "dog_eating_status": "eating",
- "last_meal_time": "2025-09-10T12:30:00Z",
- "battery_status": 85,
- "power_mode": "wired",
- "charging_status": true,
- "camera_status": "online",
- "jamming_status": false,
- "storage_lid_status": "closed",
- "dispenser_lid_status": "open",
- "volume_level": 70,
- "brightness_level": 80,
- "last_filled_time": "2025-09-09T15:00:00Z",
- "food_type": "Dry Kibble",
- "last_update_at": "2025-09-10T14:20:00Z",
- "firmware_version": "2.0.1",
- "last_firmware_updated_at": "2025-09-01T10:00:00Z",
- "is_synced": true
}
}{
}{- "code": 200,
- "status": "success",
- "message": "Webhook registered successfully"
}{- "command": "factory_reset_feeder"
}{- "code": 200,
- "status": "success",
- "message": "Factory reset initiated successfully"
}| command | string |
| download_url | string <uri> Optional URL of the firmware package |
| firmware_version | string Optional firmware version to update to |
{- "command": "ota_update_feeder",
- "firmware_version": "2.0.1"
}{- "code": 200,
- "status": "success",
- "message": "OTA update initiated successfully"
}