Skip to content

Commit 4295b60

Browse files
Add reports endpoints
1 parent 892d063 commit 4295b60

1 file changed

Lines changed: 363 additions & 1 deletion

File tree

openapi.json

Lines changed: 363 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5559,6 +5559,253 @@
55595559
}
55605560
}
55615561
},
5562+
"/uptime/monitors/{monitorId}/report": {
5563+
"get": {
5564+
"tags": [
5565+
"Monitors"
5566+
],
5567+
"summary": "Get a monitor report",
5568+
"description": "Get uptime statistics for a single monitor by ID in the selected time window",
5569+
"operationId": "getUptimeMonitorReport",
5570+
"parameters": [
5571+
{
5572+
"name": "monitorId",
5573+
"in": "path",
5574+
"description": "ID of the monitor to report on",
5575+
"required": true,
5576+
"schema": {
5577+
"type": "integer"
5578+
}
5579+
},
5580+
{
5581+
"name": "from",
5582+
"in": "query",
5583+
"description": "Start of the reporting window",
5584+
"required": false,
5585+
"schema": {
5586+
"type": "string",
5587+
"format": "date-time",
5588+
"example": "2026-04-01T00:00:00Z"
5589+
}
5590+
},
5591+
{
5592+
"name": "to",
5593+
"in": "query",
5594+
"description": "End of the reporting window",
5595+
"required": false,
5596+
"schema": {
5597+
"type": "string",
5598+
"format": "date-time",
5599+
"example": "2026-04-30T23:59:59Z"
5600+
}
5601+
},
5602+
{
5603+
"$ref": "#/components/parameters/page"
5604+
},
5605+
{
5606+
"$ref": "#/components/parameters/per_page"
5607+
},
5608+
{
5609+
"$ref": "#/components/parameters/header_project_id"
5610+
},
5611+
{
5612+
"$ref": "#/components/parameters/header_project_slug"
5613+
}
5614+
],
5615+
"responses": {
5616+
"200": {
5617+
"description": "Success, monitor report retrieved",
5618+
"content": {
5619+
"application/json": {
5620+
"schema": {
5621+
"properties": {
5622+
"id": {
5623+
"description": "Monitor ID",
5624+
"type": "integer",
5625+
"example": 12
5626+
},
5627+
"name": {
5628+
"description": "Monitor name",
5629+
"type": "string",
5630+
"example": "Website"
5631+
},
5632+
"incident_count": {
5633+
"description": "Number of incidents affecting this monitor in the selected range",
5634+
"type": "integer",
5635+
"example": 2
5636+
},
5637+
"downtime": {
5638+
"description": "Total downtime for this monitor in seconds",
5639+
"type": "integer",
5640+
"example": 1500
5641+
},
5642+
"availability": {
5643+
"description": "Availability for this monitor in the selected range, as a percentage",
5644+
"type": "number",
5645+
"format": "float",
5646+
"example": 99.944
5647+
},
5648+
"mttr": {
5649+
"description": "Mean time to recovery (MTTR) for this monitor, in seconds",
5650+
"type": "integer",
5651+
"example": 750,
5652+
"nullable": true
5653+
},
5654+
"mtbf": {
5655+
"description": "Mean time between failures (MTBF) for this monitor, in seconds",
5656+
"type": "integer",
5657+
"example": 43200,
5658+
"nullable": true
5659+
},
5660+
"highest_incident_impact": {
5661+
"$ref": "#/components/schemas/Uptime.Incident.ImpactEnum"
5662+
}
5663+
},
5664+
"type": "object"
5665+
}
5666+
}
5667+
}
5668+
},
5669+
"422": {
5670+
"$ref": "#/components/responses/422"
5671+
},
5672+
"401": {
5673+
"$ref": "#/components/responses/401"
5674+
},
5675+
"403": {
5676+
"$ref": "#/components/responses/403"
5677+
}
5678+
}
5679+
}
5680+
},
5681+
"/uptime/reports": {
5682+
"get": {
5683+
"tags": [
5684+
"Reports"
5685+
],
5686+
"summary": "Get report",
5687+
"description": "Get aggregated uptime statistics for the selected time window",
5688+
"operationId": "getUptimeReport",
5689+
"parameters": [
5690+
{
5691+
"name": "from",
5692+
"in": "query",
5693+
"description": "Start of the reporting window",
5694+
"required": false,
5695+
"schema": {
5696+
"type": "string",
5697+
"format": "date-time",
5698+
"example": "2026-04-01T00:00:00Z"
5699+
}
5700+
},
5701+
{
5702+
"name": "to",
5703+
"in": "query",
5704+
"description": "End of the reporting window",
5705+
"required": false,
5706+
"schema": {
5707+
"type": "string",
5708+
"format": "date-time",
5709+
"example": "2026-04-30T23:59:59Z"
5710+
}
5711+
},
5712+
{
5713+
"$ref": "#/components/parameters/page"
5714+
},
5715+
{
5716+
"$ref": "#/components/parameters/per_page"
5717+
},
5718+
{
5719+
"$ref": "#/components/parameters/header_project_id"
5720+
},
5721+
{
5722+
"$ref": "#/components/parameters/header_project_slug"
5723+
}
5724+
],
5725+
"responses": {
5726+
"200": {
5727+
"description": "Success, report retrieved",
5728+
"content": {
5729+
"application/json": {
5730+
"schema": {
5731+
"properties": {
5732+
"downtime": {
5733+
"description": "Total downtime across all monitors in seconds",
5734+
"type": "integer",
5735+
"example": 2940
5736+
},
5737+
"availability": {
5738+
"description": "Mean monitor availability across the selected range, as a percentage",
5739+
"type": "number",
5740+
"format": "float",
5741+
"example": 99.9634
5742+
},
5743+
"min_availability": {
5744+
"description": "Lowest monitor availability in the selected range, as a percentage",
5745+
"type": "number",
5746+
"format": "float",
5747+
"example": 99.9125
5748+
},
5749+
"max_availability": {
5750+
"description": "Highest monitor availability in the selected range, as a percentage",
5751+
"type": "number",
5752+
"format": "float",
5753+
"example": 100
5754+
},
5755+
"mttr": {
5756+
"description": "Mean time to recovery (MTTR) average for all monitors, in seconds",
5757+
"type": "number",
5758+
"format": "float",
5759+
"example": 735,
5760+
"nullable": true
5761+
},
5762+
"mtbf": {
5763+
"description": "Mean time between failures (MTBF) average for all monitors, in seconds",
5764+
"type": "number",
5765+
"format": "float",
5766+
"example": 43200,
5767+
"nullable": true
5768+
},
5769+
"highest_incident_impact": {
5770+
"$ref": "#/components/schemas/Uptime.Incident.ImpactEnum"
5771+
},
5772+
"report_start_at": {
5773+
"description": "Effective start of the generated report window",
5774+
"type": "string",
5775+
"format": "date-time",
5776+
"example": "2026-04-01T00:00:00Z"
5777+
},
5778+
"report_end_at": {
5779+
"description": "Effective end of the generated report window",
5780+
"type": "string",
5781+
"format": "date-time",
5782+
"example": "2026-04-30T23:59:59Z"
5783+
},
5784+
"monitors": {
5785+
"description": "Per-monitor statistics for all monitors included in the report",
5786+
"type": "array",
5787+
"items": {
5788+
"$ref": "#/components/schemas/Uptime.Monitor.Report.DataResource"
5789+
}
5790+
}
5791+
},
5792+
"type": "object"
5793+
}
5794+
}
5795+
}
5796+
},
5797+
"422": {
5798+
"$ref": "#/components/responses/422"
5799+
},
5800+
"401": {
5801+
"$ref": "#/components/responses/401"
5802+
},
5803+
"403": {
5804+
"$ref": "#/components/responses/403"
5805+
}
5806+
}
5807+
}
5808+
},
55625809
"/uptime/status-pages": {
55635810
"get": {
55645811
"tags": [
@@ -7597,6 +7844,116 @@
75977844
},
75987845
"type": "object"
75997846
},
7847+
"Uptime.Monitor.Report.DataResource": {
7848+
"properties": {
7849+
"id": {
7850+
"description": "Monitor ID",
7851+
"type": "integer",
7852+
"example": 12
7853+
},
7854+
"name": {
7855+
"description": "Monitor name",
7856+
"type": "string",
7857+
"example": "Website"
7858+
},
7859+
"incident_count": {
7860+
"description": "Number of incidents affecting this monitor in the selected range",
7861+
"type": "integer",
7862+
"example": 2
7863+
},
7864+
"downtime": {
7865+
"description": "Total downtime for this monitor in seconds",
7866+
"type": "integer",
7867+
"example": 1500
7868+
},
7869+
"availability": {
7870+
"description": "Availability for this monitor in the selected range, as a percentage",
7871+
"type": "number",
7872+
"format": "float",
7873+
"example": 99.944
7874+
},
7875+
"mttr": {
7876+
"description": "Mean time to recovery (MTTR) for this monitor, in seconds",
7877+
"type": "integer",
7878+
"example": 750,
7879+
"nullable": true
7880+
},
7881+
"mtbf": {
7882+
"description": "Mean time between failures (MTBF) for this monitor, in seconds",
7883+
"type": "integer",
7884+
"example": 43200,
7885+
"nullable": true
7886+
},
7887+
"highest_incident_impact": {
7888+
"$ref": "#/components/schemas/Uptime.Incident.ImpactEnum"
7889+
}
7890+
},
7891+
"type": "object"
7892+
},
7893+
"Uptime.Report.DataResource": {
7894+
"properties": {
7895+
"downtime": {
7896+
"description": "Total downtime across all monitors in seconds",
7897+
"type": "integer",
7898+
"example": 2940
7899+
},
7900+
"availability": {
7901+
"description": "Mean monitor availability across the selected range, as a percentage",
7902+
"type": "number",
7903+
"format": "float",
7904+
"example": 99.9634
7905+
},
7906+
"min_availability": {
7907+
"description": "Lowest monitor availability in the selected range, as a percentage",
7908+
"type": "number",
7909+
"format": "float",
7910+
"example": 99.9125
7911+
},
7912+
"max_availability": {
7913+
"description": "Highest monitor availability in the selected range, as a percentage",
7914+
"type": "number",
7915+
"format": "float",
7916+
"example": 100
7917+
},
7918+
"mttr": {
7919+
"description": "Mean time to recovery (MTTR) average for all monitors, in seconds",
7920+
"type": "number",
7921+
"format": "float",
7922+
"example": 735,
7923+
"nullable": true
7924+
},
7925+
"mtbf": {
7926+
"description": "Mean time between failures (MTBF) average for all monitors, in seconds",
7927+
"type": "number",
7928+
"format": "float",
7929+
"example": 43200,
7930+
"nullable": true
7931+
},
7932+
"highest_incident_impact": {
7933+
"$ref": "#/components/schemas/Uptime.Incident.ImpactEnum"
7934+
},
7935+
"report_start_at": {
7936+
"description": "Effective start of the generated report window",
7937+
"type": "string",
7938+
"format": "date-time",
7939+
"example": "2026-04-01T00:00:00Z"
7940+
},
7941+
"report_end_at": {
7942+
"description": "Effective end of the generated report window",
7943+
"type": "string",
7944+
"format": "date-time",
7945+
"example": "2026-04-30T23:59:59Z"
7946+
},
7947+
"monitors": {
7948+
"description": "Per-monitor statistics for all monitors included in the report",
7949+
"type": "array",
7950+
"items": {
7951+
"$ref": "#/components/schemas/Uptime.Monitor.Report.DataResource"
7952+
}
7953+
}
7954+
},
7955+
"type": "object"
7956+
},
76007957
"Platform.App.Ntfy.AlertRuleSettings": {
76017958
"title": "Ntfy",
76027959
"required": [
@@ -7990,6 +8347,10 @@
79908347
"name": "Status Pages",
79918348
"description": "Status Pages"
79928349
},
8350+
{
8351+
"name": "Reports",
8352+
"description": "Reports"
8353+
},
79938354
{
79948355
"name": "Platform",
79958356
"description": "Platform"
@@ -8013,7 +8374,8 @@
80138374
"tags": [
80148375
"Monitors",
80158376
"Incidents",
8016-
"Status Pages"
8377+
"Status Pages",
8378+
"Reports"
80178379
]
80188380
}
80198381
]

0 commit comments

Comments
 (0)