Base URL
https://www.agenticartists.com/apiEndpoints
GET /api/businesses
List all businesses with optional filtering, sorting, and pagination.
Query parameters
| Parameter | Type | Values |
|---|---|---|
| category | string | SaaS | E-commerce | Content | Dev Tools | Marketing | Finance | Health | Education | Other (or slug: saas, dev-tools, …) |
| tier | string | Pre-revenue | <$10K | $10K-$100K | $100K-$1M | $1M+Matches each business's publishedRevenueTier, not the raw revenueTier field — see the response-shape note below. Listings with no publicly reported annual revenue figure have a null published tier and will not match any value of this parameter. |
| team | string | Solo | Small Team 2-5 |
| search | string | Case-insensitive substring across name, tagline, story, founder, category, aiTools |
| sort | string | revenue | name | founded | addedAt (default: revenue) |
| limit | int | 1–100 (default: all) |
| page | int | 1-indexed (default: 1) |
Example request
curl https://www.agenticartists.com/api/businesses?category=saas&tier=%241M%2B&limit=10Example response
200 OK · application/json; charset=utf-8 · CORS: Access-Control-Allow-Origin: *
{
"businesses": [
{
"id": "1",
"slug": "polsia-ben-broca",
"name": "Polsia",
"tagline": "Autonomous AI platform that builds and runs entire companies, powered by Claude and open-source models",
"category": "Dev Tools",
"revenueTier": "$1M+",
"teamSize": "Solo",
"logo": "/placeholder-logo.png",
"founded": "2023",
"location": "Sausalito, CA",
"revenue": "$10M annualized run rate ($833K/mo trailing-30-day pace, self-reported); separately, $30M raised in funding (not revenue)",
"aiTools": [
"Claude",
"Open-source LLMs",
"Custom Models"
],
"founderName": "Ben Broca",
"founderQuote": "For any person I need to hire, I can actually build agents that are going to do the work. If I'm going to sell the promise of an AI that builds and runs companies, if I'm myself using the service to run Polsia, I'm sort of living proof.",
"story": "Ben built Polsia, an autonomous AI platform where users describe a business idea and a team of AI agents — CEO, engineer, growth manager — plans, codes, markets, and supports it around the clock with no full-time human staff. As stated in a May 2026 podcast interview (where he goes by \"Ben Cera\"; public press and his own social accounts typically use \"Ben Broca\"), he reported a $10M annualized run rate (his last 30 days of revenue x12, not trailing-12-month actuals) and a $30M funding round, and described moving some workloads from paid Claude access to free open-source models to control a $1–1.5M/month Anthropic bill.",
"revenueModel": "Freemium SaaS with premium tiers",
"website": "https://polsia.com",
"twitter": "@benbroca",
"linkedin": "https://www.linkedin.com/in/benbroca",
"founderPhoto": "https://pbs.twimg.com/profile_images/1925027942188593152/aN85HfBE_400x400.jpg",
"verificationSourceLabel": "Self-reported (podcast)",
"addedAt": "2026-07-01",
"lastUpdated": "2026-08-06",
"revenueClaims": [
{
"metric": "revenue",
"period": "annual",
"amount": 10000000,
"currency": "USD",
"sourceUrl": "https://share.transistor.fm/s/7bf88699",
"sourceType": "interview",
"observedAt": "2026-08-06",
"asOf": "2026-05-27",
"attribution": "founder",
"status": "self_reported",
"note": "A prior loop's note here claimed this podcast (and its companion episode, share.transistor.fm/s/9765d891) profiled \"a different, unrelated company that also happens to be named Polsia\" — re-investigation (2026-08-06) found that was wrong. Both episodes, polsia.com's own JSON-LD, and independent press (TechCrunch, Fortune, teamday.ai, andrew.ooo, Context Studios, blog.geta.team) all describe the same company and the same $10M/$30M figures. The WSJ source cited here previously returned HTTP 401 on both 2026-08-05 and 2026-08-06 — never independently confirmed. The $10M is the founder's own self-reported annualized run rate (\"you took your last 30 days, you multiplied it by 12\" — interviewer's words, unrebutted), not audited or WSJ-verified revenue, hence self_reported rather than verified. Unresolved identity note: the podcasts and polsia.com's own schema.org Person.name call the founder \"Ben Cera\"; polsia.com's sameAs field and independent press instead tie the same twitter.com/benbroca + linkedin.com/in/benbroca accounts to \"Ben Broca\" (matching this record's founderName/twitter/linkedin/founderPhoto, all kept as this founder's genuine, non-misattributed identity assets). Which name is his legal/primary one could not be settled from any source reachable here."
},
{
"metric": "funding",
"period": "one_time",
"amount": 30000000,
"currency": "USD",
"sourceUrl": "https://share.transistor.fm/s/7bf88699",
"sourceType": "interview",
"observedAt": "2026-08-06",
"asOf": "2026-05-27",
"attribution": "founder",
"status": "self_reported",
"note": "Founder-reported $30M funding round, stated in the same May 2026 podcast interview as the $10M annualized-run-rate figure above (share.transistor.fm/s/7bf88699). This is a capital raise, not revenue — recorded with metric:'funding' and period:'one_time' specifically so it is excluded from revenue aggregation/ranking (see lib/stats.ts isAnnualRevenueClaim, which only accepts metric:'revenue'). No independent confirmation of round size, investors, or close date was found in any source reachable during this research pass (same caveats as the revenue claim above), hence self_reported rather than verified."
}
],
"teamEvidence": [
{
"sourceUrl": "https://polsia.com/",
"sourceType": "company_site",
"observedAt": "2026-08-07",
"status": "self_reported",
"note": "polsia.com homepage (fetched 2026-08-07) company_site JSON-LD Organization sameAs twitter.com/benbroca + github.com/benbroca and Author Person Ben Cera — solo-founder framing with no team listing; product is autonomous AI platform via Claude Agent SDK, consistent with Solo teamSize."
}
],
"aiNativeEvidence": [
{
"sourceUrl": "https://polsia.com/",
"sourceType": "company_site",
"observedAt": "2026-08-07",
"status": "self_reported",
"note": "polsia.com homepage (fetched 2026-08-07) company_site confirms AI-native stack: autonomous AI system that runs entire companies through coordinated AI agents — plans, codes, markets daily; JSON-LD SoftwareApplication description matches aiTools Claude/Open-source LLMs/Custom Models."
}
],
"publishedRevenueTier": "$1M+"
}
],
"meta": {
"total": 178,
"page": 1,
"limit": 1,
"totalPages": 178,
"filters": {
"category": null,
"tier": null,
"team": null,
"search": null,
"sort": "revenue"
}
}
}Each business object carries both a revenueTier and a publishedRevenueTier field. revenueTier is the raw stored tier and is kept for backward compatibility only — it may be derived from funding, profit, or other non-revenue figures and is not guaranteed to be backed by an actual reported annual-revenue figure. publishedRevenueTier is null when the business has no publicly reported annual revenue, and otherwise equals revenueTier. Use publishedRevenueTier for any display or filtering logic that should only reflect real reported revenue.
Error responses
400with{ error: "Invalid category. Must be one of: ..." }for unknown filter values.405for non-GET methods.
GET /api/businesses/[slug]
Fetch a single business by its URL slug, plus up to 4 related businesses.
curl https://www.agenticartists.com/api/businesses/polsia-ben-brocaResponse shape: { business: <Business>, related: Business[] }. The related array contains up to 4 businesses sharing the same founder or category. 404 with { error: "Business not found", slug } if the slug is unknown.
GET /api/health
Readiness check. HTTP 200 always pairs with status: "ok"; HTTP 503 always pairs with status: "degraded" when corpus integrity is invalid or a required storage read is unavailable. A 503 response is valid JSON from the readiness endpoint, but clients should treat it as not ready and retry using their normal backoff policy.
The response includes build diagnostics, business and activity counts, integrity results, and additive per-read availability under storage.reads for views, submissions, and subscribers. Each read reports { available, reason }, where reason is null on success or read_failed when unavailable. Use that state to distinguish an unavailable read from a genuine zero count; do not infer readiness from a count alone. Build status is diagnostic and does not independently determine readiness. No authentication is required.
Rate limits
None currently. If you need to make a large number of requests (e.g. for a research project), please email hello@agenticartists.com so we can warn you before adding limits.
Stability
The API is currently v0 — fields may be added between releases but no existing fields will be renamed or removed without notice. Subscribe to the newsletter (link in the footer) or watch the changelog for breaking-change announcements.
Embeddable widget
Looking to embed a single business card or a top-5 list on your own site? See the widget documentation for copy-paste snippets.