Developers
Read-only JSON API for the catalog. No key required. Only public directory fields are returned — no user, vote, or internal data.
GET /api/tools
List tools, newest-first by default sort. Parameters: locale (30 language codes, default en), category (category slug), sort (heat, name, newest, oldest, added; default heat), limit (1–200, default 100), offset (default 0). Unknown categories return an empty list; an unknown sort falls back to heat.
curl "https://aialternativeto.com/api/tools?category=code&sort=heat&limit=2"
GET /api/tool/{slug}
One tool by slug, with its full description. Parameter: locale (default en). Unknown slugs return 404 JSON.
curl "https://aialternativeto.com/api/tool/chatgpt?locale=zh-CN"
GET /api/categories
All categories with tool counts and the latest tool in each. Parameter: locale (default en; unknown values fall back to en).
curl "https://aialternativeto.com/api/categories?locale=zh-CN"
GET /api/search
Search tools by name, company, or website domain. Parameters: q (required), locale (default en). Returns matching tools with slug, name, tagline, pricing, platforms, and website URL.
curl "https://aialternativeto.com/api/search?q=chatgpt&locale=en"
Response shape
List endpoints return { success: true, locale, count, data: [...] }. Each tool carries slug, name, tagline, website_url, logo_url, pricing, platforms, launched, company, company_slug, heat, is_open_source, alternatives_count, url (the single-tool endpoint adds description). Link back to the tool page with url when you reuse the data.
