Skip to main content
GET
Search Skills
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.

Query Parameters

string
required
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 ???.
integer
default:"1"
Which page you want. Must be between 1 and 5. Defaults to 1 if you leave it out.

Response

array
The matching skills. Empty array if nothing matched — not a 404.
integer
The page you’re on
integer
How many results per page (always 10)
integer
How many results came back on this page

Examples


A note on security

This endpoint is public, so it has a few extra protections layered on:
  1. Rate limit — 15 requests per minute per IP. That’s enough for normal use.
  2. Regex sanitization — your keyword is escaped before it hits the database query. This prevents ReDoS attacks.
  3. 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.