# HubVibe BigQuery Anomaly Detection

> HubVibe BigQuery Anomaly Detection is a paid API for AI agents from hubvibe-io.com, paid per call via x402, $10/call, status unknown (last checked 2026-10-02).

Detects anomalies in a BigQuery time series table by comparing it against a history table using Google's AI.DETECT_ANOMALIES (TimesFM) model.

## Facts

- Endpoint: POST https://hubvibe-io.com/work/data/anomalies?utm_source=zero.xyz
- Price: $10/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hubvibe-bigquery-anomaly-detection-68b58f94
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fZ8TYnKKVVasjeR9UCZbB

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability hubvibe-bigquery-anomaly-detection-68b58f94 -d '<json body>'
```

Example prompt: Check my BigQuery table `myproject.analytics.recent_traffic` for anomalies by comparing it to `myproject.analytics.historical_traffic`, using `event_timestamp` as the timestamp column, `page_views` as the value column, and flag anything with an anomaly probability above 0.97.

## When to prefer this

Choose this endpoint when you have time series data already stored in BigQuery and want to leverage Google's pretrained TimesFM model for anomaly detection without building your own ML pipeline. It is ideal when you have a clear historical baseline table and a recent target table with matching schema. Prefer this over generic anomaly detection APIs when your data volume justifies BigQuery-scale processing and you want probabilistic anomaly scores with configurable thresholds.

## Known failure modes

- Invalid or inaccessible BigQuery table reference (project.dataset.table format required)
- Mismatched timestamp or value column names between target and history tables
- Anomaly probability threshold outside 0.5–0.999 range
- max_scan_gib exceeded causing query abort
- Tables with insufficient historical data for TimesFM to produce reliable anomaly scores
- Payment failure or insufficient USDC balance ($10 per call)

## How this service works

Anomaly detection on a time series: score recent periods against history with BigQuery AI.DETECT_ANOMALIES (TimesFM). Give one table and its latest periods are scored against its own history, or a history and a target table. Returns every checked row with bounds, anomaly flag and probability, plus the anomaly count. Input: history_table, target_table, timestamp_col, data_col; optional target_last, threshold, id_cols.

## Output

Returns rows from the target table that are flagged as anomalous, along with their anomaly probability scores as computed by Google's TimesFM model via BigQuery AI.DETECT_ANOMALIES. Results may be segmented per series if ID columns are specified.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "id_cols": {
   "type": "array",
   "items": {
    "type": "string"
   }
  },
  "data_col": {
   "type": "string"
  },
  "language": {
   "type": "string",
   "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
   "maxLength": 35
  },
  "target_last": {
   "type": "integer",
   "maximum": 366,
   "minimum": 1
  },
  "max_scan_gib": {
   "type": "number"
  },
  "target_table": {
   "type": "string"
  },
  "history_table": {
   "type": "string"
  },
  "timestamp_col": {
   "type": "string"
  },
  "anomaly_prob_threshold": {
   "type": "number"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "result": {
   "mode": "split_by_time",
   "rows": [
    {
     "date": "2023-03-20",
     "is_anomaly": "false",
     "state_name": "Texas",
     "confirmed_cases": "8631000",
     "anomaly_probability": "0.12"
    }
   ],
   "columns": [
    "state_name",
    "date",
    "confirmed_cases",
    "is_anomaly",
    "lower_bound",
    "upper_bound",
    "anomaly_probability"
   ],
   "data_col": "confirmed_cases",
   "row_count": 10,
   "target_table": "bigquery-public-data.covid19_nyt.us_states",
   "anomaly_count": 2,
   "gib_processed": 0.012,
   "history_table": "bigquery-public-data.covid19_nyt.us_states",
   "timestamp_col": "date",
   "target_periods": 30,
   "anomaly_prob_threshold": 0.95
  },
  "status": "ok",
  "worker": "data.anomalies",
  "price_usd": 10,
  "provenance": {
   "steps": [
    {
     "ms": 312,
     "ok": true,
     "step": "quote",
     "reason": "provider_timeout",
     "provider": "coinbase-advanced-trade-public"
    }
   ],
   "attempts": 1,
   "elapsed_ms": 340,
   "providers_used": [
    "coinbase-advanced-trade-public"
   ]
  },
  "receipt_id": "rcpt_9f1c2b3a4d5e6f70",
  "attribution": [
   {
    "url": "https://translate.google.com",
    "text": "Translated by Google"
   }
  ],
  "receipt_url": "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hubvibe-bigquery-anomaly-detection-68b58f94/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hubvibe-io.com](https://www.zero.xyz/host/hubvibe-io.com/llms.txt)
