pydo.tools.list_health()

Generated on 1 Oct 2026 from pydo version v0.43.0

Usage

client.tools.list_health(
    provider=None,
    window="HEALTH_WINDOW_TWENTY_FOUR_HOURS",
    page=1,
    per_page=20,
)
Returns JSONRaises HttpResponseError

Description

Returns availability and latency for each catalog tool over the requested window, sorted by provider and then tool slug. A tool with no calls in the window is listed with data_status HEALTH_DATA_STATUS_NO_DATA. Metrics are aggregated across all customers; request volumes are not reported. Tools of your team’s MCP servers are not included. Offset-paged with page and per_page.

Parameters

provider string optional

Optional provider ID, matched exactly, to return only that provider's tools.

window string optional

Window to aggregate over. Defaults to twenty-four hours.

- HEALTH_WINDOW_UNSPECIFIED: Twenty-four hours.
- HEALTH_WINDOW_ONE_HOUR: One hour; history points are 10 minutes.
- HEALTH_WINDOW_TWENTY_FOUR_HOURS: Twenty-four hours; history points are 1 hour.
- HEALTH_WINDOW_SEVEN_DAYS: Seven days; history points are 6 hours.
- HEALTH_WINDOW_THIRTY_DAYS: Thirty days; history points are 24 hours.

One of: HEALTH_WINDOW_ONE_HOUR, HEALTH_WINDOW_TWENTY_FOUR_HOURS, HEALTH_WINDOW_SEVEN_DAYS, HEALTH_WINDOW_THIRTY_DAYS

Default: HEALTH_WINDOW_TWENTY_FOUR_HOURS

page integer optional

1-based page number. Values below 1 are treated as 1.

Min: 1

Default: 1

per_page integer optional

Page size. Defaults to 20; values above 100 are capped at 100.

Min: 1

Max: 100

Default: 20

Pagination

This method returns paginated results. The response includes a links.pages object with URLs for navigating between pages. To retrieve the next page, parse the next URL and pass the page parameter:

from urllib.parse import urlparse, parse_qs

resp = client.tools.list_health()
pages = resp.get("links", {}).get("pages", {})

while "next" in pages:
    parsed = urlparse(pages["next"])
    page = int(parse_qs(parsed.query)["page"][0])
    resp = client.tools.list_health(page=page)
    pages = resp.get("links", {}).get("pages", {})

Response Example

Show Response Example
{
  "snapshot": {
    "measured_at": "2026-09-24T12:00:00Z",
    "window": "86400s",
    "stale": false
  },
  "tools": [
    {
      "tool_slug": "exa_web_search",
      "provider": "exa",
      "health": {
        "data_status": "HEALTH_DATA_STATUS_AVAILABLE",
        "uptime_percentage": 99.82,
        "latency_p50_ms": 412.5,
        "latency_p95_ms": 1180
      }
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 1
  }
}

More Information

See /v2/action-gateway/tools/health in the API reference for additional detail on responses, headers, parameters, and more.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.