Public API
Everything public on the board is available as JSON — free, read-only, no key required.
Responses are CORS-open (Access-Control-Allow-Origin: *), cached for a few
minutes, and versioned under /api/v1 so they won't break under you. Please cache
on your side too and identify your app with a User-Agent.
GET /api/v1/products
List and search products.
q— Full-text search (FTS5, prefix-matched, relevance-ranked).sort— upvoted (default) · newest · trending · updated · stack · pricing · feedbackcategory— Category slug (see /categories pages).stack— Filter by tool/stack substring, e.g. "cursor".pricing— Free · Freemium · Paid · Open Source.limit— Max results, up to 100 (default 50).
Example: https://vibecodedstartup.com/api/v1/products?q=invoicing&sort=upvoted&limit=5
GET /api/v1/products/[slug]
One product, including its changelog entries.
Example: https://vibecodedstartup.com/api/v1/products/aperture
GET /api/v1/weeks/[year]/[week]
A week's ranked launch board.
GET /api/v1/makers
The maker leaderboard.
period— all (default) · monthlimit— Max results, up to 100 (default 50).
Example: https://vibecodedstartup.com/api/v1/makers?period=month
Response shape
Every endpoint returns { ok, meta?, data }. Products include slug, name,
tagline, description, category, tags, maker, stack, pricing, votes, comments, rank, week/year,
canonical url, liveUrl, an embeddable badgeUrl, and an
ISO createdAt. Errors return { ok: false, error } with a matching
HTTP status.
Other machine-readable feeds
RSS: /rss.xml (per category:
/rss/[category].xml) · Sitemap: /sitemap.xml ·
LLM overview: /llms.txt · Weekly recap image:
/og/week/[year]/[week].png · Launch badges: /badge/[slug].svg.