---
title: "Cloud Monitoring / Billing → Slack"
method: POST
path: "/api/hooks/monitoring"
tags: ["ops"]
---

# Cloud Monitoring / Billing → Slack

`POST /api/hooks/monitoring`

## Request

- Base URL: `https://api.wizbi.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.wizbi.ai/api/hooks/monitoring`
- Auth: `oidc` (a scheme the document does not define)

Pub/Sub push endpoint. Verifies the Google OIDC token of the push subscription, decodes the Monitoring incident or Billing budget payload, and posts to the matching #core-* channel.

## Request body

- PubSubPush
  - `message` object, required
    - `data` string
    - `messageId` string
    - `publishTime` string
    - `attributes` object
  - `subscription` string

## Response `200`

Routed.

- MonitoringHookResult
  - `routed` string, required
  - `channel` string, required
  - `kind` string, required

## Other responses

- `401`: Missing or invalid OIDC token.
- `403`: Token is valid but not the push identity.
- `502`: Slack refused the message; Pub/Sub will retry.
- `503`: Hook disabled (MONITORING_PUSH_SA unset).

---

[API](https://skmtc.dev/wizbi/apis/wizbi-core-api.md) · [All operations](https://skmtc.dev/wizbi/apis/wizbi-core-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wizbi/apis/wizbi-core-api/revisions/5a47416c82ec?raw)
