⚡ Nexo Hub API
A free, read-only public API for the Nexo Hub directory. No API key, no sign-up, no rate-limit headaches — just fetch() and go.
No auth required
JSON responses
CORS enabled
POST
https://tiupkpabwuefclbrpaef.supabase.co/rest/v1/rpc/api_get_sites
Search and filter sites in the directory. All parameters are optional.
| Param | Type | Description |
|---|---|---|
| category_filter | text | Filter by category id (e.g. "ai") |
| tag_filter | text | Filter by a single tag (e.g. "free") |
| search_term | text | Search name + description |
| result_limit | int | Max results, capped at 100 (default 50) |
| result_offset | int | Pagination offset (default 0) |
fetch('https://tiupkpabwuefclbrpaef.supabase.co/rest/v1/rpc/api_get_sites', {
method: 'POST',
headers: {
'apikey': 'sb_publishable_Ut5Qh9mJNfK3qaltXgCH6g_Phryct7r',
'Content-Type': 'application/json'
},
body: JSON.stringify({ category_filter: 'ai', result_limit: 10 })
})
.then(res => res.json())
.then(data => console.log(data));
POST
https://tiupkpabwuefclbrpaef.supabase.co/rest/v1/rpc/api_get_categories
Returns every category with its icon, label, and live site count. No parameters needed.
fetch('https://tiupkpabwuefclbrpaef.supabase.co/rest/v1/rpc/api_get_categories', {
method: 'POST',
headers: {
'apikey': 'sb_publishable_Ut5Qh9mJNfK3qaltXgCH6g_Phryct7r',
'Content-Type': 'application/json'
},
body: '{}'
})
.then(res => res.json())
.then(data => console.log(data));
Heads up: this API only ever returns publicly approved sites — pending submissions and admin data are never exposed. The key shown above is a public, read-only anon key; it's safe to use client-side and doesn't need to be kept secret.