Get history for a URL monitoring service

View the history of how a specific URL has been monitored, including status, response time, and other details for past checks over a given period.

Domain Services Domains

Context

Path Parameters

id integer · min: 1 required Example: 52

Unique id identifier

Query Parameters

hours string required · Example: 24

Headers

Accept Example
Content-Type Example

Responses

200
data object required
data.history array<object> required · Example: [{"checked_at":"2026-02-10T00:00:00.000Z","status":"up","response_time":594,"status_cod...
data.history[].checked_at string required · Example: 2026-02-10T00:00:00.000Z
data.history[].content_match string · nullable required · Example: null

Nullable: may be null when not applicable.

data.history[].error_message string · nullable required · Example: Unexpected status code: 403

Nullable: may be null when not applicable.

data.history[].response_size string · nullable required · Example: null

Nullable: may be null when not applicable.

data.history[].response_time integer required · Example: 594
data.history[].ssl_days_remaining integer · nullable required · Example: 30

Nullable: may be null when not applicable.

data.history[].status string · enum required · Example: up
down
up
data.history[].status_code integer required · Example: 200
data.incidents array<object> required · Example: [{"started_at":"2026-02-10T00:00:00.000Z","ended_at":null,"duration":null,"incident_typ...
data.incidents[].checks_failed integer required · Example: 0
data.incidents[].duration string · nullable required · Example: null

Nullable: may be null when not applicable.

data.incidents[].ended_at string · nullable required · Example: null

Nullable: may be null when not applicable.

data.incidents[].error_message string required · Example: Unexpected status code: 403
data.incidents[].incident_type string required · Example: downtime
data.incidents[].started_at string required · Example: 2026-02-10T00:00:00.000Z
data.monitor object required
data.monitor.id integer required · Example: 52
data.monitor.name string required · Example: Example Monitor
data.monitor.url string required · Example: https://example.com
data.period object required
data.period.from string required · Example: 2026-02-10T00:00:00.000Z
data.period.hours integer required · Example: 24
data.period.to string required · Example: 2026-02-10T00:00:00.000Z
data.stats object required
data.stats.avg_response_time integer required · Example: 281
data.stats.degraded_checks integer required · Example: 0
data.stats.failed_checks integer required · Example: 1
data.stats.max_response_time integer required · Example: 687
data.stats.median_response_time integer required · Example: 170
data.stats.min_response_time integer required · Example: 157
data.stats.p95_response_time integer required · Example: 669
data.stats.successful_checks integer required · Example: 57
data.stats.total_checks integer required · Example: 58
requestId string required · Example: 2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba

Unique request identifier (UUID).

success boolean required · Example: true

True for successful responses.

timestamp string required · Example: 2026-02-10T00:00:00.000Z

ISO 8601 timestamp (UTC).

GET https://cloud.hostup.se/api/notifications/url-monitors/{id}/history
For AI assistants
cURL
curl -X GET "https://cloud.hostup.se/api/notifications/url-monitors/52/history?hours=24" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Response
{
  "success": true,
  "timestamp": "2026-02-10T00:00:00.000Z",
  "requestId": "2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba",
  "data": {
    "monitor": {
      "id": 52,
      "name": "Example Monitor",
      "url": "https://example.com"
    },
    "history": [
      {
        "checked_at": "2026-02-10T00:00:00.000Z",
        "status": "up",
        "response_time": 594,
        "status_code": 200,
        "error_message": null,
        "response_size": null,
        "ssl_days_remaining": null,
        "content_match": null
      },
      {
        "checked_at": "2026-02-10T00:00:00.000Z",
        "status": "up",
        "response_time": 687,
        "status_code": 200,
        "error_message": null,
        "response_size": null,
        "ssl_days_remaining": null,
        "content_match": null
      },
      {
        "_truncated": "... and 56 more items"
      }
    ],
    "stats": {
      "total_checks": 58,
      "successful_checks": 57,
      "failed_checks": 1,
      "degraded_checks": 0,
      "avg_response_time": 281,
      "min_response_time": 157,
      "max_response_time": 687,
      "median_response_time": 170,
      "p95_response_time": 669
    },
    "incidents": [],
    "period": {
      "hours": 24,
      "from": "2026-02-10T00:00:00.000Z",
      "to": "2026-02-10T00:00:00.000Z"
    }
  }
}