TrustMRR API endpoint
Returns a paginated list of every startup in the TrustMRR directory. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate the entire directory.
/trustmrr/startupsReturns a paginated list of every startup in the TrustMRR directory. Each entry is a slug — pass it to /api/v1/trustmrr/startup/{slug} for the full verified profile. Together these two endpoints let you enumerate the entire directory without the authenticated marketplace API.
Query parameters:
page: optional. 1-based page number. Default: 1.page_size: optional. Items per page. Default: 100. Maximum: 1000.Notable response behavior:
total is the count of unique startup slugs in the sitemap (thousands).has_next indicates whether more pages remain.last_modified is the sitemap lastmod timestamp for the entry, when present.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| slug | 20 | |
| url | 20 | trustmrr.com |
| last_modified | 20 | 2026-07-23 to 2026-10-13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| page | integer | No | 1-based page number (default 1) | ||
| page_size | integer | No | Items per page (default 100, max 1000) | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/trustmrr/startups?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"total": 8196,
"page": 1,
"page_size": 100,
"has_next": true,
"startups": [
{
"slug": "gumroad",
"url": "https://trustmrr.com/startup/gumroad",
"last_modified": "2026-07-08T05:09:42.880Z"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/trustmrr.startupsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | trustmrr.StartupsResponse | No | ||||
| data.has_next | boolean | No | true | `true` when more pages of startups remain. | ||
| data.page | integer | No | 1 | Page number returned, starting at 1. | ||
| data.page_size | integer | No | 100 | Number of startups per page. | ||
| data.startups | array | No | Startups on this page, one item per startup. | |||
| data.startups[].last_modified | string | No | 2026-07-08T05:09:42.880Z | Last-modified time TrustMRR lists for the startup page, in ISO 8601. | ||
| data.startups[].slug | string | No | gumroad | URL slug of the startup on TrustMRR. Use it with the startup endpoint. | ||
| data.startups[].url | string | No | https://trustmrr.com/startup/gumroad | Link to the startup's page on TrustMRR. | ||
| data.total | integer | No | 8196 | Total number of startups listed on TrustMRR. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | TrustMRR upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/trustmrr/startups?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"