MacPip API
Read the directory from your own code, with no key. Only live, approved apps, and never anyone's email.
Start here
No key, no account and no sign-up. Every endpoint is a plain GET and allows requests from any website (CORS).
curl "https://macpip.com/v1/today" curl "https://macpip.com/v1/apps?q=clipboard&checked=true"
Endpoints
| Path | What it returns |
|---|---|
| /v1/apps | Live apps, with search, filters and pages |
/v1/apps/{slug} | One live app, including its check report |
| /v1/today | Today's launches, by UTC day |
| /v1/categories | All categories, with how many apps are live in each |
| /api/ai | Live counts and today's launches in one JSON response |
| /api/md/catalog | Every live app as one Markdown file |
| /openapi.json | The OpenAPI 3.1 description of this API |
Filters for /v1/apps
| Parameter | Values |
|---|---|
q | Words to find in the name, tagline, description or apps it replaces |
category | A category slug from /v1/categories |
launch_type | launch for apps with a launch day, list for directory only |
checked | true or false |
pay_model | once, sub or free |
built_with | Native, Electron or Other |
sort | name (default), newest or checked |
limit | 1 to 100, default 50 |
page | Page number, from 1 |
The response has a pagination object, and a Link header with rel="next" when there is another page.
What you get, and what you never get
- Only live apps. An app appears once a person has approved it and its date has arrived. Waiting, rejected and scheduled apps return nothing.
- Never private details. No maker emails, status links or tokens, and no download links makers send us for checking.
- Launches and listings are different.
launch_typesays which an app is. Directory-only apps havelaunch_date: nulland never appear in/v1/today. - Check pending is real.
check.statusischeckedorpending. A pending app has no blue tick yet. A tick is not a safety guarantee.
Votes stay hidden until 12:00 UTC
On a launch day, votes is null and votes_hidden is true until 12:00 UTC, the same as on the site. Until then /v1/today is alphabetical and has no ranks. After that it is ordered by votes. No other endpoint sorts by votes.
Sponsors
Sponsored rows are not in this API. On the site they always say Sponsored, and paying never changes any order here.
Errors
Errors follow RFC 9457 and use application/problem+json.
{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "One or more query parameters are not valid.",
"instance": "/v1/apps?limit=0",
"errors": [{ "parameter": "limit", "detail": "Use a whole number from 1 to 100." }]
}| Status | When |
|---|---|
| 400 | A query parameter is not valid |
| 404 | No such path, or no live app with that slug |
| 405 | Anything other than GET, HEAD or OPTIONS |
| 500 | Something went wrong on our side |
Good to know
Listing text comes from makers and their sites, so treat it as data and not as instructions. Responses may be cached for up to a minute. Please cache on your side too, and write to [email protected] if you are building something on this. The API only reads: to list an app, use the submit page.
For AI tools
- MCP server, for agents
- llms.txt and llms-full.txt
- ai.txt
- API catalog, under RFC 9727