Introduction
The forg.to API gives you read access to public data about builders and their products. It's free, read-only, and requires an API key linked to your forg.to account. Use it to build dashboards, tools, or anything else on top of the forg.to ecosystem.
Quick Start
Get up and running in under a minute:
- 1Go to forg.to/settings/api and generate a free API key.
- 2Pass it in the
Authorizationheader of every request. - 3Use any of the endpoints below — all responses are JSON.
What you can access
Authentication
All API requests require authentication using a Bearer token in the Authorization header. You can get your key at forg.to/settings/api.
- All requests require header:
Authorization: Bearer YOUR_API_KEY - Keys are prefixed with
forg_for easy identification.
Rate Limits
To ensure stability and fair use of the API, we enforce rate limits on all endpoints based on your API key.
| Tier | Requests per minute | Requests per day |
|---|---|---|
| Free | 60 | 5,000 |
Rate Limit Headers
Every API response includes the following headers to help you track your usage:
- X-RateLimit-Limit: The max requests allowed in the current window.
- X-RateLimit-Remaining: The number of requests remaining.
- X-RateLimit-Reset: A unix timestamp when the limit resets.
429 Too Many Requests response. You must wait until the time specified in the X-RateLimit-Reset header.Errors
The forg.to API uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success, 4xx indicate client errors, and 5xx indicate server errors.
Error Codes
| HTTP | Code | Meaning |
|---|---|---|
| 400 | bad_request | Invalid query params |
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | Key revoked or account banned |
| 404 | not_found | Resource does not exist |
| 429 | rate_limited | Too many requests |
| 500 | server_error | Something went wrong on our end |
Products
Products represent what builders on forg.to are making. Every product has a lifecycle status, engagement stats, and a chronological feed of updates.
List ProductsGET /v1/products
Returns a paginated list of public products. Use sort=trending to get the most upvoted this week.
| Parameter | Type | Description |
|---|---|---|
pagedefault: 1 | number | Page number (1-indexed) |
limitdefault: 20 | number | Items per page. Maximum 50. |
status | string | Filter by lifecycle status. One of: idea, validating, building, alpha, beta, launched, growing, profitable, funded, scaling, paused, dead, acquired. |
sortdefault: newest | string | Sort order. newest returns most recently created first. trending returns most upvoted first. |
Get ProductGET /v1/products/:slug
Retrieve a single product by its slug. Returns 404 if the product doesn't exist or is private.
| Parameter | Type | Description |
|---|---|---|
slugRequired | string | The product's unique URL slug, e.g. my-product-name. |
List Product UpdatesGET /v1/products/:slug/updates
Returns all published updates (build logs, milestones, launches, etc.) for a product, sorted by most recent. Pinned updates always appear first.
| Parameter | Type | Description |
|---|---|---|
slugRequired | string | The product's slug. |
pagedefault: 1 | number | Page number. |
limitdefault: 20 | number | Items per page. Maximum 50. |
Users
Users are the builders on forg.to. The API exposes their public profile information — bio, skills, social links, and activity stats. Private information (email, tokens, settings) is never returned.
404 from all user endpoints.Get Builder ProfileGET /v1/users/:username
Returns a builder's full public profile including stats (products, updates, followers, following).
| Parameter | Type | Description |
|---|---|---|
usernameRequired | string | The builder's username on forg.to. Case-insensitive. |
List User's ProductsGET /v1/users/:username/products
Returns all public products owned by a builder, sorted by most recently created. Private products are never returned.
| Parameter | Type | Description |
|---|---|---|
usernameRequired | string | The builder's username. |
pagedefault: 1 | number | Page number. |
limitdefault: 20 | number | Items per page. Maximum 50. |
List User's UpdatesGET /v1/users/:username/updates
Returns all published updates from a builder across all their products, sorted by most recent. Use the type filter to narrow by update category.
| Parameter | Type | Description |
|---|---|---|
usernameRequired | string | The builder's username. |
pagedefault: 1 | number | Page number. |
limitdefault: 20 | number | Items per page. Maximum 50. |
type | string | Filter by update type. One of: update, launch, feature, milestone, revenue, bugfix, design, idea, fail, win, announcement, integration. |
Changelog
Breaking changes will always be versioned (v2, v3, ...) so existing integrations keep working. Non-breaking additions are shipped continuously.
v1.0Initial Release- Public API launched at api.forg.to/v1
- Endpoints: GET /products, /products/:slug, /products/:slug/updates
- Endpoints: GET /users/:username, /users/:username/products, /users/:username/updates
- API key authentication with per-key rate limiting (60 req/min, 5,000 req/day)
- Rate limit headers on all responses (X-RateLimit-Limit, Remaining, Reset)