{"uid":"cap_TQ7tDRuT_Tm8KHuOzCxef","slug":"forest-factory-api-deploy-readiness-check-b8ced18e","name":"Forest Factory API – Deploy Readiness Check","description":"Machine-readable contract for active Forest paid capabilities. Unsigned paid calls return HTTP 402 with a PAYMENT-REQUIRED x402 challenge.","url":"https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/deploy/readiness?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"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."}}},"responseSchema":{"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"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.006","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.006/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_qOhMmqQNnrE9nKLAep099","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.006","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Checks whether a given hostname/URL is ready for deployment by inspecting its DNS propagation, TLS certificate, and HTTP reachability status.","exampleAgentPrompt":"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.","exampleUseCases":[{"title":"Pre-deployment DNS propagation check","prompt":"Before I go live, can you check whether myapp.example.com has fully propagated its A record to 198.51.100.10 and confirm there are no TLS or HTTP issues blocking deployment?"},{"title":"Detect DNS change after migration","prompt":"I recently migrated my DNS. Check if the CNAME record for www.mybrand.com has changed from its previous state — use the sha256 hash sha256:a3f1c2d4e5b6a7f8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2 to compare — and tell me if propagation looks stable."},{"title":"Validate TLS and HTTP readiness before launch","prompt":"Can you verify that https://shop.mystore.io is fully reachable over HTTPS, its TLS cert is valid, and DNS is resolving correctly? I want to confirm there are no warnings or blockers before I flip the switch."}],"resultDescription":"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.","failureModes":["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"],"whenToPreferThis":"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.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-20T12:32:57.017Z","isFirstParty":false,"canonicalSlug":"forest-factory-api-deploy-readiness-check-b8ced18e"}