# API-referanse for monitorer

Source: https://instatus.com/help/no/api/monitors

- [Monitors](https://instatus.com/help/no/api/monitors#get-monitors): Check the uptime of your websites, APIs, and services
- [Cron Monitors](https://instatus.com/help/no/api/monitors#cron-monitors): Monitor your scheduled jobs via HTTP pings

## Mulige verdier for felt

**Monitorlokasjon**

| Verdi            | Beskrivelse       |
| ---------------- | ----------------- |
| `US_EAST_1`      | N. Virginia       |
| `CA_CENTRAL_1`   | Canada (Montreal) |
| `EU_CENTRAL_1`   | Frankfurt         |
| `AP_NORTHEAST_1` | Tokyo             |

**Typer monitorvarsler**

| Verdi             | Beskrivelse           |
| ----------------- | --------------------- |
| `INCIDENT`        | Hendelsesvarsel        |
| `EMAIL`           | E-postvarsel           |
| `SMS`             | SMS-varsel             |
| `SLACK`           | Slack-varsel           |
| `DISCORD`         | Discord-varsel         |
| `MICROSOFT_TEAMS` | Microsoft Teams-varsel |
| `PHONE_CALL`      | Telefonanropsvarsel      |
| `WEBHOOK`         | Webhook-varsel         |
| `GOOGLE_CHAT`     | Google Chat-varsel     |
| `WHATSAPP`        | WhatsApp-varsel        |

**Monitorstatus**

| Verdi      | Beskrivelse                       |
| ---------- | --------------------------------- |
| `UP`       | Monitoren kjører normalt       |
| `DOWN`     | Monitoren har feilet                |
| `DEGRADED` | Monitoren har problemer    |
| `UNKNOWN`  | Monitorens tilstand kan ikke fastslås |

## Hent monitorer

Du kan bruke dette endepunktet til å finne og bla gjennom en liste over alle eksisterende monitorer.

**Endepunkt:**

```bash
GET /:page_id/monitors
```

**Spørringsparametere**

| Parameter | Type     | Standardverdi | Beskrivelse                                            |
| --------- | -------- | ------------- | ------------------------------------------------------ |
| `page`    | `number` | `1`           | Sidenummeret som skal hentes.                              |
| `limit`   | `number` | `100`         | Antall monitorer per side.                       |
| `search`  | `string` | `null`        | Søkeord for å filtrere resultater.                     |
| `status`  | `enum`   | `null`        | Statusfilter _('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')_. |

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Opprett en monitor

**Endepunkt:**

```bash
POST /monitors
```

**Eksempelforespørsel**

```json
{
  "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
  }
}
```

**Eksempelsvar**

```json
{
  "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"
}
```

## Oppdater en monitor

**Endepunkt:**

```bash
PUT /monitors/:id
```

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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"
}
```

## Slett en monitor

**Endepunkt:**

```bash
DELETE /monitors/:id
```

**Eksempelforespørsel**

```bash
DELETE /monitors/monitor-id-1
```

**Eksempelsvar**

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

## Hent monitorlogger

**Endepunkt:**

```bash
GET /monitors/:id/logs
```

# Spørringsparametere

| Parameter              | Type                                    | Standardverdi   | Beskrivelse                                                                             |
| ---------------------- | --------------------------------------- | --------------- | --------------------------------------------------------------------------------------- |
| `limit`                | `number`                                | 100             | Antall elementer per side. Kan ikke overstige 1000.                                       |
| `page`                 | `number`                                | 1               | Sidenummeret som skal hentes.                                                            |
| `monitorId`            | `string`                                | -               | ID-en til monitoren.                                                                  |
| `location`             | `string`                                | `null`          | Monitorens lokasjon.                                                            |
| `createdAt`            | `string` \| `object` \| `number`        | `null`          | Opprettelsesdatoen. Kan være en streng, et tall eller et objekt med feltene `gte` og `lte`. |
| `isSuccessful`         | `boolean`                               | `null`          | Om sjekken var vellykket.                                                       |
| `isSSLCheck`           | `boolean`                               | `null`          | Om sjekken er en SSL-sjekk.                                                      |
| `httpStatusCode`       | `string`                                | `null`          | HTTP-statuskoden i svaret.                                                   |
| `status`               | `('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')` | `null`          | Statusen til monitoren.                                                              |
| `dnsTime`              | `string` \| `number` \| `object`        | `null`          | Tid brukt på DNS-oppslag.                                                          |
| `tcpTime`              | `string` \| `number` \| `object`        | `null`          | Tid brukt på TCP-tilkobling.                                                          |
| `tlsTime`              | `string` \| `number` \| `object`        | `null`          | Tid brukt på TLS-håndtrykk.                                                           |
| `firstByteTime`        | `string` \| `number` \| `object`        | `null`          | Tid brukt før første byte mottas.                                           |
| `downloadTime`         | `string` \| `number` \| `object`        | `null`          | Tid brukt på nedlastingen.                                                            |
| `responseTime`         | `string` \| `number` \| `object`        | `null`          | Total svartid.                                                                    |
| `performanceTime`      | `string` \| `number` \| `object`        | `null`          | Ytelsestid.                                                                       |
| `accessabilityScore`   | `string` \| `number` \| `object`        | `null`          | Tilgjengelighetspoeng.                                                                    |
| `seoScore`             | `string` \| `number` \| `object`        | `null`          | SEO-poeng.                                                                              |
| `bestPracticesScore`   | `string` \| `number` \| `object`        | `null`          | Poeng for beste praksis.                                                                   |
| `successfulAssertions` | `string` \| `number` \| `object`        | `null`          | Antall vellykkede påstander.                                                        |
| `sort`                 | `string`                                | kronologisk | Feltet det skal sorteres etter.                                                                       |

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Kjør monitorsjekk etter ID

**Endepunkt:**

```bash
GET /monitors/:id/run
```

**Spørringsparametere**

| Parameter      | Type                                                                              | Standardverdi | Beskrivelse                                                       |
| -------------- | --------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------------------- |
| `location`     | `'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'` | -             | Monitorens lokasjon. Må være en av de angitte verdiene. |
| `retry`        | `boolean`                                                                         | `false`       | Angir om operasjonen skal forsøkes på nytt. Valgfritt.      |
| `monitorLogId` | `string`                                                                          | `null`        | Den unike identifikatoren til monitorloggen. Valgfritt.               |

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Opprett monitorvarsel

**Endepunkt:**

```bash
POST /monitor-alerts
```

**Eksempelforespørsel**

```json
{
  "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"
}
```

**Eksempelsvar**

```json
{
  "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"
}
```

## Oppdater monitorvarsel

**Endepunkt:**

```bash
PUT /monitor-alerts/:id
```

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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."
}
```

## Hent monitorvarsler

**Endepunkt:**

```bash
GET /:page_id/monitor-alerts
```

**Spørringsparametere**

| Parameter | Type     | Standardverdi | Beskrivelse                   |
| --------- | -------- | ------------- | ----------------------------- |
| `limit`   | `number` | 100           | Antall elementer per side. |
| `page`    | `number` | 1             | Sidenummeret som skal hentes.  |

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Slett monitorvarsel

**Endepunkt:**

```bash
DELETE /monitor-alerts/:id
```

**Eksempelforespørsel**

```bash
DELETE /monitor-alerts/alert-id-1
```

**Eksempelsvar**

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

## Opprett monitorgruppe

**Endepunkt:**

```bash
POST /monitors-groups
```

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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."
}
```

## Oppdater monitorgruppe

**Endepunkt:**

```bash
PUT /monitors-groups/:id
```

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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."
}
```

## Slett monitorgruppe

**Endepunkt:**

```bash
DELETE /monitors-groups/:id
```

**Eksempelforespørsel**

```bash
DELETE /monitors-groups/group-id-1
```

**Eksempelsvar**

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

## Legg monitorer til i en gruppe

**Endepunkt:**

```bash
POST /monitors-groups/:id/monitors
```

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Kjør sjekk for monitorgruppe

**Endepunkt:**

```bash
GET /monitors-groups/:id/run
```

**Spørringsparametere**

| Parameter      | Type                                                                              | Standardverdi | Beskrivelse                                                       |
| -------------- | --------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------------------- |
| `location`     | `'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'` | -             | Monitorens lokasjon. Må være en av de angitte verdiene. |
| `retry`        | `boolean`                                                                         | `false`       | Angir om operasjonen skal forsøkes på nytt. Valgfritt.      |
| `monitorLogId` | `string`                                                                          | `null`        | Den unike identifikatoren til monitorloggen. Valgfritt.               |

**Eksempelforespørsel**

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

**Eksempelsvar**

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

## Cron-monitorer

Cron-monitorer følger planlagte jobber via HTTP-ping. For oppsett i produktet og bruk i dashbordet, se [Cron-overvåking](https://instatus.com/help/no/monitoring/cron).

### Mulige verdier for felt

**Status for cron-monitor**

| Verdi      | Beskrivelse                       |
| ---------- | --------------------------------- |
| `UP`       | Monitoren kjører normalt       |
| `DOWN`     | Monitoren har feilet                |
| `DEGRADED` | Monitoren har problemer    |
| `UNKNOWN`  | Monitorens tilstand kan ikke fastslås |

**Tilstand for cron-monitor**

| Verdi    | Beskrivelse                          |
| -------- | ------------------------------------ |
| `ACTIVE` | Monitoren sjekkes aktivt          |
| `PAUSED` | Monitorsjekkene er satt på pause            |
| `MUTED`  | Monitoren er dempet (ingen varslinger)  |

**Loggstatus for cron-monitor**

| Verdi     | Beskrivelse                                      |
| --------- | ------------------------------------------------ |
| `SUCCESS` | Jobben ble fullført                       |
| `FAILURE` | Jobben rapporterte eksplisitt en feil              |
| `MISSED`  | Jobben pinget ikke innenfor det forventede vinduet      |
| `LATE`    | Jobben pinget etter perioden, men innenfor fristen     |
| `STARTED` | Jobben meldte at den startet (kjøretidsmåling)  |

**Periode og frist**

Både `period` og `grace` angis i **sekunder**. `period` er hvor ofte jobben skal kjøre, mens `grace` er ekstra tid som tillates før monitoren markeres som nede.

### Hent cron-monitorer

**Endepunkt:**

```bash
GET /:page_id/monitors/cron
```

**Spørringsparametere**

| Parameter | Type     | Standardverdi | Beskrivelse                                            |
| --------- | -------- | ------------- | ------------------------------------------------------ |
| `limit`   | `number` | `100`         | Antall cron-monitorer per side. Maksimum er 100.  |
| `page`    | `number` | `1`           | Sidenummeret.                                       |
| `search`  | `string` | `null`        | Søkeord for å filtrere resultater etter navn.             |
| `status`  | `enum`   | `null`        | Statusfilter _('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')_. |

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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
}
```

### Opprett en cron-monitor

**Endepunkt:**

```bash
POST /monitors/cron
```

**Eksempelforespørsel**

```json
{
  "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
  }
}
```

**Eksempelsvar**

```json
{
  "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."
}
```

Svaret inneholder en `slug`. Bruk den til å bygge ping-URL-er for jobben din. Den første vellykkede pingen planlegger bakgrunnsjobben som sjekker.

### Oppdater en cron-monitor

**Endepunkt:**

```bash
PUT /monitors/cron/:id
```

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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."
}
```

### Slett en cron-monitor

**Endepunkt:**

```bash
DELETE /monitors/cron/:id
```

**Eksempelforespørsel**

```bash
DELETE /monitors/cron/cron-abc123
```

**Eksempelsvar**

```json
{
  "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."
}
```

### Hent logger for cron-monitor

**Endepunkt:**

```bash
GET /monitors/cron/:id/logs
```

**Spørringsparametere**

| Parameter    | Type     | Standardverdi | Beskrivelse                                              |
| ------------ | -------- | ------------- | -------------------------------------------------------- |
| `limit`      | `number` | `100`         | Antall logger per side. Maksimum er 127.             |
| `page`       | `number` | `1`           | Sidenummeret. Maksimum er 1000.                        |
| `startDate`  | `string` | 1 år siden    | ISO 8601-startdato for loggperioden.                   |
| `endDate`    | `string` | nå            | ISO 8601-sluttdato for loggperioden.                     |
| `importance` | `enum`   | `null`        | Filtrer logger etter viktighet _('all', 'important')_.        |

**Eksempelforespørsel**

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

**Eksempelsvar**

```json
{
  "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
}
```

### Hent sammendrag for cron-monitor

**Endepunkt:**

```bash
GET /monitors/cron/:id/summary
```

**Eksempelforespørsel**

```bash
GET /monitors/cron/cron-abc123/summary
```

**Eksempelsvar**

```json
{
  "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-endepunkter

Disse endepunktene krever **ikke** autentisering. Monitorens `slug` fungerer som hemmeligheten.

Du kan pinge via API-ets grunn-URL eller den dedikerte cron-verten:

- **Suksess:** `https://cron.instatus.com/{slug}` eller `GET` / `POST` / `HEAD` `/monitors/cron/{slug}`
- **Feil:** `https://cron.instatus.com/{slug}/fail` eller `GET` / `POST` / `HEAD` `/monitors/cron/{slug}/fail`
- **Start:** `https://cron.instatus.com/{slug}/start` eller `GET` / `POST` / `HEAD` `/monitors/cron/{slug}/start`

Send en ping ved suksess hver gang jobben din fullfører etter planen. Send en ping ved start før jobben kjører, og en ping ved suksess eller feil når den er ferdig, for å registrere kjøretiden.

**Eksempel på ping ved suksess**

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

**Eksempelsvar**

```json
{
  "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"
}
```

Hvis slug-en er ugyldig, er svaret:

```json
{
  "message": "Monitor not found"
}
```
