Feeder API (1.0.0)

Download OpenAPI specification:Download

API for dispensing food to pets.

Feeder Control

Dispense food

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "command": "dispense_food",
  • "quantity": 30,
  • "dispense_rate": "normal",
  • "audio_name": "0715e9b9-5c88-4054-a5f3-48891d6f62d3",
  • "audio_url (Auto generated)": "http://example.com",
  • "snooze_until_pet_comes": true
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Food dispensed successfully"
}

Call pet

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "command": "call_pet",
  • "audio_name": "0715e9b9-5c88-4054-a5f3-48891d6f62d3",
  • "audio_url (Auto generated)": "http://example.com"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Pet called successfully"
}

Set Feeder Volume

Request Body schema: application/json
command
string
volume
integer [ 0 .. 100 ]

Volume level (0–100)

Responses

Request samples

Content type
application/json
{
  • "command": "set_feeder_volume",
  • "volume": 75
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Volume set to 75"
}

Set Feeder LED Brightness

Request Body schema: application/json
command
string
brightness
integer [ 0 .. 100 ]

Brightness level (0–100)

adjustment
string
Enum: "increase" "decrease" ""

Adjust brightness relative to current level

Responses

Request samples

Content type
application/json
{
  • "command": "set_feeder_body_light_brightness",
  • "brightness": 80,
  • "adjustment": "increase"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "LED brightness set to 80"
}

Set Feeder LED Color and Animation

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "command": "set_feeder_body_light_animation",
  • "brightness": 80,
  • "color": "#FF5733",
  • "animation": "blink",
  • "strip_number": 1
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "LED set to"
}

Control Feeder Privacy Mode

path Parameters
feeder_id
required
string <uuid>

UUID of the feeder device

Request Body schema: application/json
action
required
string
Enum: "feeder_enable_privacy" "feeder_disable_privacy"

Action to control privacy mode.

  • feeder_enable_privacy → Enable privacy mode
  • feeder_disable_privacy → Disable 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).

Responses

Request samples

Content type
application/json
{
  • "action": "feeder_enable_privacy",
  • "keep_until_disabled": true,
  • "duration_minutes": 30
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Privacy mode enabled successfully",
  • "data": {
    }
}

Media

Delete Music

Request Body schema: application/json
command
string
audio_name
string

Responses

Request samples

Content type
application/json
{
  • "command": "delete_feeder_music",
  • "audio_name": "some_music.wav"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Music Deleted successfully"
}

List Music

Responses

Response samples

Content type
application/json
{}

Capture Photo

Capture a photo using the feeder's camera. the feeder will send capture_feeder_photo command to the device.

Responses

Response samples

Content type
application/json
{}

Capture Video

Request Body schema: application/json
command
string
video_duration
integer

Duration of the video in seconds

Responses

Request samples

Content type
application/json
{
  • "command": "capture_feeder_video",
  • "video_duration": 30
}

Response samples

Content type
application/json
{}

Feeder Data

Sync Feeder Data

Request Body schema: application/json
command
string
sync_types
enum

send all in the form of list for syncing everything

Responses

Request samples

Content type
application/json
{
  • "command": "sync",
  • "sync_types": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Feeder synced successfully"
}

Get Feeder History

query Parameters
count
integer
Default: 10
Example: count=10

Number of history records to retrieve. Use -1 to fetch all available records.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Feeder Insights

query Parameters
no_of_insights
integer
Default: 5
Example: no_of_insights=5

Number of insights to retrieve. Use -1 to fetch all available insights.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Feeder Status

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "data": {
    }
}

Webhook

Feeder Webhook

Request Body schema: application/json
webhook_url
string <uri>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Webhook registered successfully"
}

Feeder Power Management

Shutdown Feeder

Request Body schema: application/json
command
string

Responses

Request samples

Content type
application/json
{
  • "command": "shutdown_feeder"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Feeder shutdown successfully"
}

Restart Feeder

Request Body schema: application/json
command
string

Responses

Request samples

Content type
application/json
{
  • "command": "restart_feeder"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Feeder reboot initiated successfully"
}

Factory Reset Feeder

Request Body schema: application/json
command
string

Responses

Request samples

Content type
application/json
{
  • "command": "factory_reset_feeder"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Factory reset initiated successfully"
}

Feeder OTA Management

Trigger OTA Update

Request Body schema: application/json
command
string
download_url
string <uri>

Optional URL of the firmware package

firmware_version
string

Optional firmware version to update to

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "OTA update initiated successfully"
}