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

# Protection

> Read-only endpoints to inspect protected services, prefixes, traffic analytics, and attack history with the protection:read scope.

Use the protection endpoints to inspect your protected services, their prefixes, real-time traffic analytics, and historical attack records. All endpoints in this section require the `protection:read` scope and return JSON. Responses use ISO8601 UTC timestamps and monetary values in cents.

> [!NOTE]
>
> These endpoints are read only. To change protection settings, see [Protection changes](https://docs.orbitelshield.com/api-reference/protection-changes.md).

## Base URL and authentication

All requests are scoped to your account and sent to:

```text theme={null}
https://portal.orbitelshield.com/api/v1/public
```

Include your API key as a Bearer token in the `Authorization` header:

```bash theme={null}
-H "Authorization: Bearer $ORBITEL_API_KEY"
```

For request bodies, also include:

```bash theme={null}
-H "Content-Type: application/json"
```

## List protected services and prefixes

```text theme={null}
GET /protection
```

Returns all protected services and their associated prefixes.

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/protection" \
  --header "Authorization: Bearer $ORBITEL_API_KEY"
```

## Get service protection details

```text theme={null}
GET /protection/{serviceId}
```

Returns prefixes, tunnels, state, and Orbitel endpoints for a specific protected service, including the clean traffic rate.

### Path parameters

| Parameter | Type | Description |
| - | - | - |
| `serviceId` | string | The 26-character service identifier. |

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/protection/{serviceId}" \
  --header "Authorization: Bearer $ORBITEL_API_KEY"
```

## Get traffic overview

```text theme={null}
GET /protection/{serviceId}/analytics/overview
```

Returns offered and dropped traffic per prefix for the selected time window.

### Path parameters

| Parameter | Type | Description |
| - | - | - |
| `serviceId` | string | The 26-character service identifier. |

### Query parameters

| Parameter | Type | Description |
| - | - | - |
| `window` | string | Time window. Allowed values: `1h`, `6h`, `24h`. |

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/protection/{serviceId}/analytics/overview" \
  --header "Authorization: Bearer $ORBITEL_API_KEY" \
  --get \
  --data-urlencode "window=1h"
```

## Get traffic time series

```text theme={null}
GET /protection/{serviceId}/analytics/series
```

Returns traffic over time for a single prefix within the selected time window.

### Path parameters

| Parameter | Type | Description |
| - | - | - |
| `serviceId` | string | The 26-character service identifier. |

### Query parameters

| Parameter | Type | Description |
| - | - | - |
| `window` | string | Time window. Allowed values: `1h`, `6h`, `24h`. |
| `prefix` | string | The IP prefix to query, for example `198.51.100.0/24`. |

> [!WARNING]
>
> The prefix `198.51.100.0/24` is a documentation example and not a real prefix.

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/protection/{serviceId}/analytics/series" \
  --header "Authorization: Bearer $ORBITEL_API_KEY" \
  --get \
  --data-urlencode "window=24h" \
  --data-urlencode "prefix=198.51.100.0/24"
```

## Get attack events

```text theme={null}
GET /protection/{serviceId}/analytics/events
```

Returns attack events within the selected time window, including attack vectors.

### Path parameters

| Parameter | Type | Description |
| - | - | - |
| `serviceId` | string | The 26-character service identifier. |

### Query parameters

| Parameter | Type | Description |
| - | - | - |
| `window` | string | Time window. Allowed values: `1h`, `6h`, `24h`. |

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/protection/{serviceId}/analytics/events" \
  --header "Authorization: Bearer $ORBITEL_API_KEY" \
  --get \
  --data-urlencode "window=6h"
```

## List attack history

```text theme={null}
GET /attacks
```

Returns your attack history, kept with the newest records first.

### Query parameters

| Parameter | Type | Description |
| - | - | - |
| `serviceId` | string | Filter to attacks against a specific service. |
| `page` | number | Page number for paginated results. |
| `perPage` | number | Number of items per page. |

### Example request

```bash theme={null}
curl --request GET \
  --url "https://portal.orbitelshield.com/api/v1/public/attacks" \
  --header "Authorization: Bearer $ORBITEL_API_KEY" \
  --get \
  --data-urlencode "serviceId={serviceId}" \
  --data-urlencode "page=1" \
  --data-urlencode "perPage=20"
```

## Rate limits

The API allows up to 120 requests per minute per API key, including at most 30 write requests. All endpoints on this page are reads and count toward the 120 request limit.

## Related guides

> [card] [Protection changes](https://docs.orbitelshield.com/api-reference/protection-changes.md)
>
> Add or remove prefixes, manage tunnels, and re-sync the network.

> [card] [Services and invoices](https://docs.orbitelshield.com/api-reference/services-invoices.md)
>
> Read service limits and billing records.

> [card] [Analytics guide](https://docs.orbitelshield.com/operations/analytics.md)
>
> Interpret traffic graphs, attack records, and alerts.

> [card] [Errors](https://docs.orbitelshield.com/api-reference/errors.md)
>
> Handle API errors and rate limits.


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