## GET /api/v2/shared-hosting/{accountId}/diagnostics/redis

**Inspect Redis socket metadata**

Inspect the fixed account Redis socket file and PHP Selector configuration through cPanel Fileman. No PING, command execution or Redis connection is performed. Socket presence is not service availability; connectionTested is false and ping is null. Use cPanel > HostUp Features > Redis Socket to check actual service state. This read cannot start/stop Redis or read cache values.

### Related Endpoints

- `GET /api/v2/shared-hosting/{accountId}/diagnostics/files`: Inspect website files
- `GET /api/v2/shared-hosting/{accountId}`: Get shared-hosting account
- `PATCH /api/v2/shared-hosting/{accountId}`: Rename shared-hosting account

### Headers

- `Accept`: application/json
- `Authorization`: Bearer YOUR_API_KEY
- Required API scopes: `read:hosting`, `console:services`

### Parameters

- `domain` (query, string): Exact hosted domain. Defaults to the account main domain.
- `accountId` (path, string, required): Public shared-hosting account ID. Get it from `GET /api/v2/shared-hosting` `data[].id`. Do not invent this value; use the exact ID returned by the referenced API response. Example: `acct_01hxa3b4c5d6e7f8g9h0j1k2m3`

### Request Example

```bash
curl -X GET "https://cloud.hostup.se/api/v2/shared-hosting/acct_01hxa3b4c5d6e7f8g9h0j1k2m3/diagnostics/redis" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
```

### Response Schema

- `domain` (string, required)
- `socketPath` (string, required)
- `transport` (string, required)
  Allowed values: unix
- `tcpPort` (null, required)
- `status` (string, required)
  Allowed values: socket_present_unverified, socket_missing, access_denied, unknown
- `ping` (null, required): Not tested.
- `phpSelectorVersion` (string, required, nullable): Nullable (may be null when not applicable).
- `phpSelectorRedisExtensionEnabled` (boolean, required, nullable): Nullable (may be null when not applicable).
- `phpEvidence` (string, required)
- `connectionTested` (boolean, required)
  Allowed values: false

### Responses

#### 200 - Bounded read-only diagnostic snapshot.
```json
{
  "domain": "shop.example.com",
  "socketPath": "/home/abcde/.redis/redis.sock",
  "transport": "unix",
  "tcpPort": null,
  "status": "socket_missing",
  "ping": null,
  "phpSelectorVersion": "7.4",
  "phpSelectorRedisExtensionEnabled": false,
  "phpEvidence": "Account PHP Selector configuration only; not a web-runtime execution test.",
  "connectionTested": false
}
```

#### 400 - Invalid query or path.

#### 401 - Authentication required.

#### 403 - Scope, domain or protected-path refusal.

#### 404 - Account or website path not found.

#### 422 - File exceeds source read limit.

#### 429 - Rate limited. Retry after the limit resets. 429 responses include `Retry-After` seconds plus `X-RateLimit-*` headers.
```json
{
  "type": "https://developer.hostup.se/errors/rate_limit_exceeded",
  "title": "Too many requests",
  "status": 429,
  "detail": "Too many requests. Retry after the limit resets.",
  "code": "rate_limit_exceeded",
  "instance": "/api/v2/resource",
  "requestId": "req_01hxa3b4c5d6e7f8g9h0j1k2m3",
  "timestamp": "2026-04-27T12:34:56.000Z"
}
```

#### 500 - Internal error. Retry later or contact support if the issue persists.
```json
{
  "type": "https://developer.hostup.se/errors/internal_error",
  "title": "Internal server error",
  "status": 500,
  "detail": "An unexpected error occurred. Retry later or contact support if the issue persists.",
  "code": "internal_error",
  "instance": "/api/v2/resource",
  "requestId": "req_01hxa3b4c5d6e7f8g9h0j1k2m3",
  "timestamp": "2026-04-27T12:34:56.000Z"
}
```

#### 502 - Diagnostic service unavailable or failed. State remains unknown.
