Logga in

API-referens

Bas-adress https://api.upfinity.app/api/v1. Alla svar är JSON. Tider anges i UTC (ISO 8601), svarstider i millisekunder.

Hela API:et finns också som OpenAPI 3.1.

Bas-adressen

Bas-adressen beskriver API:et och kräver ingen nyckel.

GET / ingen nyckel

Om API:et

Returnerar bas-adress, länk till dokumentationen, hur man autentiserar och vilka endpoints som finns.

Exempel

curl "https://api.upfinity.app/api/v1"

Svar 200

{
  "name": "Upfinity API",
  "version": "v1",
  "baseUrl": "https://api.upfinity.app/api/v1",
  "documentation": "https://developer.upfinity.app",
  "authentication": "Authorization: Bearer upf_...",
  "endpoints": [
    "GET /sites",
    "GET /sites/:siteId",
    "…"
  ]
}

Checkar

En check är något Upfinity övervakar: en webbadress, en port, en värd eller ett jobb som pingar. I API:et heter resursen sites.

GET /sites read:sites

Lista checkar

Alla checkar i organisationen, sorterade på namn, med senaste kontroll och upptid de senaste 24 timmarna.

Exempel

curl "https://api.upfinity.app/api/v1/sites" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "sites": [
    {
      "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
      "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
      "name": "dizweb.se",
      "url": "https://dizweb.se",
      "method": "GET",
      "expectedStatusCode": 200,
      "checkInterval": 60,
      "isActive": true,
      "isPaused": false,
      "resolvedIp": "46.62.255.136",
      "lastIpChange": null,
      "createdAt": "2026-10-01T08:12:44.000Z",
      "checkType": "http",
      "protocol": "https",
      "port": null,
      "projectId": "c0ffee00-1111-4222-8333-444455556666",
      "folderId": null,
      "tags": [
        {
          "id": "b1d2e3f4-0000-4000-8000-000000000001",
          "name": "produktion",
          "color": "#1D7A46"
        }
      ],
      "lastCheck": {
        "isUp": true,
        "responseTime": 212,
        "checkedAt": "2026-11-12T13:40:02.000Z"
      },
      "slowSince": null,
      "uptime24h": 99.98,
      "avgResponseTime24h": 208,
      "lighthouseMobile": null,
      "lighthouseDesktop": null
    }
  ],
  "total": 1
}

Före version 1.13 låg listan i sites.sites. Nu ligger den direkt i sites.

lastCheck är null om checken inte har kontrollerats de senaste två timmarna. uptime24h är i procent.

GET /sites/:siteId read:sites

Hämta en check

Alla inställningar för checken. Lösenord och tokens returneras aldrig, bara has-fält som visar om de är satta.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Exempel

curl "https://api.upfinity.app/api/v1/sites/SITE_ID" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "site": {
    "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
    "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
    "name": "dizweb.se",
    "url": "https://dizweb.se",
    "method": "GET",
    "expectedStatusCode": 200,
    "checkInterval": 60,
    "isActive": true,
    "isPaused": false,
    "resolvedIp": "46.62.255.136",
    "lastIpChange": null,
    "createdAt": "2026-10-01T08:12:44.000Z",
    "checkType": "http",
    "protocol": "https",
    "port": null,
    "projectId": "c0ffee00-1111-4222-8333-444455556666",
    "folderId": null,
    "tags": [
      {
        "id": "b1d2e3f4-0000-4000-8000-000000000001",
        "name": "produktion",
        "color": "#1D7A46"
      }
    ],
    "lastCheck": {
      "isUp": true,
      "responseTime": 212,
      "checkedAt": "2026-11-12T13:40:02.000Z",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "sslIssuer": "Let's Encrypt"
    },
    "slowSince": null,
    "uptime24h": 99.98,
    "avgResponseTime24h": 208,
    "lighthouseMobile": null,
    "lighthouseDesktop": null,
    "headers": null,
    "body": null,
    "timeout": 30,
    "sslCheckEnabled": true,
    "sslExpiryWarningDays": 14,
    "notifyAfterMinutes": 0,
    "notifyOnIpChange": false,
    "responseTimeThresholdMs": 1500,
    "responseTimeConsecutiveChecks": 3,
    "responseTimeRecoveryChecks": 3,
    "checkRegions": [
      "eu-north"
    ],
    "contentValidationType": "none",
    "authType": "none",
    "hasAuthPassword": false,
    "hasAuthToken": false,
    "notificationMode": "inherit",
    "notificationChannels": []
  }
}

Heartbeat-checkar har dessutom heartbeatUrl, adressen som jobbet ska anropa.

POST /sites write:sites

Skapa en check

Skapar en check och börjar kontrollera den direkt. Fälten beskrivs under "Fält för checkar".

Fälten beskrivs under Fält för checkar. Bara name och adressen (url eller host) krävs.

Exempel

curl -X POST "https://api.upfinity.app/api/v1/sites" \
  -H "Authorization: Bearer $UPFINITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Kundportal","url":"https://portal.example.com/health","checkInterval":60,"expectedStatusCode":200,"responseTimeThresholdMs":1500,"projectId":"c0ffee00-1111-4222-8333-444455556666"}'

Svar 201

{
  "site": {
    "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
    "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
    "name": "Kundportal",
    "url": "https://portal.example.com/health",
    "method": "GET",
    "expectedStatusCode": 200,
    "checkInterval": 60,
    "isActive": true,
    "isPaused": false,
    "resolvedIp": "46.62.255.136",
    "lastIpChange": null,
    "createdAt": "2026-10-01T08:12:44.000Z",
    "checkType": "http",
    "protocol": "https",
    "port": null,
    "projectId": "c0ffee00-1111-4222-8333-444455556666",
    "folderId": null,
    "tags": [
      {
        "id": "b1d2e3f4-0000-4000-8000-000000000001",
        "name": "produktion",
        "color": "#1D7A46"
      }
    ],
    "lastCheck": {
      "isUp": true,
      "responseTime": 212,
      "checkedAt": "2026-11-12T13:40:02.000Z",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "sslIssuer": "Let's Encrypt"
    },
    "slowSince": null,
    "uptime24h": 99.98,
    "avgResponseTime24h": 208,
    "lighthouseMobile": null,
    "lighthouseDesktop": null,
    "headers": null,
    "body": null,
    "timeout": 30,
    "sslCheckEnabled": true,
    "sslExpiryWarningDays": 14,
    "notifyAfterMinutes": 0,
    "notifyOnIpChange": false,
    "responseTimeThresholdMs": 1500,
    "responseTimeConsecutiveChecks": 3,
    "responseTimeRecoveryChecks": 3,
    "checkRegions": [
      "eu-north"
    ],
    "contentValidationType": "none",
    "authType": "none",
    "hasAuthPassword": false,
    "hasAuthToken": false,
    "notificationMode": "inherit",
    "notificationChannels": []
  }
}

Valideringsfel ger 400 med details per fält.

Heartbeat-checkar kräver plan Standard eller högre, annars 403 med requiredTier.

Planens gränser gäller: fler checkar än planen tillåter ger 403 (Site limit reached), och ett kortare intervall än planens minsta ger 400 med minAllowed.

PUT /sites/:siteId write:sites

Ändra en check

Ändrar de fält som skickas med. Övriga fält behåller sina värden. Tomma lösenordsfält betyder oförändrat.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Samma fält som när en check skapas, alla valfria. Se Fält för checkar.

Exempel

curl -X PUT "https://api.upfinity.app/api/v1/sites/SITE_ID" \
  -H "Authorization: Bearer $UPFINITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Kundportal (produktion)","checkInterval":30}'

Svar 200

{
  "site": {
    "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
    "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
    "name": "Kundportal (produktion)",
    "url": "https://dizweb.se",
    "method": "GET",
    "expectedStatusCode": 200,
    "checkInterval": 30,
    "isActive": true,
    "isPaused": false,
    "resolvedIp": "46.62.255.136",
    "lastIpChange": null,
    "createdAt": "2026-10-01T08:12:44.000Z",
    "checkType": "http",
    "protocol": "https",
    "port": null,
    "projectId": "c0ffee00-1111-4222-8333-444455556666",
    "folderId": null,
    "tags": [
      {
        "id": "b1d2e3f4-0000-4000-8000-000000000001",
        "name": "produktion",
        "color": "#1D7A46"
      }
    ],
    "lastCheck": {
      "isUp": true,
      "responseTime": 212,
      "checkedAt": "2026-11-12T13:40:02.000Z",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "sslIssuer": "Let's Encrypt"
    },
    "slowSince": null,
    "uptime24h": 99.98,
    "avgResponseTime24h": 208,
    "lighthouseMobile": null,
    "lighthouseDesktop": null,
    "headers": null,
    "body": null,
    "timeout": 30,
    "sslCheckEnabled": true,
    "sslExpiryWarningDays": 14,
    "notifyAfterMinutes": 0,
    "notifyOnIpChange": false,
    "responseTimeThresholdMs": 1500,
    "responseTimeConsecutiveChecks": 3,
    "responseTimeRecoveryChecks": 3,
    "checkRegions": [
      "eu-north"
    ],
    "contentValidationType": "none",
    "authType": "none",
    "hasAuthPassword": false,
    "hasAuthToken": false,
    "notificationMode": "inherit",
    "notificationChannels": []
  }
}

Ett kortare intervall än planens minsta ger 400 med minAllowed.

DELETE /sites/:siteId write:sites

Ta bort en check

Tar bort checken med kontroller, incidenter och statistik. Går inte att ångra.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Exempel

curl -X DELETE "https://api.upfinity.app/api/v1/sites/SITE_ID" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 204

Inget innehåll.

POST /sites/:siteId/pause write:sites

Pausa en check

Stoppar kontrollerna och larmen tills checken återupptas.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Exempel

curl -X POST "https://api.upfinity.app/api/v1/sites/SITE_ID/pause" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "site": {
    "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
    "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
    "name": "dizweb.se",
    "url": "https://dizweb.se",
    "method": "GET",
    "expectedStatusCode": 200,
    "checkInterval": 60,
    "isActive": true,
    "isPaused": true,
    "resolvedIp": "46.62.255.136",
    "lastIpChange": null,
    "createdAt": "2026-10-01T08:12:44.000Z",
    "checkType": "http",
    "protocol": "https",
    "port": null,
    "projectId": "c0ffee00-1111-4222-8333-444455556666",
    "folderId": null,
    "tags": [
      {
        "id": "b1d2e3f4-0000-4000-8000-000000000001",
        "name": "produktion",
        "color": "#1D7A46"
      }
    ],
    "lastCheck": {
      "isUp": true,
      "responseTime": 212,
      "checkedAt": "2026-11-12T13:40:02.000Z",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "sslIssuer": "Let's Encrypt"
    },
    "slowSince": null,
    "uptime24h": 99.98,
    "avgResponseTime24h": 208,
    "lighthouseMobile": null,
    "lighthouseDesktop": null,
    "headers": null,
    "body": null,
    "timeout": 30,
    "sslCheckEnabled": true,
    "sslExpiryWarningDays": 14,
    "notifyAfterMinutes": 0,
    "notifyOnIpChange": false,
    "responseTimeThresholdMs": 1500,
    "responseTimeConsecutiveChecks": 3,
    "responseTimeRecoveryChecks": 3,
    "checkRegions": [
      "eu-north"
    ],
    "contentValidationType": "none",
    "authType": "none",
    "hasAuthPassword": false,
    "hasAuthToken": false,
    "notificationMode": "inherit",
    "notificationChannels": []
  },
  "message": "Site monitoring paused"
}
POST /sites/:siteId/resume write:sites

Återuppta en check

Startar kontrollerna igen.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Exempel

curl -X POST "https://api.upfinity.app/api/v1/sites/SITE_ID/resume" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "site": {
    "id": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
    "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
    "name": "dizweb.se",
    "url": "https://dizweb.se",
    "method": "GET",
    "expectedStatusCode": 200,
    "checkInterval": 60,
    "isActive": true,
    "isPaused": false,
    "resolvedIp": "46.62.255.136",
    "lastIpChange": null,
    "createdAt": "2026-10-01T08:12:44.000Z",
    "checkType": "http",
    "protocol": "https",
    "port": null,
    "projectId": "c0ffee00-1111-4222-8333-444455556666",
    "folderId": null,
    "tags": [
      {
        "id": "b1d2e3f4-0000-4000-8000-000000000001",
        "name": "produktion",
        "color": "#1D7A46"
      }
    ],
    "lastCheck": {
      "isUp": true,
      "responseTime": 212,
      "checkedAt": "2026-11-12T13:40:02.000Z",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "sslIssuer": "Let's Encrypt"
    },
    "slowSince": null,
    "uptime24h": 99.98,
    "avgResponseTime24h": 208,
    "lighthouseMobile": null,
    "lighthouseDesktop": null,
    "headers": null,
    "body": null,
    "timeout": 30,
    "sslCheckEnabled": true,
    "sslExpiryWarningDays": 14,
    "notifyAfterMinutes": 0,
    "notifyOnIpChange": false,
    "responseTimeThresholdMs": 1500,
    "responseTimeConsecutiveChecks": 3,
    "responseTimeRecoveryChecks": 3,
    "checkRegions": [
      "eu-north"
    ],
    "contentValidationType": "none",
    "authType": "none",
    "hasAuthPassword": false,
    "hasAuthToken": false,
    "notificationMode": "inherit",
    "notificationChannels": []
  },
  "message": "Site monitoring resumed"
}

Projekt

Projekt grupperar checkar, med en nivå mappar. Checkar pekar på sitt projekt med projectId och folderId.

GET /projects read:sites

Lista projekt

Alla projekt med mappar och antal checkar.

Exempel

curl "https://api.upfinity.app/api/v1/projects" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "projects": [
    {
      "id": "c0ffee00-1111-4222-8333-444455556666",
      "organizationId": "a3e5c7d9-1b2f-4a6c-8e0d-9f7b5c3a1e2d",
      "name": "DizWeb",
      "color": "#2563eb",
      "description": null,
      "sortOrder": 0,
      "createdAt": "2026-10-27T10:00:00.000Z",
      "updatedAt": "2026-10-27T10:00:00.000Z",
      "defaultChannelIds": [],
      "checkCount": 6,
      "folders": [
        {
          "id": "f01de700-aaaa-4bbb-8ccc-ddddeeeeffff",
          "projectId": "c0ffee00-1111-4222-8333-444455556666",
          "name": "API",
          "sortOrder": 0,
          "createdAt": "2026-10-27T10:00:00.000Z",
          "checkCount": 2
        }
      ]
    }
  ]
}

Kontroller

Varje gång en prob kontrollerar en check sparas ett resultat. Resultaten sparas i 30 dagar. Längre tillbaka finns daglig statistik.

GET /sites/:siteId/checks read:checks

Lista kontroller

Kontrollerna för en check, nyast först.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Query-parametrar

NamnTypBeskrivning
limitintegerAntal poster, högst 1000. Standard 100.
offsetintegerAntal poster att hoppa över. Standard 0.

Exempel

curl "https://api.upfinity.app/api/v1/sites/SITE_ID/checks" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "checks": [
    {
      "id": "0b8e1d2c-3f4a-4b5c-9d6e-7f8091a2b3c4",
      "siteId": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
      "probeId": "9634ba23-eed0-4195-9feb-c75927b94871",
      "isUp": true,
      "statusCode": 200,
      "responseTime": 212,
      "errorMessage": null,
      "resolvedIp": "46.62.255.136",
      "sslValid": true,
      "sslExpiresAt": "2027-01-03T09:37:55.000Z",
      "checkedAt": "2026-11-12T13:40:02.000Z"
    }
  ],
  "limit": 100,
  "offset": 0
}

För heartbeat-checkar är probeId null och varje rad är en ping eller ett uteblivet ping.

Incidenter

En incident öppnas när en check bekräftats nere och stängs när den är uppe igen.

GET /sites/:siteId/incidents read:incidents

Incidenter för en check

Incidenterna för en check, nyast först.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Query-parametrar

NamnTypBeskrivning
limitintegerAntal poster, högst 500. Standard 50.
offsetintegerAntal poster att hoppa över. Standard 0.

Exempel

curl "https://api.upfinity.app/api/v1/sites/SITE_ID/incidents" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "incidents": [
    {
      "id": "e1c2d3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",
      "siteId": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
      "cause": "HTTP 502",
      "startedAt": "2026-11-10T09:45:12.000Z",
      "resolvedAt": "2026-11-10T10:15:40.000Z",
      "duration": 1828,
      "errorMessage": "Expected status 200, got 502",
      "createdAt": "2026-11-10T09:45:12.000Z",
      "status": "resolved"
    }
  ],
  "limit": 50,
  "offset": 0
}

duration är i sekunder och null så länge incidenten pågår. status är active eller resolved.

GET /incidents read:incidents

Alla incidenter

Incidenter för alla checkar i organisationen, nyast först.

Query-parametrar

NamnTypBeskrivning
limitintegerAntal poster, högst 500. Standard 50.
offsetintegerAntal poster att hoppa över. Standard 0.
statusstringactive för pågående, resolved för avslutade. Utan värde: alla.

Exempel

curl "https://api.upfinity.app/api/v1/incidents" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "incidents": [
    {
      "id": "e1c2d3b4-a5f6-4e7d-8c9b-0a1b2c3d4e5f",
      "siteId": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
      "cause": "HTTP 502",
      "startedAt": "2026-11-12T13:37:00.000Z",
      "resolvedAt": null,
      "duration": null,
      "errorMessage": "Expected status 200, got 502",
      "createdAt": "2026-11-12T13:37:00.000Z",
      "status": "active"
    }
  ],
  "limit": 50,
  "offset": 0
}

Statistik

Daglig statistik räknas fram varje natt. Endpointen ger upp till 90 dagar bakåt.

GET /sites/:siteId/stats read:stats

Statistik för en check

Sammanfattning och en rad per dag för perioden.

Sökvägsparametrar

NamnTypBeskrivning
siteId krävsuuidCheckens id.

Query-parametrar

NamnTypBeskrivning
daysintegerAntal dagar bakåt, högst 90. Standard 30.

Exempel

curl "https://api.upfinity.app/api/v1/sites/SITE_ID/stats" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "siteId": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
  "period": {
    "days": 30,
    "startDate": "2026-10-13T13:40:00.000Z"
  },
  "summary": {
    "totalChecks": 43180,
    "successfulChecks": 43171,
    "uptime": 99.979,
    "avgResponseTime": 209
  },
  "dailyStats": [
    {
      "siteId": "6f1c2b0e-8a4d-4c1e-9b7a-2d5f3e8c1a90",
      "date": "2026-11-11",
      "totalChecks": 1440,
      "successfulChecks": 1440,
      "failedChecks": 0,
      "avgResponseTime": 207.4,
      "minResponseTime": 151,
      "maxResponseTime": 640,
      "p95ResponseTime": 289,
      "uptimePercentage": 100,
      "totalDowntime": 0
    }
  ]
}

uptime och uptimePercentage är i procent, totalDowntime i sekunder. Dagens datum finns med först efter nattens körning.

GET /stats/overview read:stats

Översikt

Läget just nu för hela organisationen.

Exempel

curl "https://api.upfinity.app/api/v1/stats/overview" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "overview": {
    "totalSites": 126,
    "sitesUp": 124,
    "sitesDown": 1,
    "sitesPaused": 1,
    "activeIncidents": 1
  }
}

Probar

Probarna är de servrar som gör kontrollerna. Anropen kommer från deras IP-adresser och har user agenten Upfinity/1.0 (Uptime Monitoring Service; +https://upfinity.se).

GET /probes read:probes

Lista probar

Aktiva probar.

Exempel

curl "https://api.upfinity.app/api/v1/probes" \
  -H "Authorization: Bearer $UPFINITY_API_KEY"

Svar 200

{
  "probes": [
    {
      "id": "9634ba23-eed0-4195-9feb-c75927b94871",
      "name": "Main Server",
      "location": "Helsinki, Finland",
      "continent": "eu-north",
      "isActive": true,
      "lastHeartbeat": "2026-11-12T13:40:11.000Z"
    },
    {
      "id": "615d8871-5755-425f-874e-ae01828e0f20",
      "name": "Stockholm Probe",
      "location": "Stockholm, Sweden",
      "continent": "eu-north",
      "isActive": true,
      "lastHeartbeat": "2026-11-12T13:40:05.000Z"
    }
  ]
}

Fält för checkar

Fälten används när en check skapas med POST /sites och ändras med PUT /sites/:siteId. Fält som inte gäller checktypen ignoreras.

Grundinställningar

FältTypBeskrivningChecktyper
name krävsstringNamn som visas i listor och notiser. Max 255 tecken.alla
checkTypestringTyp av check: http, tcp, ping, ftp, ssh eller heartbeat. Standard: httpalla
urlstringAdressen som ska kontrolleras, t.ex. https://example.com/health. Krävs för http.http
hoststringVärdnamn eller IP-adress. Krävs för tcp, ping, ftp och ssh.tcp, ping, ftp, ssh
portintegerPort 1–65535. Krävs för tcp. Standard 21 för ftp, 990 för ftps och 22 för ssh.tcp, ftp, ssh
protocolstringhttps eller http för http-checkar, ftp eller ftps för ftp-checkar. Standard: httpsalla
checkIntervalintegerSekunder mellan kontroller, 30–3600. Standard: 60alla
timeoutintegerSekunder innan en kontroll räknas som misslyckad, 5–60. Standard: 30alla
checkRegionsstring[]Regioner att kontrollera från: eu-north, na, asia. I dag finns probar bara i eu-north. Standard: ["eu-north","na"]alla
tagIdsuuid[]Taggar att sätta på checken.alla
projectIduuid | nullProjekt checken ska ligga i. Se GET /projects.alla
folderIduuid | nullMapp i projektet. En mapp räcker, projektet följer med.alla

HTTP

Gäller checkType http.

FältTypBeskrivningChecktyper
methodstringGET, POST, PUT, PATCH, DELETE, HEAD eller OPTIONS. Standard: GEThttp
headersobjectEgna headers, t.ex. { "X-Api-Key": "…" }. Ersätter standardvärdena, även User-Agent.http
bodystringBody som skickas med anropet.http
expectedStatusCodeintegerStatuskod som räknas som uppe, 100–599. Omdirigeringar följs upp till fem steg först. Standard: 200http
sslCheckEnabledbooleanKontrollera certifikatet och varna innan det går ut. Standard: truehttp
sslExpiryWarningDaysintegerDagar före utgång då varningen skickas, 1–90. Standard: 14http
contentValidationTypestringnone, contains_string eller json_path. Standard: nonehttp
contentValidationRulestringSträngen som ska finnas, eller JSON-sökvägen, t.ex. data.status.http
contentValidationExpectedstringVärdet som JSON-sökvägen ska ha. Krävs för json_path.http
authTypestringnone, basic, bearer, api_key eller custom. Standard: nonehttp
authUsernamestringAnvändarnamn för basic.http
authPasswordstringLösenord för basic. Sparas krypterat och returneras aldrig.http
authTokenstringToken för bearer, api_key och custom. Sparas krypterat och returneras aldrig.http
authHeaderNamestringHeader-namn för api_key och custom, t.ex. X-Api-Key.http
loginEnabledbooleanLogga in via ett formulär före varje kontroll och skicka med sessionens cookies.http
loginUrlstringAdressen inloggningsformuläret skickas till.http
loginMethodstringGET eller POST. Standard: POSThttp
loginUsernameFieldstringFältnamn för användarnamnet. Standard: usernamehttp
loginPasswordFieldstringFältnamn för lösenordet. Standard: passwordhttp
loginUsernamestringAnvändarnamn för inloggningen.http
loginPasswordstringLösenord för inloggningen. Sparas krypterat och returneras aldrig.http
loginExtraFieldsobjectÖvriga formulärfält, t.ex. { "remember": "1" }.http

TCP, FTP och SSH

FältTypBeskrivningChecktyper
tcpExpectResponsestringText som servern ska svara med efter uppkoppling.tcp
ftpUsernamestringAnvändarnamn för FTP-inloggningen.ftp
ftpPasswordstringLösenord. Sparas krypterat och returneras aldrig.ftp
ftpPathstringKatalog som ska listas efter inloggningen.ftp
ftpPassivebooleanAnvänd passivt läge.ftp
sshUsernamestringAnvändarnamn för SSH-inloggningen.ssh
sshPasswordstringLösenord. Sparas krypterat och returneras aldrig.ssh
sshCommandstringKommando som körs efter inloggningen.ssh
sshExpectedExitCodeintegerFörväntad exit-kod för kommandot, -1–255.ssh

Heartbeat

En heartbeat kontrolleras inte av probar. Ditt jobb anropar i stället heartbeatUrl, som finns i svaret när checken skapats. Uteblir anropet larmar Upfinity. Heartbeat kräver plan Standard eller högre.

FältTypBeskrivningChecktyper
heartbeatIntervalSecondsintegerFörväntad tid mellan pingar, 60 sekunder–30 dagar. Ange detta eller heartbeatSchedule.heartbeat
heartbeatScheduleobject | nullSchema i stället för intervall: { freq, every, weekdays, monthDays, times, cron, startDate, timezone }. freq är minute, hour, day, week, month eller cron.heartbeat
heartbeatGraceSecondsintegerMarginal innan larm, 0–7 dagar. Utan värde: 10 % av intervallet, minst 1 minut.heartbeat

Lighthouse

Mätning av prestanda, tillgänglighet och SEO med Google Lighthouse. Kan bara slås på när en check ändras, inte när den skapas.

FältTypBeskrivningChecktyper
lighthouseEnabledbooleanSlå på Lighthouse-mätning. Första mätningen görs direkt. Bara vid ändring (PUT).http
lighthouseSchedulestringdaily eller weekly. Bara vid ändring (PUT).http
lighthouseStrategystringmobile, desktop eller both. Standard: both Bara vid ändring (PUT).http
lighthouseThresholdintegerLarma när performance-poängen går under värdet, 0–100. Bara vid ändring (PUT).http

Notiser

FältTypBeskrivningChecktyper
notifyAfterMinutesintegerMinuter checken ska vara nere innan larm, 0–60. Standard: 0alla
notifyOnIpChangebooleanLarma när domänen pekar om till en okänd IP-adress. Standard: falsehttp
responseTimeThresholdMsinteger | nullLarma när svarstiden överstiger värdet (100–60000 ms). null stänger av.http, tcp, ping
responseTimeConsecutiveChecksintegerLångsamma kontroller i rad innan larm, 1–30. Standard: 3http, tcp, ping
responseTimeRecoveryChecksintegerNormala kontroller i rad innan det räknas som återställt, 1–30. Standard: 3http, tcp, ping
notificationModestringinherit följer projektets eller organisationens standardkanaler. custom använder notificationChannels. Standard: inheritalla
notificationChannelsobject[]Egna kanaler: [{ channelId, notifyOnDown, notifyOnUp, notifyOnSlow, notifyOnSslExpiry }]. Händelsefälten är true om de utelämnas.alla
reminderEnabledbooleanSkicka påminnelser medan checken är nere. Kräver plan Standard eller högre. Utelämnat = organisationens standard.alla
reminderIntervalMinutesintegerMinuter mellan påminnelser, 5–1440. Utelämnat = organisationens standard.alla
maxRemindersinteger | nullHögst så här många påminnelser per incident, 0 = obegränsat. null = organisationens gräns.alla
notificationChannelIdsuuid[]Äldre sätt att ange egna kanaler, alla händelser. En lista som inte är tom sätter notificationMode till custom.alla

Exempel per checktyp

TCP-port:

{
  "name": "Databas",
  "checkType": "tcp",
  "host": "db.example.com",
  "port": 5432
}

Heartbeat som körs varje natt 02:00. Svaret innehåller heartbeatUrl, som jobbet anropar med GET eller POST när det är klart. Skicka {"status":"fail","message":"…"} som POST för att rapportera ett fel.

{
  "name": "Nattlig backup",
  "checkType": "heartbeat",
  "heartbeatSchedule": {
    "freq": "day",
    "every": 1,
    "times": [
      "02:00"
    ],
    "startDate": "2026-11-12",
    "timezone": "Europe/Stockholm"
  },
  "heartbeatGraceSeconds": 900
}