ORo API (1.0.0)

Download OpenAPI specification:Download

API to fetch device, user, and dog monitoring data of a specific device based on device_id or account_id.

🟠 Device Settings

Endpoints Related to Device Metadata, Storage, and Network settings.

Device Metadata

path Parameters
device_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "model": "ORo",
  • "manufacturer": "Ogmen Robotics",
  • "os_version": "1.2.3",
  • "serial_number": "SN123456789",
  • "battery_health": 95,
  • "last_restart_time": "2025-01-01T00:00:00Z",
  • "secure_enclave_id": "123e4567-e89b-12d3-a456-426614174000",
  • "storage_capacity_gb": 256
}

Storage Details

path Parameters
device_id
required
string <uuid>
no_of_logs
required
int <int>

Responses

Response samples

Content type
application/json
{
  • "storage_id": 50,
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "total_storage_gb": 128,
  • "available_storage_gb": 64.5,
  • "used_storage_gb": 63.5
}

Network Settings

path Parameters
device_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "network_id": 20,
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "ssid": "HomeWiFi",
  • "security_protocol": "WPA2",
  • "ip_address": "192.168.1.2",
  • "mac_address": "1.2.3",
  • "is_connected": true,
  • "last_connected_at": "2025-01-01T00:00:00Z"
}

Get Device Settings

Retrieves all settings for the specified robot device, including privacy status, volume, brightness, and timestamps.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Device settings retrieved successfully.",
  • "data": {
    }
}

🟢 Device Data

Endpoints Related to Device Data and Performance.

Device Activity

path Parameters
device_id
required
string <uuid>
no_of_activities
required
int <int>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Device Connectivity

path Parameters
device_id
required
string <uuid>
no_of_logs
required
int <int>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Device Location

Retrieve the latest location logs of a device based on its Device ID and no_of_logs. if you just want the latest location, set no_of_logs to 1.

path Parameters
device_id
required
string <uuid>
no_of_logs
required
int <int>

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Location logs retrieved successfully.",
  • "data": {
    }
}

Device Performance

path Parameters
device_id
required
string <uuid>
no_of_logs
required
int <int>

Responses

Response samples

Content type
application/json
{
  • "log_id": 100,
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "timestamp": "2025-03-12T12:10:00Z",
  • "cpu_usage_percent": 45.6,
  • "npu_usage_percent": 45.6,
  • "gpu_usage_percent": 45.6,
  • "memory_usage_mb": 1024,
  • "system_load_avg": 1.57,
  • "cpu_temperature": 55,
  • "power_state": "Active Mode"
}

Battery Status

path Parameters
device_id
required
string <uuid>
no_of_logs
required
int <int>

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Battery status logs retrieved successfully.",
  • "data": {
    }
}

Get Robot Volume

Retrieves the current volume setting for the specified robot device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Robot volume retrieved successfully.",
  • "data": {
    }
}

Generate URL

Generate a presigned URL for a given S3 object path. Example input: users_data/12345/photos/afbf86a3.jpg

Request Body schema: application/x-www-form-urlencoded
s3_path
required
string

Path to the S3 object key.

Responses

Response samples

Content type
application/json
{}

🟠 Device Registration

Endpoints Related to Device Registration.

Register Device

path Parameters
account_id
required
string
Request Body schema: application/json
device_id
required
string <uuid>
model
required
string
manufacturer
required
string
os_version
required
string
serial_number
required
string
battery_health
required
integer
last_restart_time
required
string <date-time>
secure_enclave_id
required
string <uuid>
storage_capacity_gb
required
integer
registration_key
required
string

Responses

Request samples

Content type
application/json
{
  • "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
  • "model": "string",
  • "manufacturer": "string",
  • "os_version": "string",
  • "serial_number": "string",
  • "battery_health": 0,
  • "last_restart_time": "2019-08-24T14:15:22Z",
  • "secure_enclave_id": "fd5b08ea-c1b5-4653-82ef-afef8e4ea543",
  • "storage_capacity_gb": 0,
  • "registration_key": "string"
}

Response samples

Content type
application/json
{
  • "registration_id": "7b2966db-5b97-451d-80d4-713d3a44078b",
  • "message": "string"
}

🟠 User Data

Endpoints Related to User Accounts and Subscriptions.

Subscription Information

path Parameters
account_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "subscription_id": 500,
  • "account_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
  • "subscription_plan": "Premium",
  • "subscription_status": "Active",
  • "start_date": "2025-01-01T00:00:00Z",
  • "end_date": "2026-01-01T00:00:00Z",
  • "storage_limit_gb": 100,
  • "billing_cycle": "Monthly",
  • "auto_renewal": true
}

Account Details

Returns User Account Details Associated With the Given Device ID.

path Parameters
device_id
required
string <uuid>

Unique identifier of the device

Responses

Response samples

Content type
application/json
{
  • "account_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "ogmen_id": "OGM123",
  • "email": "user@example.com",
  • "display_name": "John Doe",
  • "password_hash": "Who are you",
  • "last_login_time": "2025-03-12T08:00:00Z",
  • "two_factor_enabled": true
}

Account Details

Returns user account details associated with the given account ID.

path Parameters
account_id
required
string <uuid>

Unique identifier of the user account

Responses

Response samples

Content type
application/json
{
  • "account_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
  • "device_id": "123e4567-e89b-12d3-a456-426614174000",
  • "ogmen_id": "OGM123",
  • "email": "user@example.com",
  • "display_name": "John Doe",
  • "password_hash": "Who are you",
  • "last_login_time": "2025-03-12T08:00:00Z",
  • "two_factor_enabled": true
}

Fetch Devices

Returns All Device Records Associated With a Given Account UUID.

path Parameters
account_id
required
string <uuid>

Unique identifier of the user account

Responses

Response samples

Content type
application/json
[
  • {
    }
]

🟠 Dog Data

Endpoints Related to Dog Profiles and Insights.

Dog Profiles

path Parameters
device_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "dog_id": "d1234567-e89b-12d3-a456-426614174abc",
  • "owner_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
  • "name": "Buddy",
  • "breed": "Golden Retriever",
  • "age": 3,
  • "weight": 18,
  • "medical_history": { },
  • "activity_level": "Low",
  • "dietary_preferences": "Grain-Free Kibble",
  • "last_updated": "2025-03-12T14:00:00Z"
}

Dog Insights

If no_of_insights = 10 , it gives the last 10 insights and -1 for all the insights of that specific dog_id

path Parameters
no_of_insights
required
integer
dog_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "insight_id": 1000,
  • "dog_id": "789e4567-e89b-12d3-a456-426614174000",
  • "recorded_at": "2025-03-12T14:00:00Z",
  • "activity_detected": "Playing",
  • "confidence_score": 0.95,
  • "emotion": "Happy",
  • "severity_level": "Low",
  • "location": "Living Room",
  • "description": "Dog was playing with the Human"
}

Dog Insight Media

Media for Dog Insight of the specific dog

path Parameters
dog_id
required
uuid
insight_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "media_id": 2000,
  • "insight_id": 1000,
  • "media_type": "Video",
  • "duration": 15.2,
  • "resolution": "1920x1080",
  • "file_size_mb": 12.5,
  • "recorded_at": "2025-03-12T14:00:00Z"
}

🟠 Pet Data

Endpoints Related to Pet Profiles.

Create a new pet profile

path Parameters
account_id
required
string <uuid>

ID of the user account

Request Body schema: application/json
pet_name
required
string^[A-Za-z ]+$
species
required
string (SpeciesEnum)
Enum: "Dog" "Cat" "Other"
breed
string or null
pet_date_of_birth
string or null <date>
pet_age
integer or null >= 0
pet_sex
required
string (SexEnum)
Enum: "Male" "Female"
neutered_spayed
required
string (NeuteredEnum)
Enum: "Yes" "No" "Not Sure"
current_weight
number or null >= 0
current_height
string (SizeEnum)
Enum: "Small" "Medium" "Large"
vaccination_status
string (VaccinationEnum)
Enum: "Up-to-date" "Pending" "Not Sure"
next_vaccination_due_date
string or null <date>
known_medical_conditions
string or null
medications
string or null
next_medication_due_date
string or null <date>
veterinarian_contact
string or null
food_type
string or null
feeding_times_per_day
integer or null >= 1
portion_size
number or null >= 0
activity_level
string (ActivityEnum)
Enum: "Low Energy" "Moderate Energy" "High Energy"
daily_exercise_minutes
integer or null >= 0
sleep_routine
string or null
living_environment
string (LivingEnvEnum)
Enum: "Mostly Indoors" "Indoors + Walks" "Free Roaming"
household_members
integer or null >= 0
other_pets_at_home
string or null
temperament
string (TemperamentEnum)
Enum: "Calm & Gentle" "Playful & Energetic" "Protective / Guarding" "Shy / Reserved" "Anxious / Nervous"
object or null
object or null
play_preferences
Array of strings or null
insurance_provider
string or null
insurance_renewal_due_date
string or null <date>
insurance_policy_number
string or null
coverage_type
string (CoverageEnum)
Enum: "Accident Only" "Comprehensive" "Wellness Add-on"
insurance_validity_start
string or null <date>
insurance_validity_end
string or null <date>
claim_contact
string or null
profile_photo_url
string or null
emergency_instructions
string or null
special_notes
string or null

Responses

Request samples

Content type
application/json
{
  • "pet_name": "string",
  • "species": "Dog",
  • "breed": "string",
  • "pet_date_of_birth": "2019-08-24",
  • "pet_age": 0,
  • "pet_sex": "Male",
  • "neutered_spayed": "Yes",
  • "current_weight": 0,
  • "current_height": "Small",
  • "vaccination_status": "Up-to-date",
  • "next_vaccination_due_date": "2019-08-24",
  • "known_medical_conditions": "string",
  • "medications": "string",
  • "next_medication_due_date": "2019-08-24",
  • "veterinarian_contact": "string",
  • "food_type": "string",
  • "feeding_times_per_day": 1,
  • "portion_size": 0,
  • "activity_level": "Low Energy",
  • "daily_exercise_minutes": 0,
  • "sleep_routine": "string",
  • "living_environment": "Mostly Indoors",
  • "household_members": 0,
  • "other_pets_at_home": "string",
  • "temperament": "Calm & Gentle",
  • "socialization": {
    },
  • "training_obedience": { },
  • "play_preferences": [
    ],
  • "insurance_provider": "string",
  • "insurance_renewal_due_date": "2019-08-24",
  • "insurance_policy_number": "string",
  • "coverage_type": "Accident Only",
  • "insurance_validity_start": "2019-08-24",
  • "insurance_validity_end": "2019-08-24",
  • "claim_contact": "string",
  • "profile_photo_url": "string",
  • "emergency_instructions": "string",
  • "special_notes": "string"
}

Response samples

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

List all pet profiles for a user

path Parameters
account_id
required
string <uuid>

ID of the user account

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update an existing pet profile

path Parameters
pet_id
required
string <uuid>
Request Body schema: application/json
allOf
any

Responses

Request samples

Content type
application/json
{
  • "allOf": null
}

Response samples

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

Get a specific pet profile by pet ID

path Parameters
pet_id
required
string <uuid>

Responses

Response samples

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

Delete a pet profile

path Parameters
pet_id
required
string <uuid>

Responses

🟢 Treat Dispenser

Endpoints Related to Treat Dispenser

Dispense Treat

Sends a command to dispense a specified number of treats from the robot.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
music_file
required
string
quantity
required
integer [ 1 .. 10 ]

Number of treats to dispense.

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "dispense_treat",
  • "music_file": "bell.mp3",
  • "quantity": 2,
  • "timestamp": "2025-03-12T15:00:00Z"
}

Response samples

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

Get Bin Status

Returns the current treat bin level and last synced time for a given device.

path Parameters
device_id
required
string <uuid>

Unique identifier of the device (UUID)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Treat bin status retrieved successfully",
  • "data": {
    }
}

🟢 Ball Thrower

Endpoints Related to Ball Thrower

Throw Ball

Sends a command to throw a ball from the robot at a specified speed and optional play location.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
speed
required
string
Enum: "LOW" "MEDIUM" "HIGH"

Speed of the ball throw.

object or null

Optional location where the ball should be thrown. If omitted, the robot's current location is used.

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "throw_ball",
  • "speed": "MEDIUM",
  • "play_location": {
    },
  • "timestamp": "2025-03-12T15:10:00Z"
}

Response samples

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

🟢 Go To Location

Endpoints Related to Go To Location

Go To Location

Sends a command for the robot to navigate to a given x, y, and yaw location.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
required
object
timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "go_to_location",
  • "target": {
    },
  • "timestamp": "2025-03-12T16:00:00Z"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Go to location command executed successfully",
  • "data": {
    }
}

Cancel Go To Location

Sends a command for cancel_go_to_location

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Cancel Go to location command executed successfully"
}

🟢 Dock

Endpoints Related to Dock

Dock

Sends a command To Robot for Docking.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Responses

Response samples

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

Cancel Dock

Sends a command To Robot for Cancel Docking.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Cancel Dock command executed successfully"
}

🟢 Volume Control

Endpoints Related to Volume Control

Adjust Robot Volume

Sends a command to set, increase, or decrease the robot's volume.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
volume_level
integer [ 0 .. 100 ]

Desired volume level (0 = mute, 100 = max volume).

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

Optional parameter to increase or decrease volume by a step.if given none it gonna set the volume

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "set_volume",
  • "volume_level": 50,
  • "adjustment": "increase",
  • "timestamp": "2025-03-12T16:30:00Z"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "SUCCESS",
  • "message": "volume updated successfully",
  • "data": "null"
}

🟢 Body Light

Endpoints Related to Body Light

Get Status Light Brightness

Retrieves the current status light brightness setting for the specified robot device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Status light brightness retrieved successfully.",
  • "data": {
    }
}

Body Light Color/Animation

Sends a command to set the robot's body light color, animation, and optionally brightness.

Note: For brightness-only control, use the /body_light_brightness/{device_id} endpoint.

All error responses follow the standard response schema: { code, status, message, data }.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
color
string^#(?:[0-9a-fA-F]{3}){1,2}$

Hexadecimal color code (e.g., "#FF5733" for orange).

brightness
integer [ 0 .. 100 ]

Brightness level (0 = off, 100 = full brightness).

animation
string
strip_number
int

To control Brightness of a strip , for setting all the leds consider -1

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "set_body_light_animation",
  • "color": "#00FF00",
  • "brightness": 80,
  • "animation": "flow",
  • "strip_number": 1,
  • "timestamp": "2025-03-12T16:45:00Z"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Body light brightness adjusted as requested successfully",
  • "data": {
    }
}

Body Light Brightness

Sends a command to set or adjust the brightness level of the robot's body light. For color/animation control, use the /body_light/{device_id} endpoint. All error responses follow the standard response schema: { code, status, message, data }.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
brightness_level
required
integer [ 0 .. 100 ]
adjustment
string or null
Enum: "increase" "decrease"

Responses

Request samples

Content type
application/json
{
  • "brightness_level": 80,
  • "adjustment": null
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Body light brightness adjusted as requested successfully",
  • "data": {
    }
}

🟢 Display Brightness

Endpoints Related to Display Brightness

Get Display Brightness

Retrieves the current display brightness setting for the specified robot device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Display brightness retrieved successfully.",
  • "data": {
    }
}

Adjust Robot Display Brightness

Sends a command to set or adjust the brightness level of the robot's display.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
brightness_level
integer [ 0 .. 100 ]

Desired display brightness level (0 = screen off, 100 = maximum brightness).

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

Optional parameter to increase or decrease brightness by a step.if given none it will set the brightness to given level

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "set_display_brightness",
  • "brightness_level": 75,
  • "adjustment": "INCREASE",
  • "timestamp": "2025-03-12T16:55:00Z"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "SUCCESS",
  • "message": "Display Brightness Adjusted Successfully",
  • "data": "null"
}

🔴 Demo Dance

Commands Related to triggering or stopping the robot's demo dance.

Trigger or Stop Demo

Sends a command to start or stop a demo dance routine on the robot.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
command
required
string
Enum: "start_dance" "stop_dance"

Command to start or stop the demo dance.

dance_style
string
Enum: "rotate_in_place" "square" "ablity_show"

Optional dance style (ignored if stopping).

duration
integer

Optional duration in seconds (ignored if stopping).

timestamp
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "command": "start_dance",
  • "dance_style": "rotate_in_place",
  • "duration": 30,
  • "timestamp": "2025-03-12T17:00:00Z"
}

Response samples

Content type
application/json
{
  • "status": "STARTED",
  • "current_dance_style": "FREESTYLE",
  • "remaining_time": 25,
  • "error_message": null,
  • "timestamp": "2025-03-12T17:01:00Z"
}

🟠 Web Sockets

WebSocket-based control endpoints for robot Mapping, Navigation and Teleoperation.

WebSocket

This WebSocket connection allows clients to communicate with a specific device_id.
Messages from one client are relayed only to other clients connected to the same device_id.

Currently This Websocket Actively Supports for Data Transfer for following Features

  • Real Time Mappping
  • Autonomous Navigation (Clients Need To Publish Goals on /goal_pose)

Robot Data

The WebSocket provides real-time robot data in JSON format, including a topic field (e.g., {"topic": "tf", ...}).

Published Topics:


Client Guidelines for Sending Commands

To successfully execute a command on the robot, clients must follow these guidelines:

  1. Use the Defined Command Structure
  1. Refer to the Command Library
  • Check the available commands for a specific device in the Command Library.

By following these guidelines, clients can ensure successful command execution on the target device.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Unique identifier for the device channel.

Responses

Response samples

Content type
application/json
{
  • "message": "Websocket Connected Successfully to {device_id}."
}

🟢 Web Hooks

WebHook-Based Control to Send Notification Based on triggers.

Send Notification

This webhook is triggered when a robot generates an alert due to an event. The robot must send a POST request to this endpoint with the alert details.

path Parameters
device_id
required
string

Unique identifier of the robot sending the alert

Request Body schema: application/json
timestamp
required
string <date-time>

Time stamp representing the exact moment of alert generation.

uuid
required
string <uuid>

Unique identifier for the specific alert instance.

source
required
string

Source of the alert.

severity
required
integer
Enum: 1 2 3 4 5

Severity level of the alert (1: Most Critical, 5: Least Critical).

header
required
string

Brief, high-level description of the notification.

body
required
string

Detailed notification body.

action_required
string

Additional info for the user regarding the alert.

link_for_favicon
string <uri>

Link for the favicon or small icon related to the alert.

link_for_large_image
string <uri>

Link for a large image or gif related to the alert.

Responses

Request samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "source": "string",
  • "severity": 1,
  • "header": "string",
  • "body": "string",
  • "action_required": "string",
  • "link_for_favicon": "http://example.com",
  • "link_for_large_image": "http://example.com"
}

Response samples

Content type
application/json
{
  • "message": "Alert sent successfully.",
  • "acknowledged": true
}

🟢 Sync

Sync API That Sync Data b/w Robot Database (oro_local_db) to Server Database (oro_server_db) .

Sync

path Parameters
device_id
required
string <uuid>

UUID of the device to sync

Request Body schema: application/json
sync_types
Array of strings

List of sync types to request. Allowed values:

  • device_activity
  • battery_logs
  • connectivity_logs
  • location_logs
  • treat_dispenser_status
  • map_logs
  • waypoint_logs
  • all

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "success",
  • "robot_status": "online",
  • "synced_at": "2019-08-24T14:15:22Z",
  • "response": { }
}

🟢 Mapping

API Endpoints that cater for Mapping Service .

Start Mapping

path Parameters
device_id
required
string
Request Body schema: application/json
mapping_mode
string
Enum: "manual" "autonomous"

Mode in which mapping is started. Default is "manual".

Responses

Request samples

Content type
application/json
{
  • "mapping_mode": "manual"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Mapping started successfully.",
  • "data": {
    }
}

Stop And Save/Cancel

Stops Mapping Session and Either Saves Map or Cancels Map (Delete Map and Its Mapping Sessions)

path Parameters
device_id
required
string
Request Body schema: application/json
action
required
string
Enum: "save" "cancel"

Action to perform when stopping the mapping session.

Responses

Request samples

Content type
application/json
{
  • "action": "save"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Mapping stop command (save) sent",
  • "data": null
}

Skip Frontier

Sends a command To Robot for Skipping the Frontier i.e specific Region or Avoid Mapping Current Area.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Skipping Frontier command executed successfully"
}

Get Map Details

path Parameters
device_id
required
string
map_id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Map details fetched successfully.",
  • "data": {
    }
}

Update Map Details

path Parameters
device_id
required
string
map_id
required
string
Request Body schema: application/json
map_id
string <uuid>

Unique identifier for the map

device_id
string <uuid>

Unique identifier for the device

map_name
string

Name of the map

pgm_file
string

Link to the pgm file of the map

description
string

Description of the map

object

Address details for the map

mode
string
Enum: "trinary" "scale" "raw"

Mode of the map representation (e.g., trinary)

resolution
number <float>

Map resolution in meters per cell

origin
Array of numbers <float> [ items <float > ]

Origin of the map in the form [x, y, theta]

negate
integer
Enum: 0 1

Whether to negate pixel values (0 or 1)

occupied_thresh
number <float>

Threshold above which cells are considered occupied

free_thresh
number <float>

Threshold below which cells are considered free

created_at
string <date-time>

Date and time when the map was created

active_map
boolean

Whether this map is currently active

last_modified_at
string <date-time>

Date and time when the map was last modified

s3_path
string

S3 path where the map files are stored

Responses

Request samples

Content type
application/json
{
  • "map_id": "09d2b626-2e4e-45ef-a3c4-e6aeb6c83db1",
  • "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
  • "map_name": "string",
  • "description": "string",
  • "address": {
    },
  • "mode": "trinary",
  • "resolution": 0.05,
  • "origin": [
    ],
  • "negate": 0,
  • "occupied_thresh": 0.65,
  • "free_thresh": 0.25,
  • "created_at": "2019-08-24T14:15:22Z",
  • "active_map": true,
  • "last_modified_at": "2019-08-24T14:15:22Z",
  • "s3_path": "users_data/maps/123e4567-e89b-12d3-a456-426614174000/map.pgm"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Map 7f3c9b14-9de1-4d3d-9114-74a5a109a7f9 updated successfully",
  • "data": [
    ]
}

Delete Map

Deletes a map along with related sessions and waypoints.

path Parameters
device_id
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The ID of the device.

map_id
required
string <uuid>
Example: 7f3c9b14-9de1-4d3d-9114-74a5a109a7f9

The ID of the map to be deleted.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Map 7f3c9b14-9de1-4d3d-9114-74a5a109a7f9 and 2 associated session(s) deleted successfully",
  • "data": null
}

Add static and dynamic layers

Not Yet Functional

path Parameters
device_id
required
string
map_id
required
string
Request Body schema: application/json
object
object

Responses

Request samples

Content type
application/json
{
  • "static": {
    },
  • "dynamic": {
    }
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Layers added successfully.",
  • "data": null
}

Get layers

Not Yet Functional

path Parameters
device_id
required
string
map_id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Layers fetched successfully.",
  • "data": {
    }
}

Get all waypoints

path Parameters
device_id
required
string
map_id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Waypoints fetched successfully.",
  • "data": [
    ]
}

Add or update waypoints

This Endpoint Can be only be used to Add a New Waypoint/Waypoints or Update a Existing Waypoint/Waypoints. For Deleting a waypoint Refer Delete /maps/{device_id}/{map_id}/waypoints/{waypoint_name}

path Parameters
device_id
required
string
map_id
required
string
Request Body schema: application/json
Array of objects (Waypoint)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "2 new and 1 existing waypoint(s) processed successfully",
  • "data": {
    }
}

Delete Waypoint

Delete a specific waypoint by its name

path Parameters
device_id
required
string
map_id
required
string
waypoint_name
required
string

Name of the waypoint to delete

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Waypoint 'WP1' deleted successfully",
  • "data": null
}

Get All Maps

path Parameters
device_id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Maps fetched successfully.",
  • "data": [
    ]
}

Get Active Map

Retrieves the currently active map for the specified device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Active map fetched successfully.",
  • "data": {
    }
}

Get Active Map Waypoints

Retrieves all waypoints for the active map of the specified device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Active map waypoints fetched successfully.",
  • "data": []
}

Set Active Map

Sets the specified map as the active map for the given device. Only one map can be active at a time per device.

path Parameters
device_id
required
string <uuid>

UUID of the target device

map_id
required
string <uuid>

UUID of the map to set as active

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Map {map_id} set as active for device {device_id}",
  • "data": {
    }
}

🟢 Privacy

API Endpoints that cater for Privacy Service .

Enable/Disable Privacy

Sends a command to a connected robot device via WebSocket to enable or disable privacy mode. Supports optional duration for enabling privacy mode. Waits for a response from the robot or times out after 10 seconds.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Request Body schema: application/json
action
required
string
Enum: "enable_privacy" "disable_privacy"

Whether to enable or disable privacy mode.

keep_until_disabled
boolean

Whether to keep privacy mode on until manually disabled.

duration_minutes
integer

Duration to keep privacy mode on, in minutes.

Responses

Request samples

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

Response samples

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

Privacy Status

Fetches the privacy mode status of the robot device from the server database based on the device_id.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Responses

Response samples

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

🟢 Capture Media

API Endpoints that cater for Media Capture .

Capture Media

Sends a command to a connected robot device via WebSocket to capture media (photo, video, or audio) and upload it to the S3 Bucket. The robot must be connected via WebSocket. The media_type must be one of: photo, video, audio.

path Parameters
device_id
required
string <uuid>

UUID of the target device

Request Body schema: application/json
media_type
required
string
Enum: "photo" "video" "audio"

Type of media to capture photo, video, or audio

Responses

Request samples

Content type
application/json
{
  • "media_type": "photo"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Photo captured and uploaded successfully.",
  • "data": { }
}

Home Page Photo

Sends a command to a connected robot device via WebSocket to capture a home page photo. Waits for a photo in base64 format and returns it as a JPEG image stream.

path Parameters
device_uuid
required
string <uuid>

UUID of the target device

Responses

Response samples

Content type
application/json
{
  • "detail": "HTTP ERROR EXCEPTION HANDLED IN SERVER."
}

🟢 Camera Head

API Endpoints that cater for Controlling Camera Head .

Control Camera Head

This endpoint can be used to control the camera head of the device.

All responses (success and error) use the standard response schema: { code, status, message, data }.

path Parameters
device_id
required
string
Request Body schema: application/json
command
string
direction
required
string
Enum: "Clockwise" "Anticlockwise" "Home"

Control Cam Head.

Responses

Request samples

Content type
application/json
{
  • "command": "control_camera_head",
  • "direction": "Home"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Camera head control command executed successfully.",
  • "data": { }
}

Get Camera Head Status

Retrieve the latest cam head module status for a specific device.

path Parameters
device_id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "status": "success",
  • "message": "Cam head module status retrieved successfully.",
  • "data": {
    }
}