---
title: "Whether a page would reach each member of a team"
method: GET
path: "/api/{org_id}/oncall/teams/{team_id}/reachability"
tags: ["OnCall"]
---

# Whether a page would reach each member of a team

`GET /api/{org_id}/oncall/teams/{team_id}/reachability`

## 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}/oncall/teams/{team_id}/reachability`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/oncall/teams/:team_id/reachability/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required
- `team_id` string, required

## Response `200`

Success

- TeamReachability: The team-level roll-up: "5 of 6 team members".
  - `members` MemberReachability[], required
    - `channels` ChannelReadiness[], required: Every channel, with its verdict. The UI's row of chips.
      - `blocked_because` string, nullable: Why not, when not — a sentence, not a code.
      - `channel` 'email' | 'webhook' | 'sms' | 'voice' | 'slack', required: How a page reaches a person.
      - `configured_but_unverified` boolean, required: The person has supplied this method but nobody has proved it reaches them, so no transport may use it. Distinct from "not configured": the person believes they are reachable this way.
      - `deliverable` boolean, required: A page raised now would be handed to a transport that can carry it.
    - `configured_but_unverified` string[], required: Methods on file that no transport may use — `phone`, `push`.
    - `deliverable_channels` Channel[], required: Channels that could carry a page to this person today.
    - `is_org_user` boolean, required: The address resolves to a user of this organization. When false, nothing else can be true: there is no inbox, no login, and no way for this person to acknowledge anything.
    - `mailbox_shaped` boolean, required: The address is shaped like a mailbox. `root@example` and `admin` are both perfectly valid OpenObserve logins and neither can receive mail.
    - `user_email` string, required
    - `why_not` string, nullable: Why a page would not land. `None` when it would.
    - `would_a_page_land` boolean, required: The one boolean the badge renders. True iff at least one channel could deliver.
  - `reachable` integer, required
  - `smtp_configured` boolean, required: Whether this deployment has an SMTP transport and a valid From address. One false here explains every unreachable row below it, and a team screen that did not say so would read as "our people are misconfigured".
  - `team_id` string, required
  - `team_name` string, required
  - `total` integer, required
  - `unreachable_members` string[], required: The people a page would be silently dropped for, named. The sentence the UI puts under the count.

## Other responses

- `404`: Not found

---

[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)
