# Forest Infra - Repository State Change Detector

> Forest Infra - Repository State Change Detector is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-02).

Detects material changes to a public GitHub repository by comparing a deterministic hash of existence, branch, and archive state against a previous hash.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/repo/changed?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-infra-repository-state-change-detector-c7ddc0a6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tS0S3D-mKDqTIAlP6T9Gq

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 forest-infra-repository-state-change-detector-c7ddc0a6 -d '<json body>'
```

Example prompt: Has the GitHub repo openai/tiktoken changed materially since my last check? Here's the previous hash from yesterday: abc123def456 — let me know if existence, branches, or archive state have shifted.

## When to prefer this

Use this endpoint when you need a cheap, noise-free signal that a public GitHub repository has changed in a meaningful way — specifically when you want to ignore timestamp churn and metadata drift. Prefer this over scraping GitHub directly or polling the full GitHub API when cost and determinism matter. Ideal for agent pipelines that periodically poll many repos and only want to act when something structurally significant (archival, deletion, branch changes) has occurred.

## Known failure modes

- Repository not found or private — endpoint cannot inspect private repositories
- Invalid repository format (must be owner/name pattern) returns validation error
- Network or upstream GitHub API unavailability causes transient failure
- Malformed previous_hash string may result in mismatch being flagged as a change
- Rate limiting or payment failure returns 402 or error response

## How this service works

Cheaply detect material public repository state changes with a deterministic hash of existence, branch and archive state. Timestamps and unrelated metadata do not trigger a change. Base mainnet USDC

## Output

Returns a current deterministic hash of the repository's material state (existence, branch list, archive status) and a boolean or signal indicating whether this hash differs from the provided previous_hash. Timestamps and unrelated metadata are excluded from the hash so only functionally significant changes trigger a positive result.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "repository": {
   "type": "string",
   "pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$",
   "maxLength": 200,
   "description": "Public owner/name repository to inspect."
  },
  "previous_hash": {
   "type": "string",
   "description": "Earlier result hash used to detect a material change."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-infra-repository-state-change-detector-c7ddc0a6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run](https://www.zero.xyz/host/http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/llms.txt)
