API
Search the Build in Public directory of makers and their projects, add, edit and remove your own projects, and browse the deals members get on software. Prefer an AI assistant? Use the MCP server.
Any member can manage their own projects. Searching the directory and reading another member's profile needs elevated access, which isn't on every account. Those requests get a 403. The API is in beta, so fields can still be added, renamed or removed. Don't build on the exact response shape yet.
Authentication
Every request needs an OAuth 2.0 access token in the Authorization: Bearer header. Tokens come from the authorization code flow with PKCE (S256); members sign in with X and approve your app. Access tokens last two hours, and refresh tokens rotate on every use.
Ask for the read scope to read profiles and projects, and read write to also manage the member's own projects and request deals. Members see both on the consent screen. Searching the directory needs elevated access on the account.
Register your app with dynamic client registration (POST https://buildinpublic.com/oauth/register), or ask us for an app if you need a fixed client. Everything a client needs is in the authorization server metadata.
Endpoints
All under https://api.buildinpublic.com. IDs look like user_… and proj_…; anywhere a user ID goes, a username works too, and me is the signed-in member.
Lists return data, has_more and next_cursor. Pass next_cursor back as cursor for the next page, and limit (up to 50) to change the page size. Errors look like {"error": {"type", "message"}}.
Writes take a JSON body of name, url, pitch and slug, and only reach the member's own projects. They follow the same rules as the site, including the limit of 5 unverified projects. A rejected project gets a 422 with the errors per field.
Each deal comes with what it's worth, who it's for and a deal_url. Members unlock a deal there, on the site, which is the only place the redemption instructions appear. No deal for a product? Post its product_name (and url) to /v1/deal_requests: requests are how we pick which vendors to approach, and the member is emailed when the deal lands.
The full reference is the OpenAPI spec.
Example
-H "Authorization: Bearer $TOKEN"
Limits
Each member gets 60 requests a minute and 2,000 a day, shared with the MCP server. Writes also have their own budget of 10 an hour and 20 a day. Over a limit you get a 429 with a Retry-After header.
Searches stop after 500 results per query.
Members can see and disconnect the apps they've approved under connected apps.