# Cloud endpoints (System (public))

> 5 FeatherPanel System (public) endpoints from system/cloud.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Source: https://featherpanel.com/docs/api/reference/system/cloud/

Defined in [`backend/app/routes/system/cloud.php`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php). Authentication used here: **Custom middleware**. Read [Authentication](https://featherpanel.com/docs/api/authentication/) for how to send credentials and [Rate limits and errors](https://featherpanel.com/docs/api/rate-limits-and-errors/) for the response envelope.

Paths, methods, permissions and rate limits come from the route file. Summaries, parameters and response codes come from the OpenAPI annotations on the controllers; endpoints without annotations show only what the route file declares.

## Endpoints

### POST `/api/cloud/v1/handshake`

- Auth: Custom middleware (`CloudAccessMiddleware`)
- Route name: `feathercloud-handshake`
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php#L33)

```bash
curl -X POST "$PANEL_URL/api/cloud/v1/handshake" \
  -H "Accept: application/json"
```

### POST `/api/cloud/v1/panel-handshake`

- Auth: Custom middleware (`RateLimitMiddleware`)
- Route name: `feathercloud-panel-handshake`
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php#L74)

```bash
curl -X POST "$PANEL_URL/api/cloud/v1/panel-handshake" \
  -H "Accept: application/json"
```

### GET `/api/cloud/v1/status`

- Auth: Custom middleware (`PanelAccessMiddleware`)
- Route name: `feathercloud-status`
- Controller: [`CloudV1Controller::status`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/System/CloudV1Controller.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php#L233)

**Mythic Cloud link status**

```bash
curl -X GET "$PANEL_URL/api/cloud/v1/status" \
  -H "Accept: application/json"
```

### POST `/api/cloud/v1/sync`

- Auth: Custom middleware (`PanelAccessMiddleware`)
- Route name: `feathercloud-sync`
- Controller: [`CloudV1Controller::sync`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/System/CloudV1Controller.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php#L248)

**Pull Mythic summary + purchases into panel cache**

```bash
curl -X POST "$PANEL_URL/api/cloud/v1/sync" \
  -H "Accept: application/json"
```

### POST `/api/cloud/v1/oauth2/callback`

- Auth: Custom middleware (`RateLimitMiddleware`)
- Route name: `feathercloud-oauth2-callback`
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/system/cloud.php#L264)

```bash
curl -X POST "$PANEL_URL/api/cloud/v1/oauth2/callback" \
  -H "Accept: application/json"
```
