Skip to main content

REST API Overview

OpenRobOps exposes a REST API for programmatic access to robot data, configuration, and management operations.

Base URL​

http://localhost:3000/api

All API endpoints are served under the /api path prefix by the Meteor app server.

Authentication​

All API requests (except OPTIONS for CORS) require authentication via the x-auth-api-key HTTP header:

curl -H "x-auth-api-key: YOUR_API_KEY" \
http://localhost:3000/api/robots

API keys are per-user and created from the web app under Settings → API keys. The key is shown once at creation time — copy or download it then, as it cannot be retrieved later. A key may carry an expiration; an expired key is rejected. See Access Control → API Keys for how to create and manage keys.

note

The header x-auth-inorbit-app-key is also accepted as an alias, for compatibility with existing InOrbit tooling.

Authentication Errors​

StatusErrorDescription
401AUTHENTICATION_ERROR: no API key provided in x-auth-api-key HTTP headerMissing x-auth-api-key header
403AUTHENTICATION_ERROR: wrong credentialsUnknown / invalid API key
403AUTHENTICATION_ERROR: API key expiredThe key has passed its expiration
403User not authorizedUser lacks any role (pending approval)
403User not authorized for robot {id}User lacks access to the specific robot

Response Format​

All responses are JSON. Successful responses return the data directly:

{
"id": "robot_123",
"name": "my-robot",
"agentOnline": true
}

Most error responses include an error field:

{
"error": "NOT_FOUND"
}

Some endpoints instead return the error message as a bare JSON string body (for example the robots 404 and several validation 400s) — check each endpoint's documentation for the exact shape.

HTTP Methods​

MethodUsage
GETRetrieve resources
POSTExecute actions / apply configuration
PUTCreate or update a resource (e.g. lock a robot)
DELETERemove a resource (e.g. unlock a robot)
OPTIONSCORS preflight (handled automatically)

CORS​

The API supports permissive CORS, allowing requests from any origin:

  • Access-Control-Allow-Origin: *
  • Access-Control-Allow-Methods: *
  • Access-Control-Allow-Headers: x-auth-api-key, x-auth-inorbit-app-key, content-type

Available Endpoints​

EndpointMethodDescriptionReference
/api/robotsGETList all robotsRobots API
/api/robots/{robotId}GETGet a single robotRobots API
/api/robots/{robotId}/lockGETGet robot lock statusLocks API
/api/robots/{robotId}/lockPUTLock a robotLocks API
/api/robots/{robotId}/lockDELETEUnlock a robotLocks API
/api/robots/{robotId}/actionsPOSTExecute an actionActions API
/api/robots/{robotId}/actions/{executionId}GETGet action execution statusActions API
/api/robots/{robotId}/navigation/waypointsPOSTSend a navigation waypointNavigation API
/api/robots/{robotId}/attributes/{attrId}GETGet robot attributeAttributes API
/api/robots/{robotId}/localization/poseGETGet robot poseLocalization API
/api/robots/{robotId}/localization/fullGETGet full localizationLocalization API
/api/configuration/applyPOSTApply config objectConfigAPI
/api/configuration/clearPOSTClear config objectConfigAPI
/api/configuration/listGETList configurationsConfigAPI
/api/configuration/kindsGETList config kindsConfigAPI

Error Codes​

Status CodeMeaning
200Success
201Created (e.g. robot locked)
204Success, no content (e.g. robot unlocked)
400Bad request (invalid parameters)
401Authentication required
403Forbidden (insufficient permissions)
404Resource not found
500Internal server error

Next Steps​