---
title: "Get setup state REST API | HitKeep"
description: "Reference for the HitKeep REST API operation Get setup state, including request parameters, responses, and authentication notes."
canonical: "https://hitkeep.com/api/operations/apisitesidsetup-state/"
---

# Get setup state REST API

GET

/api/sites/{id}/setup-state

FetchcURL

```
const url = 'http://127.0.0.1:25737/api/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/setup-state';
const options = {method: 'GET', headers: {cookie: 'hk_token=<hk_token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```
curl --request GET \
  --url http://127.0.0.1:25737/api/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/setup-state \
  --cookie hk_token=<hk_token>
```

-

Reports whether a site has ever recorded AI fetches, chatbot events, custom events, ecommerce events, or web vitals so the dashboard can show setup guidance instead of empty reports. Requires site.view.

## Authorizations

- **[cookieAuth](https://hitkeep.com/api/#cookieauth)**

## Parameters

### Path Parameters

**id**

required

string format: uuid

## Responses

### 200

Site setup state

application/json

object

**has_ai_fetches**

required

boolean

**has_chatbot_events**

required

boolean

**has_custom_events**

required

boolean

**has_ecommerce_events**

required

boolean

**has_web_vitals**

required

boolean

##### Examplegenerated

```
{
  "has_ai_fetches": true,
  "has_chatbot_events": true,
  "has_custom_events": true,
  "has_ecommerce_events": true,
  "has_web_vitals": true
}
```

### 403

Access denied

application/json

object

**message**

string

##### Examplegenerated

```
{
  "message": "example"
}
```

[Previous Update retention policy](https://hitkeep.com/api/operations/apisitesidretention/)[Next Get site stats](https://hitkeep.com/api/operations/apisitesidstats/)
