From rhombus-developer
Comprehensive guide for working with the Rhombus API and building applications on the Rhombus platform. Use when the user asks questions about the Rhombus API, requests cURL examples, needs endpoint documentation, wants to build apps integrating Rhombus cameras/access control/sensors, asks "How do I [X] using the Rhombus API", or asks about streaming video, LPR, face recognition, webhooks, door controllers, IoT sensors, alarm monitoring, or any Rhombus development task. Also trigger when the user mentions Rhombus platform capabilities, wants to generate SDK clients, or references the Rhombus OpenAPI spec. Covers all 60+ API service categories across 846+ endpoints including camera management, access control, IoT sensors, face recognition, vehicle/LPR, alarm monitoring, lockdown plans, occupancy, elevators, webhooks, user management, and more.
npx claudepluginhub rhombussystems/claude-code-plugins --plugin rhombus-developerThis skill uses the workspace's default tool permissions.
This skill provides comprehensive support for working with the Rhombus API and building applications on the Rhombus platform. Rhombus was built on API-driven micro-services from day one — every feature in the web console, mobile apps, and firmware is backed by the same API endpoints available to developers.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Share bugs, ideas, or general feedback.
This skill provides comprehensive support for working with the Rhombus API and building applications on the Rhombus platform. Rhombus was built on API-driven micro-services from day one — every feature in the web console, mobile apps, and firmware is backed by the same API endpoints available to developers.
Always start by reading references/quickstart.md for authentication patterns, base URL, and common endpoint examples.
https://api2.rhombussystems.comhttps://api2.rhombussystems.com/api/openapi/public.jsonreferences/rhombus-api.json (122,910 lines, 856 endpoints)https://api-docs.rhombus.community/https://api-docs.rhombus.community/mcp (live doc search for AI tools)https://api-docs.rhombus.community/llms.txthttps://apidocs.rhombussystems.com/https://rhombus.communityapi@rhombus.comAll requests require two headers. All endpoints use POST, even for reads.
x-auth-scheme: api-token
x-auth-apikey: YOUR_API_KEY
There is also a federated session token flow for browser-based apps where you cannot expose the API key directly. Generate a short-lived token via /org/generateFederatedSessionToken and use it with x-auth-scheme: federated-session-token.
The Rhombus API is organized into 60+ service categories. When searching the spec, match against these exact tag strings.
"Camera Webservice" — Camera CRUD, settings, snapshots, VOD URIs, media URIs, shared streams"Component Webservice" — Device lifecycle, firmware, health monitoring across all device types"Door Controller Webservice" — Door controller hardware configuration and monitoring"Door Webservice" — Logical door state, lock/unlock, door events"Doorbell Camera Webservice" — Doorbell-specific camera operations"Sensor Webservice" — IoT sensor data retrieval (environmental, motion)"Climate Webservice" — Temperature, humidity, air quality sensor data"AudioGateway Webservice" — Audio gateway device management"AudioPlayback Webservice" — Audio playback and announcements"BLE Webservice" — Bluetooth Low Energy device management"Badge Reader Webservice" — Badge reader hardware management"Button Webservice" — Physical button/panic button devices"Relay Webservice" — Relay output control (gates, barriers, etc.)"Media Device Webservice" — Media device management"Elevator Webservice" — Elevator access control and floor management"Device Config Webservice" — Low-level device configuration"Access Control Webservice" — Credentials, groups, grants, revocations, assignments"Access Control Integrations Webservice" — Third-party access control integrations"Guest Management Kiosk Webservice" — Visitor/guest management kiosk operations"Face Recognition Person Webservice" — Manage known persons for face recognition"Face Recognition Event Webservice" — Face recognition event data"Face Recognition Matchmaker Webservice" — Face matching configuration and thresholds"Vehicle Webservice" — Vehicle/LPR detection, license plate lookups"Occupancy Webservice" — People counting and occupancy data"Logistics Webservice" — Logistics and shipping/receiving analytics"Proximity Webservice" — Proximity detection events"Search Webservice" — AI-powered search across events"Event Search Webservice" — Search events across all device types (access, motion, analytics)"Event Webservice" — Event management and custom seekpoints"Alert Monitoring Webservice" — Alert rule configuration and monitoring"Alarm Monitoring Keypad Webservice" — Alarm panel keypad operations"Lockdown Plan Webservice" — Emergency lockdown plan configuration and execution"RapidSOS Webservice" — RapidSOS emergency integration"Rules Webservice" — Automation rules engine"Rules Records Webservice" — Rules execution history and records"Schedule Webservice" — Scheduling for access, rules, and operations"User Webservice" — User CRUD, roles, permissions"User Metadata Webservice" — Extended user metadata"Org Webservice" — Organization-level settings and configuration"Customer Webservice" — Customer/tenant management"Location Webservice" — Location hierarchy (buildings, floors, zones)"Permission Webservice" — Role-based access control configuration"License Webservice" — License management"Feature Webservice" — Feature flag management"Policy Webservice" — Security and retention policies"Partner Webservice" — Partner/reseller operations"Developer Webservice" — API key management, webhook configuration"Webhook Integrations Webservice" — Webhook endpoint management"Integrations Webservice" — General integration configuration"Org Integrations Webservice" — Organization-level integrations"Incident Management Integrations Webservice" — Incident management (e.g., PagerDuty)"Service Management Integrations Webservice" — Service management (e.g., ServiceNow)"IoT Integrations Webservice" — IoT platform integrations"Storage Integrations Webservice" — External storage integrations"OAuth Webservice" — OAuth flow management"Video Webservice" — Video frame retrieval, exact frame URIs, media operations"Upload Webservice" — File upload operations"Export Webservice" — Data and footage export"Report Webservice" — Report generation"TvOs Config Webservice" — Apple TV / display configuration"Help Webservice" — Help and support operationsThe complete OpenAPI spec is at references/rhombus-api.json (122,910 lines). Never try to read it in full. Use targeted grep searches.
Find endpoints by keyword (most common):
grep -i "keyword" references/rhombus-api.json | grep '"operationId"'
List ALL endpoints in a category:
grep -B5 '"tags" : \[ "Camera Webservice"' references/rhombus-api.json | grep '"operationId"'
Count endpoints per category:
grep '"tags" : \[' references/rhombus-api.json | sort | uniq -c | sort -rn
Get full endpoint detail (path + operationId + tags) in one pass:
grep -E '"(operationId|tags|summary)" :' references/rhombus-api.json | head -60
Find a specific endpoint's request schema:
grep -A 50 '"operationId" : "getMinimalCameraStateList"' references/rhombus-api.json | head -60
Find schema definitions by name:
grep '"SchemaName" :' references/rhombus-api.json -A 30
Find all endpoints matching a pattern (e.g., all "create" operations):
grep '"operationId" : "create' references/rhombus-api.json
Find deprecated endpoints:
grep -B5 '"deprecated" : true' references/rhombus-api.json | grep '"operationId"'
Extract request body schema for an endpoint:
grep -A 100 '"operationId" : "targetEndpoint"' references/rhombus-api.json | grep -A 20 '"requestBody"'
Find endpoints that reference a specific schema:
grep -i 'SchemaName' references/rhombus-api.json | head -20
-A 80 to get the full endpoint definition including parameters, request body, and response schema references$ref), follow the schema name to components/schemas in the specRhombus maintains official example repos at https://github.com/RhombusSystems/. Evaluate recency before recommending — some may use older patterns.
https://github.com/RhombusSystems/player-examplehttps://github.com/RhombusSystems/rhombus-api-examples-pythonrequests.session() with persistent headershttps://github.com/RhombusSystems/rhombus-api-examples-javascripthttps://github.com/RhombusSystems/rhombus-node-mcpRHOMBUS_API_KEY env varhttps://github.com/RhombusSystems/low-code-no-coderhombus-api-examples-java — Java API examplesrhombus-streamdeck — Elgato Stream Deck integrationrhombus-jetson-roboflow — NVIDIA Jetson + Roboflow edge AIrhombus-libonvif — ONVIF library with YOLOXsystem-surveyor — System Surveyor specs and profilesRhombus provides a Documentation MCP server that gives AI tools live access to the complete developer documentation. This complements the local OpenAPI spec grep approach — use the MCP for narrative docs, implementation guides, and code examples; use local grep for precise endpoint schema lookups.
https://api-docs.rhombus.community/mcpsearch-documentation (full-text doc search), get-endpoint-details (specific endpoint info), search-code-examples (implementation snippets)Setup in Claude Code:
claude mcp add --transport http rhombus-docs https://api-docs.rhombus.community/mcp
Setup in Cursor / VS Code (.vscode/mcp.json):
{
"mcpServers": {
"rhombus-docs": {
"url": "https://api-docs.rhombus.community/mcp",
"transport": "http"
}
}
}
When to use the Documentation MCP vs. local spec grep: Use the MCP when you need implementation guides, best practices, or narrative documentation. Use local grep on references/rhombus-api.json when you need exact parameter schemas, response structures, or to enumerate endpoints in a category.
Every cURL command follows this pattern:
curl -X POST "https://api2.rhombussystems.com/api/ENDPOINT_PATH" \
-H "x-auth-scheme: api-token" \
-H "x-auth-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"requiredField": "value"
}'
Checklist: both auth headers present, POST method, Content-Type set, JSON body formatted, required vs optional fields annotated, realistic example values (base64 url-safe UUIDs like "AAAAAAAAAAAAAAAAAAAAAA", millisecond epoch timestamps like 1234567890000).
Rhombus publishes an OpenAPI 3.0 spec. Generate typed clients in any language:
# Python
openapi-generator-cli generate \
-i https://api2.rhombussystems.com/api/openapi/public.json \
-g python -o ./rhombus-python-client
# TypeScript/Node
openapi-generator-cli generate \
-i https://api2.rhombussystems.com/api/openapi/public.json \
-g typescript-fetch -o ./rhombus-ts-client
# Java, C#, Go, PHP, etc. — same pattern, swap the -g flag
The JavaScript examples repo uses Rhombus Codegen for typed stubs — this is an alternative to openapi-generator.
POST /org/generateFederatedSessionTokenPOST /camera/getMediaUris with cameraUuidplayer-example repo for full implementationPOST /camera/getMinimalCameraStateListPOST /camera/getVodUri with cameraUuid, startTime, durationPOST /video/getExactFrameUri (supports cropping)POST /camera/createSharedLiveVideoStream<iframe src="SHARED_STREAM_URL"></iframe>disableautoplay, hideevents, realtime, showheader (true/false)POST /user/createUserPOST /accesscontrol/createStandardCsnCredentialPOST /accesscontrol/assignAccessControlCredentialPOST /accesscontrol/createAccessGrantgetExactFrameUri with crop parameters for vehicle image extractionlow-code-no-code repo for examples)Performance: Use getMinimal* endpoints when full details aren't needed. Cache location and device lists (they change infrequently). Implement pagination for large result sets. Use appropriate time ranges to limit results.
Rate Limits: 1,000 requests/hour and 100 requests/minute burst. Implement exponential backoff when hitting limits.
Security: Never hardcode API keys — use environment variables or secret managers. For browser apps, use a server-side proxy with federated session tokens. Rotate API keys periodically. Use HTTPS for all requests.
Error Handling: 401 = auth failure (check API key + headers), 400 = bad request body, 404 = resource not found, 500 = server error (retry with exponential backoff).
Architecture: Rhombus uses POST for all operations, including reads. UUIDs are base64 url-safe encoded strings. Timestamps are Unix epoch milliseconds. The API is the same API that Rhombus's own web console and mobile apps use — if you can do it in the UI, you can do it via API.
"How do I [X]?" → Identify the category, search for endpoints, provide a complete cURL example, explain the workflow if multi-step.
"Build me [an app that does X]" → Identify the relevant API workflows, reference the GitHub example repos for architectural patterns (especially player-example for video), and scaffold the implementation with proper auth, error handling, and the right endpoints.
"What endpoints exist for [X]?" → Search the spec by tag or keyword, list the relevant operationIds with brief descriptions.
"Show me the schema for [X]" → Find the endpoint in the spec, extract the request/response schema, and format it clearly.