API-referentie voor monitors

Mogelijke waarden voor velden

Locatie van de monitor

WaardeBeschrijving
US_EAST_1N. Virginia
CA_CENTRAL_1Canada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokio

Types monitormeldingen

WaardeBeschrijving
INCIDENTMelding via een incident
EMAILMelding per e-mail
SMSMelding per sms
SLACKMelding via Slack
DISCORDMelding via Discord
MICROSOFT_TEAMSMelding via Microsoft Teams
PHONE_CALLMelding via telefoontje
WEBHOOKMelding via webhook
GOOGLE_CHATMelding via Google Chat
WHATSAPPMelding via WhatsApp

Status van de monitor

WaardeBeschrijving
UPDe monitor draait normaal
DOWNDe monitor is gefaald
DEGRADEDDe monitor heeft problemen
UNKNOWNDe staat van de monitor is niet te bepalen

Monitors ophalen

Met dit endpoint blader je door een lijst met alle bestaande monitors.

Endpoint:

GET /:page_id/monitors

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
pagenumber1Het op te halen paginanummer.
limitnumber100Het aantal monitors per pagina.
searchstringnullZoekterm om resultaten te filteren.
statusenumnullStatusfilter ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Voorbeeldverzoek

GET /1/monitors?limit=3&page=2&status=DOWN

Voorbeeldrespons

{
"monitors": [{ "...": "monitor objects" }],
"total": 10,
"page": 3,
"totalPages": 5,
"limit": 2
}

Een monitor aanmaken

Endpoint:

POST /monitors

Voorbeeldverzoek

{
"pageId": "page123",
"url": "https://example.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"target": "200"
}
],
"alerts": ["alert-id-1", "alert-id-2"],
"name": "Example Monitor",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
}
}

Voorbeeldrespons

{
"monitor": {
"pageId": "page123",
"url": "https://example.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"id": "assertion1",
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"target": "200"
}
],
"alerts": ["alert1", "alert2"],
"name": "Example Monitor",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z"
},
"message": "Monitor created successfully"
}

Een monitor bijwerken

Endpoint:

PUT /monitors/:id

Voorbeeldverzoek

{
"url": "https://updated.com",
"name": "Updated Monitor Name"
}

Voorbeeldrespons

{
"monitor": {
"pageId": "page123",
"url": "https://updated.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"id": "assertion1",
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"value": "200"
}
],
"alerts": ["alert1", "alert2"],
"name": "Updated Monitor Name",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z"
},
"message": "Monitor updated successfully"
}

Een monitor verwijderen

Endpoint:

DELETE /monitors/:id

Voorbeeldverzoek

DELETE /monitors/monitor-id-1

Voorbeeldrespons

{
"message": "Monitor deleted successfully."
}

Monitorlogs ophalen

Endpoint:

GET /monitors/:id/logs

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
limitnumber100Het aantal items per pagina. Mag niet hoger zijn dan 1000.
pagenumber1Het op te halen paginanummer.
monitorIdstring-Het ID van de monitor.
locationstringnullDe locatie van de monitor.
createdAtstring | object | numbernullDe aanmaakdatum. Kan een string, een getal of een object met de velden gte en lte zijn.
isSuccessfulbooleannullOf de check is geslaagd.
isSSLCheckbooleannullOf de check een SSL-check is.
httpStatusCodestringnullDe HTTP-statuscode van de respons.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullDe status van de monitor.
dnsTimestring | number | objectnullTijd die de DNS-resolutie kostte.
tcpTimestring | number | objectnullTijd die de TCP-verbinding kostte.
tlsTimestring | number | objectnullTijd die de TLS-handshake kostte.
firstByteTimestring | number | objectnullTijd tot de eerste byte binnenkwam.
downloadTimestring | number | objectnullTijd die de download kostte.
responseTimestring | number | objectnullTotale responstijd.
performanceTimestring | number | objectnullPrestatietijd.
accessabilityScorestring | number | objectnullToegankelijkheidsscore.
seoScorestring | number | objectnullSEO-score.
bestPracticesScorestring | number | objectnullScore voor best practices.
successfulAssertionsstring | number | objectnullAantal geslaagde controles.
sortstringchronologischVeld om op te sorteren.

Voorbeeldverzoek

GET /monitors/monitor-id-1/logs?limit=100&page=1

Voorbeeldrespons

{
"monitorLogs": [
// {monitor log object},
// {monitor log object 2}
],
"total": 478,
"page": 1,
"totalPages": 5,
"limit": 100
}

Een monitorcheck uitvoeren op ID

Endpoint:

GET /monitors/:id/run

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-De locatie van de monitor. Moet een van de genoemde waarden zijn.
retrybooleanfalseGeeft aan of de bewerking opnieuw geprobeerd moet worden. Optioneel.
monitorLogIdstringnullDe unieke identificatie van het monitorlog. Optioneel.

Voorbeeldverzoek

GET /monitors/monitor-id-1/run?monitorId=abc123&location=US_EAST_1&retry=true&monitorLogId=log456

Voorbeeldrespons

{
"status": "success",
"message": "Monitor check run successfully."
}

Een monitormelding aanmaken

Endpoint:

POST /monitor-alerts

Voorbeeldverzoek

{
"type": "EMAIL",
"pageId": "page123",
"recipient": "user@example.com",
"recipientWorkspace": "workspace123",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": ["monitor1", "monitor2"],
"metadata": "Additional information about the alert"
}

Voorbeeldrespons

{
"monitor": {
"id": "alert123",
"siteId": "site123",
"type": "EMAIL",
"recipient": "user@example.com",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"metadata": "Additional information about the alert"
},
"message": "Monitor Alert created successfully"
}

Een monitormelding bijwerken

Endpoint:

PUT /monitor-alerts/:id

Voorbeeldverzoek

{
"type": "EMAIL",
"monitors": ["monitor-1-id", "monitor-2-id", "monitor-3-id"]
}

Voorbeeldrespons

{
"monitor": {
"type": "EMAIL",
"pageId": "page123",
"recipient": "user@example.com",
"recipientWorkspace": "workspace123",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": ["monitor-1-id", "monitor-2-id"],
"metadata": "Additional information about the alert"
},
"message": "Monitor alert updated successfully."
}

Monitormeldingen ophalen

Endpoint:

GET /:page_id/monitor-alerts

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
limitnumber100Het aantal items per pagina.
pagenumber1Het op te halen paginanummer.

Voorbeeldverzoek

GET /1/monitor-alerts?limit=2&page=3

Voorbeeldrespons

{
"monitorAlerts": [
{...monitor alert objects}
],
"total": 27,
"page": 3,
"totalPages": 14,
"limit": 2
}

Een monitormelding verwijderen

Endpoint:

DELETE /monitor-alerts/:id

Voorbeeldverzoek

DELETE /monitor-alerts/alert-id-1

Voorbeeldrespons

{
"message": "Monitor alert deleted successfully."
}

Een monitorgroep aanmaken

Endpoint:

POST /monitors-groups

Voorbeeldverzoek

{
"pageId": "page123",
"name": "Example Name",
"childId": "child456"
}

Voorbeeldrespons

{
"monitor": {
"id": "group123",
"name": "Example Name",
"siteId": "site123",
"collapsed": false,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"groupId": "parentGroup123",
"children": [
{ "id": "childGroup1", "name": "Child Group 1" },
{ "id": "childGroup2", "name": "Child Group 2" }
],
"order": 1,
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"parents": ["parent1", "parent2"],
"componentId": "component123"
},
"message": "Monitor group created successfully."
}

Een monitorgroep bijwerken

Endpoint:

PUT /monitors-groups/:id

Voorbeeldverzoek

{
"name": "Updated Monitor Group Name"
}

Voorbeeldrespons

{
"monitor": {
"id": "group123",
"name": "Updated Monitor Group Name",
"siteId": "site123",
"collapsed": true,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"groupId": "parentGroup123",
"children": [
{ "id": "childGroup1", "name": "Child Group 1" },
{ "id": "childGroup2", "name": "Child Group 2" }
],
"order": 1,
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"parents": ["parent1", "parent2"],
"componentId": "component123"
},
"message": "Monitor group updated successfully."
}

Een monitorgroep verwijderen

Endpoint:

DELETE /monitors-groups/:id

Voorbeeldverzoek

DELETE /monitors-groups/group-id-1

Voorbeeldrespons

{
"message": "Monitor group deleted successfully."
}

Monitors aan een groep toevoegen

Endpoint:

POST /monitors-groups/:id/monitors

Voorbeeldverzoek

{
"monitors": ["monitor1", "monitor2", "monitor3"]
}

Voorbeeldrespons

{
"message": "Monitors added to the group successfully."
}

Een check voor een monitorgroep uitvoeren

Endpoint:

GET /monitors-groups/:id/run

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-De locatie van de monitor. Moet een van de genoemde waarden zijn.
retrybooleanfalseGeeft aan of de bewerking opnieuw geprobeerd moet worden. Optioneel.
monitorLogIdstringnullDe unieke identificatie van het monitorlog. Optioneel.

Voorbeeldverzoek

GET /monitors-groups/group-id-1/run

Voorbeeldrespons

{
"result": "OK",
"monitorLogId": "monitor-log-id-1"
}

Cron-monitors

Cron-monitors volgen geplande taken via HTTP-pings. Zie Cron-monitoring voor het instellen en het gebruik in het dashboard.

Mogelijke waarden voor velden

Status van een cron-monitor

WaardeBeschrijving
UPDe monitor draait normaal
DOWNDe monitor is gefaald
DEGRADEDDe monitor heeft problemen
UNKNOWNDe staat van de monitor is niet te bepalen

Staat van een cron-monitor

WaardeBeschrijving
ACTIVEDe monitor wordt actief gecontroleerd
PAUSEDDe checks van de monitor zijn gepauzeerd
MUTEDDe monitor is gedempt (geen notificaties)

Logstatus van een cron-monitor

WaardeBeschrijving
SUCCESSDe taak is succesvol afgerond
FAILUREDe taak heeft expliciet een fout gemeld
MISSEDDe taak heeft niet binnen het verwachte venster gepingd
LATEDe taak pingde na de periode, maar binnen het respijt
STARTEDDe taak meldde dat hij is gestart (voor de uitvoeringstijd)

Periode en respijt

Zowel period als grace worden in seconden opgegeven. period is hoe vaak de taak moet draaien; grace is de extra tijd voordat de monitor als down wordt gemarkeerd.

Cron-monitors ophalen

Endpoint:

GET /:page_id/monitors/cron

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
limitnumber100Het aantal cron-monitors per pagina. Maximaal 100.
pagenumber1Het paginanummer.
searchstringnullZoekterm om resultaten op naam te filteren.
statusenumnullStatusfilter ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Voorbeeldverzoek

GET /page123/monitors/cron?limit=10&page=1&status=DOWN

Voorbeeldrespons

{
"cronMonitors": [
{
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
}
],
"total": 1,
"page": 1,
"totalPages": 1,
"limit": 10
}

Een cron-monitor aanmaken

Endpoint:

POST /monitors/cron

Voorbeeldverzoek

{
"pageId": "page123",
"name": "Daily backup",
"period": 86400,
"grace": 3600,
"alerts": ["alert-id-1", "alert-id-2"],
"createComponent": true,
"onFail": {
"createIncident": true,
"createOutageDuration": false,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": false,
"publishIncident": true,
"notifySubscribers": true
}
}

Voorbeeldrespons

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
},
"message": "Cron monitor created successfully."
}

De respons bevat een slug. Gebruik die om ping-URL's voor je taak samen te stellen. De eerste geslaagde ping plant de achtergrondcheck in.

Een cron-monitor bijwerken

Endpoint:

PUT /monitors/cron/:id

Voorbeeldverzoek

{
"name": "Daily backup (updated)",
"period": 43200,
"grace": 1800,
"state": "PAUSED",
"alerts": ["alert-id-1"],
"onFail": {
"notifySubscribers": false
}
}

Voorbeeldrespons

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup (updated)",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 43200,
"grace": 1800,
"status": "UP",
"state": "PAUSED",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": false,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"alerts": [
{
"id": "alert-id-1",
"type": "EMAIL",
"recipient": "ops@example.com"
}
],
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-16T10:30:00.000Z"
},
"message": "Cron monitor updated successfully."
}

Een cron-monitor verwijderen

Endpoint:

DELETE /monitors/cron/:id

Voorbeeldverzoek

DELETE /monitors/cron/cron-abc123

Voorbeeldrespons

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
},
"message": "Cron monitor deleted successfully."
}

Logs van een cron-monitor ophalen

Endpoint:

GET /monitors/cron/:id/logs

Query-parameters

ParameterTypeStandaardwaardeBeschrijving
limitnumber100Het aantal logs per pagina. Maximaal 127.
pagenumber1Het paginanummer. Maximaal 1000.
startDatestring1 jaar geledenISO 8601-startdatum voor het logbereik.
endDatestringnuISO 8601-einddatum voor het logbereik.
importanceenumnullFilter logs op belang ('all', 'important').

Voorbeeldverzoek

GET /monitors/cron/cron-abc123/logs?limit=50&page=1&importance=important

Voorbeeldrespons

{
"logs": [
{
"id": "log-xyz789",
"monitorId": "cron-abc123",
"status": "SUCCESS",
"requestType": "GET",
"agent": "curl/8.4.0",
"ipAddress": "203.0.113.10",
"createdAt": "2024-01-16T06:00:00.000Z",
"startedAt": "2024-01-16T05:59:58.000Z"
}
],
"page": 1
}

Samenvatting van een cron-monitor ophalen

Endpoint:

GET /monitors/cron/:id/summary

Voorbeeldverzoek

GET /monitors/cron/cron-abc123/summary

Voorbeeldrespons

{
"summary": {
"totalLogs": 120,
"totalFailedLogs": 3,
"availability": 97.5,
"oneDayAvailability": 100,
"previousDayAvailability": 100,
"sevenDayAvailability": 98.2,
"previousSevenDayAvailability": 96.1,
"thirtyDayAvailability": 97.5,
"previousThirtyDayAvailability": 95.8,
"lastSuccess": "2024-01-16T06:00:00.000Z",
"lastFailure": "2024-01-10T06:00:00.000Z",
"lastStarted": null,
"upSince": "2024-01-10T07:00:00.000Z",
"downSince": null
}
}

Ping-endpoints

Deze endpoints vereisen geen authenticatie. De slug van de monitor doet dienst als secret.

Je kunt pingen via de basis-URL van de API of via de speciale cron-host:

  • Succes: https://cron.instatus.com/{slug} of GET / POST / HEAD /monitors/cron/{slug}
  • Fout: https://cron.instatus.com/{slug}/fail of GET / POST / HEAD /monitors/cron/{slug}/fail
  • Start: https://cron.instatus.com/{slug}/start of GET / POST / HEAD /monitors/cron/{slug}/start

Stuur een successignaal telkens wanneer je taak volgens schema klaar is. Stuur een startsignaal voordat de taak draait en een succes- of foutsignaal wanneer hij klaar is om de uitvoeringstijd vast te leggen.

Voorbeeld van een successignaal

curl https://cron.instatus.com/my-page-x7k2m9n4p1q8w3e5

Voorbeeldrespons

{
"id": "log-xyz789",
"monitorId": "cron-abc123",
"status": "SUCCESS",
"requestType": "GET",
"agent": "curl/8.4.0",
"ipAddress": "203.0.113.10",
"createdAt": "2024-01-16T06:00:00.000Z"
}

Is de slug ongeldig, dan is de respons:

{
"message": "Monitor not found"
}