# Health

Retrieve Core Web Vitals results, uptime summaries, and recent availability checks for your Screpy projects.

## [Separate performance from availability](/content/docs/api/health#separate-performance-from-availability/index.html)

Core Web Vitals and uptime answer different questions: performance data helps assess user experience, while uptime data shows whether a monitored site was reachable. Use the endpoint that matches the signal you need, then investigate affected URLs in the [Core Web Vitals guide](/content/docs/guides/performance-monitoring/core-web-vitals/index.html).

A `data: null` response can mean that no matching check is available yet. Confirm the project and monitoring setup before treating it as a site failure; the [uptime guide](/content/docs/guides/performance-monitoring/uptime/index.html) explains the availability workflow.

## [Get Core Web Vitals data](/content/docs/api/health#get-core-web-vitals-data/index.html)

GET`/projects/{project_uid}/core-web-vitals`

Returns `data: null` when no checked homepage result is available.

### [Authorization](/content/docs/api/health#authorization/index.html)

`bearerApiKey`

AuthorizationBearer <token>

Create a REST API key in Settings > Connected Apps. MCP credentials do not authenticate this API.

In: `header`

### [Path Parameters](/content/docs/api/health#parameters-path/index.html)

project_uid*string

Accessible project UID. Discover it with `GET /projects`; do not guess it.

Match`^[a-z0-9]{10}$`

### [Response Body](/content/docs/api/health#response-body/index.html)

### 200  `application/json`
### 401  `application/json`
### 403  `application/json`
### 404  `application/json`
### 429  `application/json`

cURL

```
curl -X GET "https://api.screpy.com/v1/projects/string/core-web-vitals"
```

200401403404429

```
{
  "data": {
    "url": "string",
    "last_checked_at": "2019-08-24T14:15:22Z",
    "metrics": {
      "fcp": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      },
      "lcp": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      },
      "cls": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      },
      "ttfb": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      },
      "tbt": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      },
      "speed_index": {
        "value": 0,
        "distribution": {
          "good": 0,
          "needs_improvement": 0,
          "poor": 0
        },
        "history": [
          {
            "label": "string",
            "value": 0,
            "status": "string"
          }
        ]
      }
    }
  }
}
```

```
{
  "message": "Unauthenticated."
}
```

```
{
  "message": "string",
  "code": "string"
}
```

```
{
  "message": "Project not found or not accessible."
}
```

```
{
  "message": "string",
  "code": "string"
}
```

## [Get uptime summary and recent checks](/content/docs/api/health#get-uptime-summary-and-recent-checks/index.html)

GET`/projects/{project_uid}/uptime`

### [Authorization](/content/docs/api/health#authorization/index.html)

`bearerApiKey`

AuthorizationBearer <token>

Create a REST API key in Settings > Connected Apps. MCP credentials do not authenticate this API.

In: `header`

### [Path Parameters](/content/docs/api/health#parameters-path/index.html)

project_uid*string

Accessible project UID. Discover it with `GET /projects`; do not guess it.

Match`^[a-z0-9]{10}$`

### [Response Body](/content/docs/api/health#response-body/index.html)

### 200  `application/json`
### 401  `application/json`
### 403  `application/json`
### 404  `application/json`
### 429  `application/json`

cURL

```
curl -X GET "https://api.screpy.com/v1/projects/string/uptime"
```

200401403404429

```
{
  "data": {
    "summary": {
      "current_status": "string",
      "uptime_percentage": 0,
      "avg_response_time_ms": 0,
      "last_checked_at": "2019-08-24T14:15:22Z"
    },
    "rows": [
      {
        "label": "string",
        "status": "string",
        "response_time_ms": 0,
        "checked_at": "2019-08-24T14:15:22Z"
      }
    ]
  }
}
```

```
{
  "message": "Unauthenticated."
}
```

```
{
  "message": "string",
  "code": "string"
}
```

```
{
  "message": "Project not found or not accessible."
}
```

```
{
  "message": "string",
  "code": "string"
}
```
