{"rid":"inference/opencode-zen-free","card":{"rid":"inference/opencode-zen-free","eid":"opencode","topic":"inference","slug":"opencode-zen-free","provider":"OpenCode Zen free models","url":"https://opencode.ai/zen/v1","domain":"opencode.ai","category":"inference endpoint, access-gated","tier":null,"verdict":"fails-identity","vorder":4,"grp":"rejected","confidence":"measured","binding":"none","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T03:15:33.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"the Zen pricing table lists 14 model ids at Free for input, output and cached read, each marked Free or limited time","duplicate_of":null,"n_unknown":5},"record":{"topic":"inference","per_object_cap":{"stated":"not applicable: an inference endpoint stores nothing for the caller"},"retention":{"stated":"not applicable"},"egress":{"terms":"the response is the payload; no separate egress term is published","metered":false},"interface":["rest"],"tooling":"any OpenAI-compatible client; curl against POST {base}/chat/completions","chaining":"no chain exists for a script: the free tier answers only inside the OpenCode client, so the client is the scarce link and it cannot be substituted","limits":[],"slug":"opencode-zen-free","provider":"OpenCode Zen free models","url":"https://opencode.ai/zen/v1","category":"inference endpoint, access-gated","free_tier":{"stated":"the Zen pricing table lists 14 model ids at Free for input, output and cached read, each marked Free or limited time","unit":"unlimited","metered_on":"request-count","source_url":"https://opencode.ai/docs/zen","read_on":"2026-10-22","notes":"'Free' in the price column is not 'reachable': the free tier is restricted to the OpenCode client"},"endpoint":"https://opencode.ai/zen/v1/chat/completions","identity_cost":{"kind":"email","detail":"an OpenCode account, and the request must originate from the OpenCode client. The 403 body names the restriction: 'OpenCode's free tier can only be used from within OpenCode'","country":null},"reliability_note":"the restriction is enforced on the request path, not the account, so no header or key makes an external call succeed","confidence":"measured","confidence_note":"four calls across two sessions with two User-Agents. The 403 is a named policy gate and not an outage, and the body says so.","probe":{"records":[{"probe_id":"opencode-spacebunny","requested_model":"space-bunny-free","http_run1":403,"http_run2":400,"answered_run1":"no","answered_run2":"no","model_echoed":"","echo_match":"yes","latency_ms_run1":860,"latency_ms_run2":1066,"ttft_ms_run1":"","completion_tokens_run1":0,"tps_run1":"","tps_run2":"","tps_basis":null,"needle_echoed_run1":"no","body_bytes_run1":701,"body_sha256_16_run1":"f45bbd157c6d06d8","reasoning_only":"no","error_run1":"{\"type\":\"https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1010/\",\"title\":\"Error 1010: Access denied\",\"status\":403,\"detail\":\"The site owner has b","error_run2":"{\"type\": \"server_error\", \"message\": \"Upstream request failed: Model is unavailable.\"}"},{"probe_id":"opencode-longcat","requested_model":"longcat-2.5-preview-free","http_run1":403,"http_run2":403,"answered_run1":"no","answered_run2":"no","model_echoed":"","echo_match":"yes","latency_ms_run1":799,"latency_ms_run2":811,"ttft_ms_run1":"","completion_tokens_run1":0,"tps_run1":"","tps_run2":"","tps_basis":null,"needle_echoed_run1":"no","body_bytes_run1":701,"body_sha256_16_run1":"615fa2152362733d","reasoning_only":"no","error_run1":"{\"type\":\"https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1010/\",\"title\":\"Error 1010: Access denied\",\"status\":403,\"detail\":\"The site owner has b","error_run2":"{\"type\": \"FreeTierError\", \"message\": \"OpenCode's free tier can only be used from within OpenCode. Download it at https://opencode.ai and keep building.\"}"}],"runs":["probes-w.json","probes-w-run2.json"]},"evidence":[{"url":"probe:https://opencode.ai/zen/v1/chat/completions","date":"2026-10-22","proved":"longcat-2.5-preview-free returned 403 FreeTierError 'OpenCode's free tier can only be used from within OpenCode' in both runs, and with both a curl and a Python User-Agent"},{"url":"probe:https://opencode.ai/zen/v1/chat/completions","date":"2026-10-22","proved":null},{"url":"https://opencode.ai/docs/zen","date":"2026-10-22","proved":"14 model ids priced Free for input, output and cached read, including Big Pickle, GLM-5.3-Flash Free, DeepSeek V4.1 Flash Free and LongCat 2.5 Preview Free"}],"verdict":"fails-identity","verified_at":"2026-10-22T03:15:33.000Z","notes":null,"binding":"none","limits_note":"no rate or quota binds: the gate is access, not allowance"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.evidence[1].proved","withheld"],["$.notes","withheld"],["$.probe.records[0].tps_basis","process"],["$.probe.records[1].tps_basis","process"],["$.retention.stated","not-applicable"]],"history":[{"hid":"history/2026-10-22T032432Z/free-inference-endpoint-half-life.md","when":"2026-10-22T03:24:32Z","status":"observed","title":"The free inference endpoint measured on 2026-10-02 was already dead by 2026-10-22, and four more changed state inside one session"}],"drift":[]}