# Cloud endpoints (Admin API)

> 54 FeatherPanel Admin API endpoints from admin/cloud.php: methods, paths, auth, permissions, rate limits, parameters and responses.

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

Defined in [`backend/app/routes/admin/cloud.php`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php). Authentication used here: **Admin**. 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

### GET `/api/admin/cloud/credentials`

- Auth: Admin
- Permission: `admin.settings.view`
- Route name: `admin-cloud-credentials`
- Controller: [`CloudManagementController::show`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L26)

**Retrieve FeatherCloud access credentials** Fetch both the panel-issued and FeatherCloud-issued keypairs for integrations.

Response data: [`FeatherCloudCredentials`](https://featherpanel.com/docs/api/schemas/#schema-feathercloudcredentials)

| Response `data` field | Type | Description |
| --- | --- | --- |
| `panel_credentials` | FeatherCloudCredentialPair |  |
| `cloud_credentials` | FeatherCloudCredentialPair |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/credentials" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

Plugin events: [`featherpanel:admin:cloud:credentials:retrieved`](https://featherpanel.com/docs/plugins/events/cloud-management/#cloud-credentials-retrieved)

Responses: `200` Credentials fetched successfully · `401` Unauthorized · `403` Forbidden - Insufficient permissions

### PUT `/api/admin/cloud/credentials/panel`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-credentials-panel`
- Controller: [`CloudManagementController::storePanel`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L36)

**Store panel-issued credentials** Save or update the panel-side keypair that FeatherCloud uses when authenticating against the panel.

Response data: [`FeatherCloudCredentials`](https://featherpanel.com/docs/api/schemas/#schema-feathercloudcredentials)

| Body field | Type | Required | Description |
| --- | --- | --- | --- |
| `public_key` | string | yes |  |
| `private_key` | string | yes |  |

| Response `data` field | Type | Description |
| --- | --- | --- |
| `panel_credentials` | FeatherCloudCredentialPair |  |
| `cloud_credentials` | FeatherCloudCredentialPair |  |

```bash
curl -X PUT "$PANEL_URL/api/admin/cloud/credentials/panel" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"public_key":"","private_key":""}'
```

Plugin events: [`featherpanel:admin:cloud:panel:credentials:stored`](https://featherpanel.com/docs/plugins/events/cloud-management/#panel-credentials-stored)

Responses: `200` Panel credentials saved successfully · `400` Invalid payload · `401` Unauthorized · `403` Forbidden - Insufficient permissions · `500` Failed to store panel credentials

### PUT `/api/admin/cloud/credentials/cloud`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-credentials-cloud`
- Controller: [`CloudManagementController::storeCloud`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L47)

**Store FeatherCloud-issued credentials** Save the keypair that FeatherCloud presents back to the panel for authenticated callbacks.

Response data: [`FeatherCloudCredentials`](https://featherpanel.com/docs/api/schemas/#schema-feathercloudcredentials)

| Body field | Type | Required | Description |
| --- | --- | --- | --- |
| `public_key` | string | yes |  |
| `private_key` | string | yes |  |

| Response `data` field | Type | Description |
| --- | --- | --- |
| `panel_credentials` | FeatherCloudCredentialPair |  |
| `cloud_credentials` | FeatherCloudCredentialPair |  |

```bash
curl -X PUT "$PANEL_URL/api/admin/cloud/credentials/cloud" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"public_key":"","private_key":""}'
```

Plugin events: [`featherpanel:admin:cloud:cloud:credentials:stored`](https://featherpanel.com/docs/plugins/events/cloud-management/#cloud-credentials-stored)

Responses: `200` FeatherCloud credentials saved successfully · `400` Invalid payload · `401` Unauthorized · `403` Forbidden - Insufficient permissions · `500` Failed to store FeatherCloud credentials

### POST `/api/admin/cloud/credentials/rotate`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-credentials-rotate`
- Controller: [`CloudManagementController::rotate`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L58)

**Rotate FeatherCloud access credentials** Generate a new panel-issued public/private keypair used by FeatherCloud integrations.

Response data: [`FeatherCloudCredentials`](https://featherpanel.com/docs/api/schemas/#schema-feathercloudcredentials)

| Response `data` field | Type | Description |
| --- | --- | --- |
| `panel_credentials` | FeatherCloudCredentialPair |  |
| `cloud_credentials` | FeatherCloudCredentialPair |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/credentials/rotate" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

Plugin events: [`featherpanel:admin:cloud:credentials:rotated`](https://featherpanel.com/docs/plugins/events/cloud-management/#cloud-credentials-rotated)

Responses: `200` Credentials rotated successfully · `401` Unauthorized · `403` Forbidden - Insufficient permissions · `500` Failed to rotate credentials

### GET `/api/admin/cloud/oauth2/link`

- Auth: Admin
- Permission: `admin.settings.view`
- Route name: `admin-cloud-oauth2-link`
- Controller: [`CloudManagementController::getOAuth2Link`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L69)

**Get FeatherCloud OAuth2 link URL** Generate the OAuth2 link URL for connecting this panel to FeatherCloud. This URL includes all necessary panel information and credentials.

| Response `data` field | Type | Description |
| --- | --- | --- |
| `oauth2_url` | string | The OAuth2 URL to redirect to |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/oauth2/link" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

Responses: `200` OAuth2 link URL generated successfully · `401` Unauthorized · `403` Forbidden - Insufficient permissions · `500` Failed to generate OAuth2 URL

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

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-oauth2-callback`
- Controller: [`CloudManagementController::saveOAuth2Callback`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L79)

**Save FeatherCloud OAuth2 callback credentials** Save the cloud\_api\_key and cloud\_api\_secret received from FeatherCloud OAuth2 callback. These credentials are used by the panel to access FeatherCloud services.

| Body field | Type | Required | Description |
| --- | --- | --- | --- |
| `cloud_api_key` | string | yes | The cloud API key generated by FeatherCloud |
| `cloud_api_secret` | string | yes | The cloud API secret generated by FeatherCloud |

| Response `data` field | Type | Description |
| --- | --- | --- |
| `message` | string |  |
| `timestamp` | string (date-time) |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/oauth2/callback" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"cloud_api_key":"","cloud_api_secret":""}'
```

Plugin events: [`featherpanel:admin:cloud:cloud:credentials:stored`](https://featherpanel.com/docs/plugins/events/cloud-management/#cloud-credentials-stored)

Responses: `200` Cloud credentials saved successfully · `400` Invalid payload or missing credentials · `401` Unauthorized · `403` Forbidden - Insufficient permissions · `500` Failed to save cloud credentials

### POST `/api/admin/cloud/disconnect`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-disconnect`
- Controller: [`CloudManagementController::disconnect`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L90)

**Disconnect Mythic Cloud link** Fully clear Mythic link state (identity keys, access keys, team, authorizer, member map) so the panel acts as never linked.

| Body field | Type | Required | Description |
| --- | --- | --- | --- |
| `wipe_identity_keys` | boolean | no | Ignored disconnect always wipes identity keys for a clean unlink |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/disconnect" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"wipe_identity_keys":false}'
```

Responses: `200` Disconnected successfully · `401` Unauthorized · `403` Forbidden

### GET `/api/admin/cloud/settings`

- Auth: Admin
- Permission: `admin.settings.view`
- Route name: `admin-cloud-settings-get`
- Controller: [`CloudManagementController::getSettings`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L101)

**Get Mythic Cloud client settings**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/settings" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

Responses: `200` Settings fetched

### PUT `/api/admin/cloud/settings`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-settings-put`
- Controller: [`CloudManagementController::updateSettings`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L111)

**Update Mythic Cloud client settings** Configure Panel API base URL, OAuth URL, and module flags. Mythic member ids are resolved automatically never collected from admins.

| Body field | Type | Required | Description |
| --- | --- | --- | --- |
| `api_base_url` | string | no |  |
| `oauth_url` | string | no |  |
| `marketplace_enabled` | boolean | no |  |
| `eggs_enabled` | boolean | no |  |
| `pastes_enabled` | boolean | no |  |
| `issues_enabled` | boolean | no |  |

```bash
curl -X PUT "$PANEL_URL/api/admin/cloud/settings" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"api_base_url":"","oauth_url":"","marketplace_enabled":false,"eggs_enabled":false,"pastes_enabled":false,"issues_enabled":false}'
```

Responses: `200` Settings updated · `400` Invalid payload

### POST `/api/admin/cloud/members/sync`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-members-sync`
- Controller: [`CloudManagementController::syncMembers`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L122)

**Sync Mythic team members for email → id mapping**

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/members/sync" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

Responses: `200` Members synced

### POST `/api/admin/cloud/sync`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-cloud-sync`
- Controller: [`CloudManagementController::syncNow`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudManagementController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L133)

**Sync Mythic summary and purchases** Pulls /panel/summary and /panel/products using stored FCPUB/FCPRIV and refreshes local cache.

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/sync" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/featherpanel-premium`

- Auth: Admin
- Permission: `admin.settings.view`
- Route name: `admin-featherpanel-premium-get`
- Controller: [`FeatherPanelPremiumController::show`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/FeatherPanelPremiumController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L144)

**Get FeatherPanel Premium entitlement and customization settings**

```bash
curl -X GET "$PANEL_URL/api/admin/featherpanel-premium" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/featherpanel-premium`

- Auth: Admin
- Permission: `admin.settings.edit`
- Route name: `admin-featherpanel-premium-post`
- Controller: [`FeatherPanelPremiumController::update`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/FeatherPanelPremiumController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L154)

**Update FeatherPanel Premium customization settings**

```bash
curl -X POST "$PANEL_URL/api/admin/featherpanel-premium" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/summary`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-summary`
- Controller: [`CloudDataController::getSummary`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L166)

**Get Mythic Cloud summary**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/summary" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/cloud`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-cloud`
- Controller: [`CloudDataController::getCloud`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L176)

**Get Mythic cloud connection details**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/cloud" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/credits`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-credits`
- Controller: [`CloudDataController::getCredits`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L186)

**Get team credits**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/credits" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/team`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-team`
- Controller: [`CloudDataController::getTeam`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L196)

**Get team information**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/team" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/products`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-products`
- Controller: [`CloudDataController::getProducts`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L206)

**Get purchased products**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/products" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/store`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store`
- Controller: [`CloudDataController::getStore`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L216)

**Mythic marketplace store catalog**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/store" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/store/products/{slug}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product`
- Controller: [`CloudDataController::getStoreProduct`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L226)

**Mythic store product detail**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/store/products/{slug}/versions`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-versions`
- Controller: [`CloudDataController::getStoreProductVersions`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L236)

**Store product versions**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/versions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/store/products/{slug}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-reviews-get`
- Controller: [`CloudDataController::getStoreProductReviews`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L246)

**Store product reviews**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/store/products/{slug}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-reviews-post`
- Controller: [`CloudDataController::createStoreProductReview`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L256)

**Create/update store product review**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/store/products/{slug}/questions`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-questions-get`
- Controller: [`CloudDataController::getStoreProductQuestions`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L267)

**Store product questions**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/questions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/store/products/{slug}/questions`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-questions-post`
- Controller: [`CloudDataController::createStoreProductQuestion`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L277)

**Ask a store product question**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/questions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/store/products/{slug}/questions/{questionId}/replies`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-store-product-question-reply`
- Controller: [`CloudDataController::replyStoreProductQuestion`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L288)

**Reply to store product question**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `questionId` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/store/products/$SLUG/questions/$QUESTION_ID/replies" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/products/{slug}/releases`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-product-releases`
- Controller: [`CloudDataController::getProductReleases`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L303)

**List product releases**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/products/$SLUG/releases" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/products/{slug}/releases/{version}/download`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-product-release-download`
- Controller: [`CloudDataController::downloadProductRelease`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L313)

**Download product release .fpa**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `version` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/products/$SLUG/releases/$VERSION/download" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/products/{slug}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-product-reviews-get`
- Controller: [`CloudDataController::getProductReviews`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L327)

**List product reviews (public)**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/products/$SLUG/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/products/{slug}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-product-reviews-post`
- Controller: [`CloudDataController::createProductReview`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L337)

**Create/update product review**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/products/$SLUG/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### DELETE `/api/admin/cloud/data/products/{slug}/reviews/{reviewId}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-product-reviews-delete`
- Controller: [`CloudDataController::deleteProductReview`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L348)

**Delete product review**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `reviewId` | path | \- | yes |  |

```bash
curl -X DELETE "$PANEL_URL/api/admin/cloud/data/products/$SLUG/reviews/$REVIEW_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/download/{packageName}/{version}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-download-package`
- Controller: [`CloudDataController::downloadPackage`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L363)

**Download premium package**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `packageName` | path | \- | yes |  |
| `version` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/download/$PACKAGE_NAME/$VERSION" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/eggs`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-eggs`
- Controller: [`CloudDataController::listEggs`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L377)

**List Mythic egg catalog**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/eggs" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/eggs/{id}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-egg-get`
- Controller: [`CloudDataController::getEgg`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L387)

**Get Mythic egg detail**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/eggs/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/eggs/{id}/download`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-eggs-download`
- Controller: [`CloudDataController::downloadEgg`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L397)

**Download Mythic egg JSON**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/eggs/$ID/download" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/eggs/{id}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-egg-reviews-get`
- Controller: [`CloudDataController::getEggReviews`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L407)

**List egg reviews (public)**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/eggs/$ID/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/eggs/{id}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-egg-reviews-post`
- Controller: [`CloudDataController::createEggReview`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L417)

**Create/update egg review**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/eggs/$ID/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### DELETE `/api/admin/cloud/data/eggs/{id}/reviews`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-egg-reviews-delete`
- Controller: [`CloudDataController::deleteEggReview`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L428)

**Delete own egg review**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X DELETE "$PANEL_URL/api/admin/cloud/data/eggs/$ID/reviews" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/settings`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-settings`
- Controller: [`MythicTranslationsController::getSettings`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L440)

**Get Mythic translations client settings**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/settings" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/projects`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-projects`
- Controller: [`MythicTranslationsController::listProjects`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L450)

**List Mythic translation projects**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/projects" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/projects/{slug}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-project`
- Controller: [`MythicTranslationsController::getProject`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L460)

**Get Mythic translation project**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/projects/$SLUG" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/projects/{slug}/locales`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-locales`
- Controller: [`MythicTranslationsController::listLocales`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L470)

**List project locales**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/projects/$SLUG/locales" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/projects/{slug}/locales/{locale}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-locale-get`
- Controller: [`MythicTranslationsController::getLocale`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L480)

**Preview locale JSON**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `locale` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/projects/$SLUG/locales/$LOCALE" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/translations/projects/{slug}/locales/{locale}/download`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-locale-download`
- Controller: [`MythicTranslationsController::downloadLocale`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L494)

**Download locale JSON file stream**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `locale` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/translations/projects/$SLUG/locales/$LOCALE/download" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/translations/projects/{slug}/locales/{locale}/install`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-translations-locale-install`
- Controller: [`MythicTranslationsController::installLocale`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/MythicTranslationsController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L508)

**Download Mythic locale and install into panel translations**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | \- | yes |  |
| `locale` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/translations/projects/$SLUG/locales/$LOCALE/install" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/pastes`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-pastes-create`
- Controller: [`CloudDataController::createPaste`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L523)

**Create Mythic paste/log**

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/pastes" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/pastes/{id}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-pastes-get`
- Controller: [`CloudDataController::getPaste`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L534)

**Get Mythic paste metadata**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/pastes/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/issues/projects`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-issues-projects`
- Controller: [`CloudDataController::listIssueProjects`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L544)

**List Mythic issue projects**

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/issues/projects" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/report`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-report`
- Controller: [`CloudDataController::reportIssue`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L554)

**Report a FeatherPanel issue (always project featherpanel)**

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/report" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/suggestion`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-suggestion`
- Controller: [`CloudDataController::submitSuggestion`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L565)

**Submit a FeatherPanel feature suggestion (always project featherpanel)**

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/suggestion" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/issues/{project}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-issues-list`
- Controller: [`CloudDataController::listIssues`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L576)

**List Mythic issues**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `project` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/issues/$PROJECT" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/issues/{project}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-issues-create`
- Controller: [`CloudDataController::createIssue`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L586)

**Create Mythic issue with diagnostics**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `project` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/issues/$PROJECT" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### GET `/api/admin/cloud/data/issues/{project}/{number}`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-issues-get`
- Controller: [`CloudDataController::getIssue`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L597)

**Get Mythic issue**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `project` | path | \- | yes |  |
| `number` | path | \- | yes |  |

```bash
curl -X GET "$PANEL_URL/api/admin/cloud/data/issues/$PROJECT/$NUMBER" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```

### POST `/api/admin/cloud/data/issues/{project}/{number}/comments`

- Auth: Admin
- Permission: `admin.root`
- Route name: `admin-cloud-data-issues-comment`
- Controller: [`CloudDataController::commentOnIssue`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/CloudDataController.php)
- [route source](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/routes/admin/cloud.php#L611)

**Comment on Mythic issue**

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `project` | path | \- | yes |  |
| `number` | path | \- | yes |  |

```bash
curl -X POST "$PANEL_URL/api/admin/cloud/data/issues/$PROJECT/$NUMBER/comments" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"
```
