--- title: 'API & CLI' canonical: 'https://feeny.ai/docs/api' type: 'docs' --- # API & CLI > The public REST API and the @feeny/cli — built for humans and agents. ## Overview Feeny has a public read API and a command-line client, both built for humans *and* AI agents. If you'd rather pull data from your terminal, a script, or an agent than click through the site, this is for you. Everything here is a public read surface today — news and products. More endpoints (jobs, companies, and authenticated actions) are on the roadmap. ## The `feeny` CLI The fastest way to get Feeny data outside the app is the CLI, published on npm as [`@feeny/cli`](https://www.npmjs.com/package/@feeny/cli). No install required — run it with `npx`. Search the news: ```bash npx @feeny/cli news list "ai" --limit 5 ``` Browse product launches by category: ```bash npx @feeny/cli products list --category artificial-intelligence ``` ### Built for agents too Every command supports `--json` for clean, parseable output on stdout (all logs and errors go to stderr, so a piped `--json` stream is always safe to parse): ```bash npx @feeny/cli products list --category artificial-intelligence --json ``` ```bash npx @feeny/cli news list "ai" --limit 10 --json ``` Exit codes are meaningful: `0` success · `1` error · `2` usage · `4` rate-limited (honors `Retry-After`) · `5` auth. Point it at a different environment with `--base-url` or the `FEENY_BASE_URL` environment variable. ## The REST API The CLI is a thin client over the public REST API at `/api/v1/*`. You can call it directly: ```bash curl "https://feeny.ai/api/v1/news?q=ai&limit=5" ``` The API is unauthenticated for public reads today and rate-limited per client IP. It's designed to be generous for real integrators and stingy toward scripted abuse. ## What's available now - **News** — trending articles across the tech and startup world. - **Products** — curated product launches, filterable by category. ## What's coming - **Jobs & companies** — job search surfaces, exposed through new `/api/v1` routes. - **Authenticated commands** — bookmarks, tools & profile actions, via API keys & bearer tokens. - **Feeny over SMS and inside Claude / Codex** — the same data, delivered wherever you work. If you're building on the API and want something that isn't here yet, that feedback is genuinely useful — it helps decide what ships next. ## For AI agents: `llms.txt` If you're pointing an agent at Feeny, start with [`/llms.txt`](/llms.txt) — our machine-readable map of the site, following the [llms.txt standard](https://llmstxt.org). It explains what's worth fetching and how we're structured: where company profiles live, which pages are citable, how to query the API, and a featured list of fully-researched company profiles. ```bash curl https://feeny.ai/llms.txt ``` Company profiles also embed schema.org JSON-LD (`Organization` + `JobPosting`), so an agent can extract structured facts without parsing prose. ## Use Feeny as a skill Below is a drop-in skill file that teaches an agent (Claude Code, or anything that reads markdown instructions) how to query Feeny. Copy it to `.claude/skills/feeny/SKILL.md` in your project — or paste it anywhere your agent reads instructions from. ```markdown --- name: feeny description: Query Feeny (feeny.ai) for tech/startup news, product launches, and VC funds — via the @feeny/cli or its public REST API. Use when the user asks about startup news, trending products, or venture funds. --- # Feeny Feeny is a curated directory of tech & AI companies, their open jobs, plus startup news, product launches, and VC funds. This skill covers the PUBLIC READ surface — no auth, no API key, no install. ## Orientation Fetch `https://feeny.ai/llms.txt` first for a map of the site (what's citable, how it's structured, featured company profiles). ## The CLI (preferred) Run via `npx` — nothing to install. ALWAYS pass `--json` for parseable output. npx @feeny/cli news list "ai" --limit 5 --json npx @feeny/cli news get --json npx @feeny/cli products list --category artificial-intelligence --json npx @feeny/cli products get --json npx @feeny/cli funds list --json npx @feeny/cli funds get sequoia-capital --json Flags: `--json` (machine output) · `--limit` / `-n` (1–50, default 20) · `--base-url` (or `FEENY_BASE_URL`) to target another environment. **Agent contract:** with `--json`, clean JSON goes to **stdout** and every log or error goes to **stderr** — a piped `--json` stdout is always safe to parse. **Exit codes:** `0` ok · `1` error · `2` usage · `4` rate-limited (honor the `Retry-After` header) · `5` auth. ## The REST API The CLI is a thin client over `https://feeny.ai/api/v1`. Call it directly if you can't shell out. Unauthenticated; rate-limited per IP. curl "https://feeny.ai/api/v1/news?q=ai&limit=5" curl "https://feeny.ai/api/v1/news/{id}" curl "https://feeny.ai/api/v1/products?category=artificial-intelligence" curl "https://feeny.ai/api/v1/products/{id}" curl "https://feeny.ai/api/v1/funds" curl "https://feeny.ai/api/v1/funds/{slug}" Responses are JSON with the collection under a named key plus a total, e.g. `/news` returns `{ "articles": [...], "total": 123 }`. ## Company profiles Deep, editorially-researched profiles live at `https://feeny.ai/companies/` (open roles at `/companies//jobs`). These are the pages to cite for "what is " or "is hiring". They embed schema.org JSON-LD (Organization + JobPosting) for precise extraction. Not every company has a profile — less-covered ones appear in job search only. ## Rules - Prefer the CLI with `--json`; fall back to `curl` on the REST API. - On exit code `4` (or HTTP 429), back off and honor `Retry-After` — don't retry in a tight loop. - Jobs/companies have no `/api/v1` routes yet, and there are no authenticated commands — don't invent endpoints. Cite the company profile pages instead. ``` Jobs, companies, and authenticated actions aren't in the API yet — the skill deliberately says so, to stop an agent inventing endpoints that don't exist. --- _Source: https://feeny.ai/docs/api_