# Forest Factory API – Deploy Readiness Check

> Forest Factory API – Deploy Readiness Check is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.006/call, status unknown (last checked 2026-10-20).

Checks whether a given hostname/URL is ready for deployment by inspecting its DNS propagation, TLS certificate, and HTTP reachability status.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/deploy/readiness?utm_source=zero.xyz
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-factory-api-deploy-readiness-check-b8ced18e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_TQ7tDRuT_Tm8KHuOzCxef

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-factory-api-deploy-readiness-check-b8ced18e -d '<json body>'
```

Example prompt: Check if api.myapp.com is ready to deploy — verify its A record resolves to 203.0.113.42, confirm TLS and HTTP are healthy, and let me know if there are any blockers or propagation issues.

## When to prefer this

Use this endpoint when you need a single bounded, observable check of a hostname's deployment readiness covering DNS propagation, TLS validity, and HTTP reachability together — especially when you want change detection against a known previous DNS state. Prefer this over generic DNS lookup tools when you need all three signals (DNS + TLS + HTTP) in one call with structured blocker/warning output suitable for automated deployment gates.

## Known failure modes

- Invalid or unreachable URL/hostname returns an error or non-ready state
- DNS propagation not yet complete returns blockers or warnings in the response
- TLS certificate invalid or expired surfaces in the tls check sub-object
- previous_dns_hash mismatch triggers a dns_changed flag
- Malformed input (invalid pattern for hostname or hash) returns HTTP 400
- Missing payment signature returns HTTP 402 with x402 challenge

## How this service works

Machine-readable contract for active Forest paid capabilities. Unsigned paid calls return HTTP 402 with a PAYMENT-REQUIRED x402 challenge.

## Output

Returns a JSON object with a readiness state ('ready' or blocked), detailed sub-checks for TLS, HTTP, DNS change detection, and DNS propagation, a list of blockers and warnings, the hostname and record type checked, cache status (hit/miss), the DNS provider used (e.g. cloudflare-doh), and the timestamp and duration of the check.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "pattern": "^https?://",
   "maxLength": 2048,
   "description": "Public HTTP(S) URL to inspect, resolve, or compare."
  },
  "hostname": {
   "type": "string",
   "pattern": "^[a-zA-Z0-9.-]+$",
   "maxLength": 253,
   "description": "Public hostname value used to scope this lookup."
  },
  "record_type": {
   "enum": [
    "A",
    "AAAA",
    "CNAME"
   ],
   "description": "Public record type value used to scope this lookup."
  },
  "expected_answers": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 512,
    "minLength": 1
   },
   "maxItems": 32,
   "minItems": 1,
   "description": "Public expected answers value used to scope this lookup."
  },
  "previous_dns_hash": {
   "type": "string",
   "pattern": "^sha256:[a-fA-F0-9]{64}$",
   "description": "Public previous dns hash value used to scope this lookup."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "data": {
   "url": "example",
   "scope": "bounded_dns_tls_http_observation_only",
   "state": "ready",
   "checks": {
    "tls": {},
    "http": {},
    "dns_changed": {},
    "dns_propagation": {}
   },
   "blockers": [],
   "hostname": "example",
   "warnings": [],
   "record_type": "example"
  },
  "meta": {
   "cache": "miss",
   "provider": "cloudflare-doh",
   "checked_at": "2026-01-01T00:00:00.000Z",
   "duration_ms": 0
  },
  "version": "1",
  "capability": "deploy.readiness"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-factory-api-deploy-readiness-check-b8ced18e/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)
