import type { Metadata } from "next"; import Link from "next/link"; import { Check, KeyRound, LogIn, Mail } from "lucide-react"; import { PLAN_LIMITS } from "@fetcha/core"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { formatNumber } from "@/lib/format"; export const metadata: Metadata = { title: "Access", description: "Fetcha is a private, invitation-only web access platform. One plan, no meters: unlimited requests, 200 concurrent, all network classes, managed browser and crawl jobs.", alternates: { canonical: "/pricing" }, }; const REQUEST_ACCESS = "mailto:hello@fetcha.co?subject=Fetcha%20access"; function seconds(ms: number) { return `${ms / 1000} s`; } export default function AccessPage() { const p = PLAN_LIMITS.unlimited; const networks = p.networks.map((n) => n[0]!.toUpperCase() + n.slice(1)).join(", "); const included: Array<{ label: string; value: string; hint: string }> = [ { label: "Requests", value: "Unlimited", hint: "No monthly quota, no overage, no request fee." }, { label: "Concurrency", value: formatNumber(p.concurrency), hint: "Requests in flight at once, per organization." }, { label: "Timeout", value: `up to ${seconds(p.max_timeout_ms)}`, hint: "One budget for the whole request, retries included." }, { label: "Retries", value: `up to ${p.max_retries}`, hint: "New exit IP and alternate route on every attempt." }, { label: "Network classes", value: "All", hint: networks + ", chosen automatically or pinned per request." }, { label: "Managed browser", value: `${p.browser_concurrency} concurrent`, hint: "Real Chromium, same networks, automatic fallback on JS challenges." }, { label: "Crawl jobs", value: `${formatNumber(p.crawl_max_pages)} pages / job`, hint: `${p.crawl_concurrent_jobs} jobs in parallel, sitemap discovery, Markdown output.` }, { label: "Sessions and geo", value: "Included", hint: "Sticky sessions up to 30 minutes; country, region and city targeting." }, { label: "Request logs", value: `${p.retention_days} days`, hint: "Every attempt, route alias, timing and cost, in the dashboard and the API." }, ]; const features = ["POST /v1/fetch with HTML, text, Markdown, JSON or raw output", "Managed headless browser with screenshots and wait conditions", "Crawl and map endpoints for whole sites", "Sticky sessions and geo targeting", "Playground, request explorer and usage analytics", "JavaScript and Python SDKs", "Optional spending limits as guard-rails"]; return (
Access
Fetcha is an invitation-only platform. There is a single, unlimited plan for everyone who is let in, and there is nothing to buy: no tiers, no quotas, no invoices. Accounts are created from an access list managed by a Fetcha administrator.
Already invited? Sign up with the email address your administrator approved.
The only plan. Same limits for every organization, enforced by the API from the configuration below.
No feature is gated behind a tier. When a capability ships, every account gets it the same day.
{s.body}
Questions? Write to support@fetcha.co.
Log in with the address your administrator approved, or ask us for access.
Private platform. No plans, no meters, no billing.