---
title: "Get FTP Monitor Details"
description: "Returns the FTP monitor detail page data in one call (mega endpoint)."
---

`GET /api/ftp-monitors/:ftpMonitorPublicId/details`

## Authentication

`Authorization: Bearer <token>`

## Parameters

- `ftpMonitorPublicId` (Path, required): FTP monitor public UUID.

## Query Parameters

- `range` (optional): `day` (default), `week`, `month`, `year`
- `date` (optional): Reference date (ISO string)
- `startDate` / `endDate` (optional): Override the time window (ISO strings)
- `granularity` (optional): When omitted the server may aggregate automatically for large time ranges. Use `granularity=raw` to force raw data.

## Example (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X GET \
  "$BASE_URL/api/ftp-monitors/55555555-5555-4555-8555-555555555555/details?range=day" \
  -H "Authorization: Bearer $TOKEN"
```

## Example Response (shape)

The response is a single object with these top-level keys:

```json
{
  "ftpMonitorId": 400,
  "monitor": {},
  "latestCheck": {},
  "uptimeStats": {
    "day": "100.00",
    "month": "100.00",
    "year": "100.00",
    "dayAvgResponse": 120,
    "monthAvgResponse": 130,
    "yearAvgResponse": 140
  },
  "uptimeStatsMeta": {},
  "monitoringData": {
    "responseTimeData": [],
    "statusData": [],
    "uptimePercentage": "100.00",
    "checkSuccessRatePercentage": "100.00",
    "totalChecks": 10,
    "successfulChecks": 10
  },
  "incidents": {
    "history": [],
    "total": 0,
    "ongoing": 0,
    "totalDowntime": "0s"
  },
  "alerts": {
    "history": [],
    "total": 0,
    "notificationContext": {}
  },
  "testResultLog": null,
  "maintenance": {
    "inMaintenance": false,
    "activeWindows": [],
    "allWindows": []
  }
}
```

## Common Errors

- `400 Invalid FTP monitor public ID (UUID)` if `ftpMonitorPublicId` is invalid
- `401 Unauthorized` if you are not authenticated
- `403 Forbidden` if you do not have access
- `500 Failed to fetch FTP monitor details` on server errors

