API / Endpoints
GET
/api/v1/startups/{slug}Returns full details for a single startup, including startup insights, domain rating, audience, marketing channels, tech stack, cofounders, social metrics, and the complete description. Use the slug value from the list endpoint.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | The startup's URL-friendly identifier. Get this from the list endpoint's slug field. |
Request
cURL
curl -s "https://trustmrr.com/api/v1/startups/shipfast" \-H "Authorization: Bearer tmrr_your_api_key"
JavaScript (fetch)
const slug = "shipfast";const response = await fetch(`https://trustmrr.com/api/v1/startups/${slug}`,{headers: {Authorization: "Bearer tmrr_your_api_key",},});const { data } = await response.json();console.log(data.name, "—", data.revenue.mrr / 100, "$/mo MRR");
Python (requests)
import requestsslug = "shipfast"response = requests.get(f"https://trustmrr.com/api/v1/startups/{slug}",headers={"Authorization": "Bearer tmrr_your_api_key"},)data = response.json()["data"]print(f"{data['name']} — ${data['revenue']['mrr'] / 100:.0f}/mo MRR")
Response fields
The data object contains all fields from the list endpoint plus additional detail fields. All monetary values are in USD cents.
Additional fields vs. list endpoint
This endpoint returns the full description (not truncated), plus: xFollowerCount, isMerchantOfRecord, techStack, marketingChannels, startupInsights, audience fields, domainRating, founderMessage, and cofounders.
| Field | Type | Description |
|---|---|---|
| name | string | Startup name |
| slug | string | URL-friendly identifier |
| icon | string | null | URL to the startup's icon/logo |
| description | string | null | Full description (not truncated, unlike the list endpoint) |
| website | string | null | Startup's website URL |
| country | string | null | Country code (ISO 3166-1 alpha-2) |
| foundedDate | string | null | When the startup was founded (ISO date) |
| category | string | null | Primary category (e.g. saas, ai, ecommerce) |
| paymentProvider | string | Payment provider used for revenue verification (stripe, lemonsqueezy, polar, revenuecat, dodopayment, paddle, superwall, creem) |
| targetAudience | string | null | Target audience (b2b, b2c, or both) |
| revenue.last30Days | number | Verified revenue in the last 30 days, in USD cents |
| revenue.mrr | number | Monthly recurring revenue, in USD cents |
| revenue.total | number | All-time total revenue, in USD cents |
| customers | number | Total customer count |
| activeSubscriptions | number | Number of currently active subscriptions |
| askingPrice | number | null | Asking price in USD cents |
| profitMarginLast30Days | number | null | Profit margin over the last 30 days (0-100 percentage) |
| growth30d | number | null | Revenue growth over the last 30 days as a percentage (e.g. 24 = 24% growth) |
| growthMRR30d | number | null | MRR growth over the last 30 days as a percentage. Tracks how recurring revenue is changing. |
| multiple | number | null | Asking price / annualized revenue |
| rank | number | null | Revenue ranking among all active startups on TrustMRR (1 = highest total revenue). Updated hourly. |
| visitorsLast30Days | number | null | Total website visitors in the last 30 days. Source: DataFast, Google Analytics, or Google Search Console (clicks). |
| googleSearchImpressionsLast30Days | number | null | Number of times the startup's website appeared in Google search results in the last 30 days. Only available when Google Search Console is connected. |
| revenuePerVisitor | number | null | Revenue per visitor ratio (last 30 days revenue / last 30 days visitors). Indicates monetization efficiency. |
| domainRating | number | null | Ahrefs Domain Rating on a 0-100 scale when available |
| onSale | boolean | Whether the startup is currently listed for sale |
| firstListedForSaleAt | string | null | When the startup was first listed for sale (ISO date) |
| founderMessage | string | null | Founder-provided message shown on the startup page. Only returned when onSale is true. |
| xHandle | string | null | X (Twitter) handle without the @ symbol |
| xFollowerCount | number | null | Number of X (Twitter) followers |
| isMerchantOfRecord | boolean | Whether the startup uses a merchant of record (handles tax/compliance) |
| startupInsights | object | Public startup insights shown on the startup page. Founder-edited values are returned when present. |
| startupInsights.valueProposition | string | null | Value proposition shown in the Startup insights section |
| startupInsights.problemSolved | string | null | Problem solved shown in the Startup insights section |
| startupInsights.pricingModel | string | null | Pricing model shown in the Startup insights section |
| startupInsights.targetPersona | string | null | Target persona shown in the audience section |
| startupInsights.businessType | string | null | Business audience type (B2B, B2C, Both, or Unknown) |
| startupInsights.estimatedUserCount | number | null | Estimated user count when available from public startup insights |
| techStack[] | object[] | Array of technologies used |
| techStack[].slug | string | Technology identifier (e.g. nextjs, react, tailwindcss) |
| techStack[].category | string | Technology category (e.g. framework, language, database, hosting) |
| marketingChannels[] | object[] | Array of marketing channels used to acquire customers |
| marketingChannels[].slug | string | Marketing channel identifier (e.g. seo, x-twitter, paid-search) |
| marketingChannels[].category | string | Marketing channel category (organic, social, paid, outbound, community, partnerships) |
| cofounders[] | object[] | Array of cofounders |
| cofounders[].xHandle | string | Cofounder's X (Twitter) handle |
| cofounders[].xName | string | null | Cofounder's display name |
Example response
200 OK
{"data": {"name": "ShipFast","slug": "shipfast","icon": "https://cdn.trustmrr.com/icons/shipfast.png","description": "The NextJS boilerplate with all you need to build your SaaS, AI tool, or any other web app. From idea to production in 5 minutes.","website": "https://shipfa.st","country": "TH","foundedDate": "2023-09-01T00:00:00.000Z","category": "saas","paymentProvider": "stripe","targetAudience": "b2b","revenue": {"last30Days": 4250000,"mrr": 180000,"total": 98000000},"customers": 7800,"activeSubscriptions": 320,"askingPrice": 50000000,"profitMarginLast30Days": 92,"growth30d": 0.12,"growthMRR30d": 8.5,"multiple": 0.98,"rank": 42,"visitorsLast30Days": 12400,"googleSearchImpressionsLast30Days": 513015,"revenuePerVisitor": 3.87,"domainRating": 58,"onSale": true,"firstListedForSaleAt": "2025-11-15T08:30:00.000Z","founderMessage": "ShipFast is profitable and simple to operate. I am looking for the right buyer to keep growing it.","xHandle": "shipaborad","xFollowerCount": 15400,"isMerchantOfRecord": false,"startupInsights": {"valueProposition": "Launch a production-ready SaaS faster with payments, auth, emails, and deployment already wired together.","problemSolved": "Founders lose weeks rebuilding the same SaaS boilerplate before they can test an idea.","pricingModel": "One-time purchase with tiered licenses","targetPersona": "Solo founders and indie hackers launching SaaS products","businessType": "B2B","estimatedUserCount": 7800},"techStack": [{ "slug": "nextjs", "category": "framework" },{ "slug": "mongodb", "category": "database" },{ "slug": "tailwindcss", "category": "css" },{ "slug": "stripe", "category": "payments" }],"marketingChannels": [{ "slug": "seo", "category": "organic" },{ "slug": "x-twitter", "category": "social" }],"cofounders": [{ "xHandle": "marc_louvion", "xName": "Marc Lou" }]}}
Errors
400Invalid slug
{ "error": "Slug is required" }
404Startup not found
{ "error": "Startup not found" }
Common use cases
Get details then display tech stack
JavaScript
const res = await fetch("https://trustmrr.com/api/v1/startups/shipfast",{ headers: { Authorization: "Bearer tmrr_your_api_key" } });const { data } = await res.json();const techs = data.techStack.map((t) => t.slug).join(", ");console.log(`${data.name} uses: ${techs}`);// → "ShipFast uses: nextjs, mongodb, tailwindcss, stripe"
List all startups then fetch details for each
JavaScript
const headers = { Authorization: "Bearer tmrr_your_api_key" };const BASE = "https://trustmrr.com/api/v1/startups";// Step 1: Get list of startupsconst listRes = await fetch(`${BASE}?limit=5&sort=revenue-desc`, { headers });const { data: startups } = await listRes.json();// Step 2: Fetch details for eachfor (const startup of startups) {const detailRes = await fetch(`${BASE}/${startup.slug}`, { headers });const { data } = await detailRes.json();console.log(`${data.name} (${data.techStack.length} technologies)`);}
List startups
Previous
List startups