Uptimeify Docs
MonitorsFtp monitors

List FTP Monitors

Lists FTP monitors in an organization.

GET /api/ftp-monitors

Authentication

Authorization: Bearer <token>

Parameters

  • organizationId (Query, optional): Organization ID. Defaults to the current user's organization.
  • customerId (Query, optional): Filter by customer ID.
  • search (Query, optional): Search by monitor name, hostname, or customer.
  • page (Query, optional): Page number (default: 1).
  • perPage (Query, optional): Items per page (default: 50, max: 200).

Note: The results are also limited by your customer scope (if your account is restricted to a subset of customers).

Example (cURL)

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

curl -X GET \
  "$BASE_URL/api/ftp-monitors?page=1&perPage=50&search=ftp" \
  -H "Authorization: Bearer $TOKEN"

Response

{
  "items": [
    {
      "id": 400,
      "organizationId": 1,
      "customerId": 10,
      "customerName": "Example Customer",
      "name": "Partner FTP",
      "hostname": "ftp.deinkunde.com",
      "port": 21,
      "status": "active",
      "checkInterval": 30,
      "timeoutSeconds": 30,
      "allowedCheckCountryCodes": null,
      "config": {
        "user": "monitor",
        "password": "<ftp-password>",
        "secure": false
      },
      "notificationPhoneNumber": null,
      "notificationEmail": null,
      "lastCheckedAt": null,
      "createdAt": "2026-02-25T10:00:00.000Z",
      "updatedAt": "2026-02-25T10:00:00.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "perPage": 50
}

Each item contains the FTP monitor itself and a flat customerName, not a full embedded customer record.

Inline metrics

Every item carries the same rolled-up metrics the other monitor list endpoints return. They are computed per monitor over the calendar day, month and year in UTC.

FieldTypeMeaning
uptimeDay / uptimeMonth / uptimeYearstringUptime percentage with two decimals, e.g. "99.94"
avgResponseDay / avgResponseMonth / avgResponseYearnumber | nullAverage response time in milliseconds; null when nothing was measured in that window
responseGraphobject{ values, avg } for the last 24 hours, one entry per hour; an hour with no successful check is null
upSinceAtstring | nullISO timestamp the monitor has been up since, null while it is down
isDownbooleanWhether the monitor is currently in an unresolved incident

The day figures are read from the raw check data, the month and year from continuous aggregates, so a value may lag the newest check by a few minutes in the month and year windows.

Common Errors

  • 400 Invalid organizationId if organizationId is not a valid number
  • 401 Unauthorized if you are not authenticated
  • 403 Forbidden if you do not have access to the organization

On this page