> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.rhombus.community/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Get started with the Rhombus developer platform — build security integrations using the REST API for cameras, access control, sensors, alarms, and analytics.

## Quick Start

<Steps>
  <Step title="Get API Credentials">
    Generate your API key in the [Rhombus Console](https://console.rhombussystems.com/settings/api-management/). Choose token-based (simpler) or certificate-based (more secure) authentication.
  </Step>

  <Step title="Make Your First Request">
    Test your connection with a simple API call. All requests go to `https://api2.rhombussystems.com` — or `https://api2.eu.rhombussystems.com` for [EU organizations](/api-regions) — with your API key in the headers.
  </Step>

  <Step title="Explore the API Reference">
    Browse [900+ endpoints](/api-reference) to discover capabilities for your integration.
  </Step>

  <Step title="Join the Community">
    Get help and share experiences at [rhombus.community](https://rhombus.community).
  </Step>
</Steps>

## Integration Options

<Note>
  **OpenAPI 3.0 Specification**: Download our [machine-readable spec](https://api2.rhombussystems.com/api/openapi/public.json) for automated client generation.
</Note>

<Tabs>
  <Tab title="HTTP Client">
    ```javascript JavaScript theme={null}
    const response = await fetch('https://api2.rhombussystems.com/api/camera/getMinimalCameraStateList', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'x-auth-scheme': 'api-token',
        'x-auth-apikey': 'YOUR_API_KEY'
      },
      body: JSON.stringify({})
    });

    const data = await response.json();
    console.log(`Found ${data.cameraStates.length} cameras`);
    ```
  </Tab>

  <Tab title="Generated SDKs">
    ```bash Generate Client Libraries theme={null}
    # Generate client libraries using OpenAPI Generator
    openapi-generator-cli generate \
      -i https://api2.rhombussystems.com/api/openapi/public.json \
      -g python \
      -o ./rhombus-python-client

    # Or use other generators: java, csharp, go, php, etc.
    ```
  </Tab>

  <Tab title="cURL Examples">
    ```bash cURL theme={null}
    curl -X POST https://api2.rhombussystems.com/api/camera/getMinimalCameraStateList \
      -H "Content-Type: application/json" \
      -H "x-auth-scheme: api-token" \
      -H "x-auth-apikey: YOUR_API_KEY" \
      -d '{}'
    ```
  </Tab>
</Tabs>

## What You Can Build

<CardGroup cols={3}>
  <Card title="Camera Management" icon="video" href="/implementations/streaming-video">
    Stream live video, retrieve recordings, manage camera settings, and access metadata
  </Card>

  <Card title="Access Control" icon="key" href="/implementations/qr-code-access-control">
    Manage doors, users, credentials, and access events across your facilities
  </Card>

  <Card title="Environmental Monitoring" icon="temperature-half" href="/implementations/iot-sensors">
    Monitor temperature, humidity, air quality, and other environmental conditions
  </Card>

  <Card title="Analytics & Insights" icon="chart-line" href="/api-reference/overview">
    Access AI-powered analytics, people counting and object detection
  </Card>

  <Card title="Event Management" icon="bell" href="/webhooks">
    Create custom workflows, manage notifications, and respond to security events
  </Card>

  <Card title="Device Administration" icon="server" href="/api-reference/overview">
    Configure devices, manage firmware updates, and monitor system health
  </Card>
</CardGroup>

## Authentication & Base URL

All API requests use your region's base URL:

| Region | Base URL |
| - | - |
| US | `https://api2.rhombussystems.com` |
| EU | `https://api2.eu.rhombussystems.com` |

<Info>
  Not sure which region your organization is in? Check your console URL — `console.eu.rhombussystems.com` means EU. See [API Regions (US & EU)](/api-regions) for details.
</Info>

Include authentication headers in every request:

```text theme={null}
x-auth-scheme: api-token
x-auth-apikey: YOUR_API_KEY
```

<Warning>
  Store your API key securely - it provides full access to your organization's data.
</Warning>

### API tokens vs federated tokens

Rhombus has two kinds of token, and they are not interchangeable:

* **API token**: the key above. It is long-lived, carries its role's permissions, and is sent as `x-auth-scheme: api-token` + `x-auth-apikey`. Keep it on your server. It works against the Rhombus cloud API and cloud media, but **devices on your local network never accept it**.
* **Federated token**: a short-lived token you mint *with* your API token by calling `POST /api/org/generateFederatedSessionToken`. It inherits the minting key's role (optionally limited to one device with `deviceUUid`), expires after `durationSec`, and is sent as `x-auth-scheme: federated-token` + `x-auth-ft`, as headers or as query parameters on media URLs. Use it anywhere you can't safely put your API key: browsers, video players, and streaming directly from devices on your LAN.

See [Streaming over LAN](/implementations/lan-streaming) for the full comparison and examples.

## Community & Support

<CardGroup cols={2}>
  <Card title="Developer Community" icon="users" href="https://rhombus.community">
    Get help from Rhombus engineers and fellow developers. Share integration examples, troubleshoot issues, and learn best practices.
  </Card>

  <Card title="Rhombus Console" icon="desktop" href="https://console.rhombussystems.com">
    Manage API keys and configure your Rhombus platform. Pro tip: Use Chrome DevTools to inspect network requests for implementation hints.
  </Card>
</CardGroup>

<Note>
  **Always Up to Date**: This documentation is generated directly from our production API specification and refreshes automatically whenever the API changes.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.