---
title: "Semantic skill search"
method: GET
path: "/api/v1/search/semantic"
tags: ["Search"]
---

# Semantic skill search

`GET /api/v1/search/semantic`

## Request

- Base URL: `https://api.skills-hub.ai`
- URL: `https://api.skills-hub.ai/api/v1/search/semantic`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Vector (pgvector) semantic search over published, public skills, ranked by cosine similarity; falls back to keyword search when embeddings are unavailable. Public. Params: `q` (required) and `limit` (1-100, default 20). Cached for 60 seconds.

## Response `200`

Successful response. The returned fields are described in this endpoint's summary/description; typed per-field response schemas are being added incrementally.

- object: Skills ranked by semantic similarity, in the same envelope as GET /search. Semantic ranking has no stable id-order, so `cursor` is always null and `hasMore` always false.
  - `data` object[], required
  - `cursor` string, nullable, required
  - `hasMore` boolean, required

---

[API](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api.md) · [All operations](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api/revisions/cb5d46d80300?raw)
