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

# Quickstart

> Make your first Energy Management API request in minutes

This guide takes you end to end — from getting your credentials to scheduling a charging-limit profile and watching it take effect.

## Prerequisites

You need two things, both from the **RiDERgy dashboard**:

1. **OAuth client credentials** (`client_id` and `client_secret`). Your tenant must have the Energy Management API enabled. Contact RiDERgy to enable it and create your credentials — see [Authentication](/authentication).
2. **The IDs of the resources you want to control** — a `locationId`, a charger's `controllerUuid`/`connectorId`, or a `clusterId`. These come from your RiDERgy account: if you have a RiDERgy account with an integrated location, you can look the IDs up in the **RiDERgy app**. They identify the same locations and chargers you see there.

<Note>
  The interactive **Try it** panels send requests to the **live production API**. A `POST`/`PUT` here changes a real site. Only use values you actually intend to apply.
</Note>

## 1. Check connectivity

`GET /health` needs no authentication and confirms the API is reachable:

```bash theme={null}
curl https://api.ridergy.com/v1/health
```

```json theme={null}
{ "status": "ok" }
```

## 2. Obtain an access token

Exchange your client credentials for a Bearer token (valid for 1 hour):

```bash theme={null}
curl -X POST https://api.ridergy.com/v1/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  }'
```

Save the `access_token` from the response — you'll use it in the following steps.

## 3. Set a location's permanent limit

The permanent limit is the fallback applied whenever no scheduled profile is active.

```bash theme={null}
curl -X PUT https://api.ridergy.com/v1/locations/{locationId}/limit \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "limitKw": 100 }'
```

## 4. Schedule a priority profile

Limit the location to 50 kW during a specific window, at priority 5:

```bash theme={null}
curl -X POST https://api.ridergy.com/v1/locations/{locationId}/schedules \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startTime": "2026-01-01T08:00:00Z",
    "endTime":   "2026-01-01T18:00:00Z",
    "limitKw":   50,
    "priority":  5
  }'
```

The profile is applied and reverted automatically at its `startTime`/`endTime` — no further API calls are needed.

## 5. Verify the effective limit

This returns every profile with a computed `status` (`SCHEDULED`, `ACTIVE`, `EXPIRED`) and the current `effectiveLimitKw`:

```bash theme={null}
curl https://api.ridergy.com/v1/locations/{locationId}/limits \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

See the [Priority model](/concepts/priority-model) for exactly how the effective limit is resolved.

## Next steps

* [Authentication](/authentication) — OAuth 2.0 flow, scopes, and token management.
* [Priority model](/concepts/priority-model) — how profiles, priorities, and clusters interact.
* Use the **API Reference** to explore every endpoint with a live playground.


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