---
title: "List synthetics"
method: GET
path: "/api/{org_id}/synthetics"
tags: ["Synthetics"]
---

# List synthetics

`GET /api/{org_id}/synthetics`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/synthetics`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/synthetics/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required

## Query parameters

- `folder` string
- `type` string
- `enabled` boolean
- `location` string
- `tag` string
- `page` integer
- `page_size` integer

## Response `200`

Success

- SyntheticListResponse
  - `checks` SyntheticListItem[], required
    - `active_downtime` ActiveDowntime
      - `alert_groups` AlertGroupRef[], nullable
        - `alert_id` string, required
        - `group_key` string
        - `group_labels` object, nullable: Captured at mute time because `group_key` is a hash the UI cannot show.
      - `end_on_clear` EndOnClear: "Until it clears": `group_key` null ends the downtime when no group of the alert is firing.
        - `alert_id` string, required
        - `group_key` string, nullable
      - `ends_at` integer, required
      - `id` string, required
      - `incident_mode` 'muted' | 'none': What a suppressed alert firing does to incidents during the window.
      - `name` string, required
      - `source` 'slack' | 'openobserve' | 'api': Where a quick mute came from; the web app's own calls are `openobserve`.
      - `version` integer: The row's version, which an extend sends back; 0 from an older node.
    - `created_at` integer, required
    - `description` string, required
    - `enabled` boolean, required
    - `folder_id` string, required
    - `frequency` SyntheticFrequency, required
      - `cron` string
      - `interval` integer
      - `timezone` string, nullable: IANA timezone name (e.g. "America/New_York"). Used for cron scheduling and display.
      - `type` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'cron'
    - `id` string, required
    - `last_check_at` integer, nullable
    - `last_response_ms` number, double, nullable
    - `last_triggered_at` integer, required
    - `locations` string[], required
    - `name` string, required
    - `org_id` string, required
    - `reference_state` 'ok' | 'missing' | 'nested': Whether a parent's subtest references can run as stored.
    - `referenced_by` integer, required: How many checks embed this one as a subtest.
    - `references` integer, nullable: Subtest steps this browser check holds; None for protocol checks.
    - `status` 'passed' | 'warning' | 'failed' | 'unknown' | 'error', required
    - `steps` integer, nullable: Executed (expanded) steps, browser only: what bills and draws down the pool (§5.11).
    - `tags` string[], required
    - `target` string, required
    - `type` 'http' | 'tcp' | 'tls' | 'ssh' | 'browser', required
    - `updated_at` integer, required
  - `total` integer, required

## Other responses

- `500`: Error

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
