Directory submissions, from $99Directory submissions, from $99See the plans

Public API

The MegaLaunch API, open and read-only.

Read published products, categories, recent launches, the leaderboard and the daily Top 3 as JSON. No key, no account: send a GET request.

  • REST and JSON
  • Keyless
  • OpenAPI 3.1
  • 60 requests per minute

Quick start

Every endpoint is a GET request that returns JSON. Try these in a terminal.

Free products about analytics
curl "https://megalaun.ch/api/v1/products?q=analytics&pricing=free&limit=5"
One product by its slug
curl "https://megalaun.ch/api/v1/products/example-app"
Launches of the last 7 days
curl "https://megalaun.ch/api/v1/launches?days=7&limit=10"
Most voted iOS apps
curl "https://megalaun.ch/api/v1/products?platform=ios&sort=votes&limit=5"
Base URL
https://megalaun.ch/api/v1
Authentication
None
Format
JSON, UTF-8
Methods
GET only

Endpoints

Product lists return at most 20 items per request. Parameters are query strings.

EndpointDescriptionParameters
GET/api/v1/productsSearch published products.qcategorypricingplatformsortlimitcursor
GET/api/v1/products/{slug}One published product by its slug.None
GET/api/v1/categoriesEvery category.None
GET/api/v1/launchesProducts published in the last days.dayscategoryplatformlimit
GET/api/v1/leaderboardProducts ranked by community votes, like the leaderboard page.periodlimit
GET/api/v1/awardsFrozen daily Top 3 podiums, newest day first.limit
GET/api/v1/openapi.jsonOpenAPI 3.1 description of this API.None

GET/api/v1/products

Search published products. Returns: A page of products and nextCursor.

qtext
Search text.
categorycategory slug
Only products of this category.
pricingfree, freemium, paid, subscription, one-time
Only this pricing model.
platformweb, ios, android, macos, windows, linux, browser-extension, api, cli, mcp
Only products that run on this platform. Use ios or android for mobile apps.
sortnewest, votes
Newest first (default), or most voted first.
limit1 to 20
Number of products to return (default 10).
cursornextCursor of the previous page
Fetch the next page.

GET/api/v1/products/{slug}

One published product by its slug. Returns: One product, or a 404 error.

GET/api/v1/categories

Every category. Returns: Categories with their slug, name, description, published product count and page URL.

GET/api/v1/launches

Products published in the last days. Returns: Products, newest first.

days1 to 30
How many UTC days to look back, today included (default 7).
categorycategory slug
Only products of this category.
platformweb, ios, android, macos, windows, linux, browser-extension, api, cli, mcp
Only products that run on this platform. Use ios or android for mobile apps.
limit1 to 20
Number of products to return (default 10).

GET/api/v1/leaderboard

Products ranked by community votes, like the leaderboard page. Returns: Products in ranking order, each with its rank and votes.

periodtoday, week, month, all
Ranking window, in UTC (default today).
limit1 to 20
Number of products to return (default 10).

GET/api/v1/awards

Frozen daily Top 3 podiums, newest day first. Returns: Podium days, each with its Top 3 (rank, votes and product).

limit1 to 30
Number of past UTC days with a frozen podium (default 7).

GET/api/v1/openapi.json

OpenAPI 3.1 description of this API. Returns: An OpenAPI document (JSON).

Response

Lists return their entries in items. A product search also returns nextCursor, the cursor of the next page (null on the last page). A single product comes back as one object with the same fields.

GET /api/v1/products (example values)
{
  "items": [
    {
      "slug": "example-app",
      "name": "Example App",
      "tagline": "One clear sentence about what the product does.",
      "description": "What the product does, who it is for and how it works, written by the maker.",
      "megalaunchUrl": "https://megalaun.ch/product/example-app",
      "websiteUrl": "https://example.com/",
      "domain": "example.com",
      "logoUrl": "https://example.com/logo.png",
      "category": {
        "slug": "developer-tools",
        "name": "Developer Tools"
      },
      "pricing": {
        "type": "freemium"
      },
      "platforms": [
        "web",
        "ios"
      ],
      "links": {
        "appStore": "https://apps.apple.com/app/example-app/id0000000000",
        "playStore": null
      },
      "tags": [
        "api",
        "automation"
      ],
      "verified": false,
      "community": {
        "votes": 0,
        "comments": 0
      },
      "awards": [],
      "publishedAt": "2026-10-20T00:00:00.000Z",
      "updatedAt": "2026-10-20T00:00:00.000Z"
    }
  ],
  "nextCursor": null
}

Product fields

FieldTypeMeaning
slugstringUnique identifier, also used in the page URL.
namestringProduct name.
taglinestringOne-line pitch written by the maker.
descriptionstringLonger description written by the maker.
megalaunchUrlstringCanonical MegaLaunch page. Link this URL when you show the product.
websiteUrlstring | nullThe product website.
domainstring | nullHost name of the website.
logoUrlstring | nullProduct logo.
category{ slug, name } | nullThe MegaLaunch category.
pricing{ type }Pricing model: free, freemium, paid, subscription, one-time.
platformsstring[]Where the product runs, declared by the maker: web, ios, android, macos, windows, linux, browser-extension, api, cli, mcp. Empty when unknown. A product with ios or android is a mobile app.
links{ appStore, playStore }Official App Store and Google Play pages, or null. Each one is set only with its platform.
tagsstring[]Tags chosen by the maker.
verifiedbooleanTrue when the launch carries the Verified launch badge (Premium). A label, never a ranking factor.
community{ votes, comments }Community votes (one per person) and comment count.
awards{ period, date, rank }[]Frozen daily Top 3 results of the product: the UTC day and the rank, 1 to 3.
publishedAtstringPublication date (ISO 8601, UTC).
updatedAtstringLast update (ISO 8601, UTC).

Errors

Errors use an HTTP status code and the same JSON shape, with a stable code and a readable message.

StatusCodeWhen
400invalid_requestA parameter is unknown, malformed or out of range.
404not_foundNo published product has this slug.
429rate_limitedMore than 60 requests in a minute from the same IP address.
500internal_errorThe data could not be read. Retry a little later.
404 response
{
  "error": {
    "code": "not_found",
    "message": "No published product has the slug \"missing-app\". Search products to find a slug."
  }
}

Limits and headers

60 requests per minute per IP address. Over the limit, the API answers 429 until the window resets. Responses are cached for 5 minutes.

HeaderValueMeaning
Cache-Controlpublic, s-maxage=300, stale-while-revalidate=600Successful responses are cached for 5 minutes. Errors are never cached (no-store).
Access-Control-Allow-Origin*GET requests work from any website.
X-RateLimit-Limit60Requests allowed per minute.
X-RateLimit-RemainingnumberRequests left in the current minute.
X-RateLimit-ResetUnix timeWhen the current window resets, in seconds since the epoch.
Retry-AftersecondsSent with a 429: wait this long before the next request.
X-Robots-TagnoindexAPI responses are not meant for search results.

Attribution and terms

The data is submitted by makers and moderated by MegaLaunch. Use it freely within these rules.

  • Read-only

    No tool or endpoint creates, edits or votes for anything.

  • Fair limits

    60 API requests and 30 MCP tool calls per minute per IP address. API responses are cached for 5 minutes.

  • Attribution

    Link each product you show to its megalaunchUrl.

  • No paid ranking

    Results never include sponsored placements, and paid options never change votes, scores or rankings.

The API is provided as is and may change. See the terms of use and the moderation policy.

OpenAPI

The full description of the API in OpenAPI 3.1, for Postman, Insomnia or a client generator.

openapi.jsonhttps://megalaun.ch/api/v1/openapi.json

Working with an AI assistant? The MCP server exposes the same data as tools.

Integrate MegaLaunch

Ask AI about MegaLaunch