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

# Control Centers

> Use GET /control-centers and GET /control-centers/{id} to access your NERC control centers. Assignment and lifecycle operations are coming soon.

> Use GET /control-centers and GET /control-centers/{id} to access your NERC control centers. Assignment and lifecycle operations are coming soon.

Control centers represent the operational hubs - such as energy management system (EMS) sites or transmission control rooms - that you've registered in Raptor Comply. They sit alongside facilities in your organizational hierarchy and are used to group and classify BES Cyber Systems for NERC CIP compliance purposes. Use these endpoints to read your control center inventory and integrate it with upstream data sources.

<Note>
  Every request to the Raptor Comply API requires the **X-API-Key** header. See [Authentication](/authentication) for setup instructions.
</Note>

***

## Available endpoints

### List all control centers

<span style={{ background: '#22c55e', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>GET</span> `/control-centers`

Returns an array of all control centers belonging to your organization. Use this endpoint to enumerate operational sites, populate dropdowns in internal tooling, or verify the control centers registered in your tenant before associating cyber systems or facilities.

#### Request

No path or query parameters are required. Include your authentication headers on every request.

```bash theme={null} theme={null}
curl --request GET \
  --url https://api.raptormaps.com/control-centers \
  --header 'X-API-Key: YOUR_API_KEY'
```

#### Response

Returns `200 OK` with a JSON array of control center objects.

<ResponseField name="id" type="string">
  Unique identifier for the control center, prefixed with `cc_`.
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable name of the control center as configured in Raptor Comply.
</ResponseField>

<ResponseField name="organization_slug" type="string">
  The slug of the organization that owns this control center.
</ResponseField>

```json theme={null} theme={null}
[
  {
    "id": "cc_01ABC...",
    "name": "Western Operations Center",
    "organization_slug": "acme-utility"
  }
]
```

***

### Get a single control center

<span style={{ background: '#22c55e', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>GET</span> `/control-centers/{id}`

Returns a single control center by its unique identifier. Use this endpoint to look up a specific operational hub - for example, after resolving a control center ID from a cyber system record or an incoming webhook payload.

#### Path parameters

<ParamField path="id" type="string" required>
  The unique identifier of the control center, e.g. `cc_01ABC...`. You can obtain this value from the `id` field returned by `GET /control-centers`.
</ParamField>

#### Request

```bash theme={null} theme={null}
curl --request GET \
  --url https://api.raptormaps.com/control-centers/cc_01ABC... \
  --header 'X-API-Key: YOUR_API_KEY'
```

#### Response

Returns `200 OK` with a single control center object.

<ResponseField name="id" type="string">
  Unique identifier for the control center.
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable name of the control center.
</ResponseField>

<ResponseField name="organization_slug" type="string">
  The slug of the organization that owns this control center.
</ResponseField>

```json theme={null} theme={null}
{
  "id": "cc_01ABC...",
  "name": "Western Operations Center",
  "organization_slug": "acme-utility"
}
```

***

## Coming soon

The following endpoints exist in the Raptor Comply API but are not yet available via API-key authentication. They are documented here so you can plan your integrations in advance. Subscribe to [release notes](#) to be notified when each batch becomes available.

<Note>
  The endpoints below are **coming soon** and are not yet accessible with your API key. Requests to these paths will not succeed. Check back for updates.
</Note>

### Create a control center

<span style={{ background: '#3b82f6', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>POST</span> `/control-centers`

**Operation:** `createControlCenter` - Creates a new control center in your Raptor Comply tenant.

***

### Update a control center

<span style={{ background: '#f59e0b', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>PUT</span> `/control-centers/{id}`

**Operation:** `updateControlCenter` - Replaces the properties of an existing control center with a full updated representation.

***

### Delete a control center

<span style={{ background: '#ef4444', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>DELETE</span> `/control-centers/{id}`

**Operation:** `deleteControlCenter` - Permanently removes a control center from your Raptor Comply tenant.

***

### List facilities for a control center

<span style={{ background: '#22c55e', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>GET</span> `/control-centers/{id}/facilities`

**Operation:** `getControlCenterFacilities` - Returns all facilities assigned to the specified control center.

***

### Assign facilities to a control center

<span style={{ background: '#3b82f6', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>POST</span> `/control-centers/{id}/assign-facilities`

**Operation:** `assignFacilitiesToControlCenter` - Associates one or more facilities with the specified control center.

***

### Unassign facilities from a control center

<span style={{ background: '#3b82f6', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>POST</span> `/control-centers/{id}/unassign-facilities`

**Operation:** `unassignFacilitiesFromControlCenter` - Removes the association between one or more facilities and the specified control center.

***

### Preview impact of a control center change

<span style={{ background: '#3b82f6', color: '#fff', borderRadius: '4px', padding: '2px 8px', fontWeight: 700, fontSize: '0.8rem', marginRight: '8px' }}>POST</span> `/control-centers/{id}/preview-impact`

**Operation:** `previewControlCenterImpact` - Returns a dry-run assessment of how a proposed change to the specified control center would affect associated facilities, cyber systems, and BES impact ratings. Use this before committing a structural change to understand its downstream compliance implications.
