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.