This is probably the endpoint you’ll use most. Type a keyword, get back a list of matching skills. Simple.Results are paginated — you get up to 10 per page, and you can go up to page 5. If you need to go deeper than that, you might want to use a more specific keyword instead.
What you’re searching for. Has to be at least 3 characters — single letters and two-character queries are rejected. Also can’t be entirely made up of special characters like *** or ???.
This endpoint is public, so it has a few extra protections layered on:
Rate limit — 15 requests per minute per IP. That’s enough for normal use.
Regex sanitization — your keyword is escaped before it hits the database query. This prevents ReDoS attacks.
Scraping detection — if an IP makes more than 30 requests in a 5-minute window, it gets blocked. The threshold is in middleware/detectScraping.js if you need to tune it.