# Gyeongcheong (경청) — voice-recording search API > Find recordings in the user's own archive by typing what was said — returns the file, the > timestamp range and the transcript quoted. Search is meaning-based, so paraphrase works and > transcription errors are tolerated. Original audio never reaches the server: the indexing kit > runs speech-to-text + embedding on the user's machine and pushes transcript chunks only. Auth: X-API-Key header. Get a free key: POST /signup {"email": "you@example.com"} Machine-readable spec: /openapi.json · Interactive docs: /docs ## Core endpoints - POST /match {"query": "...", "top_k": 5} → documents[] each with file_path (audio file on the user's machine), score, evidence[{loc: "8:24–8:51", snippet (transcript quote), start_sec, rid}]. Give the user file + loc + snippet; start_sec lets a player jump to the moment. - POST /index/add_speech — used by the indexing kit (client-computed vectors; audio never uploads). - GET /download/indexer_speech.py — the indexing kit (runs STT locally, GPU recommended). - GET /index/list · /index/status · POST /index/remove {"paths": [...]} - GET /preview/{rid}?key=... — full transcript chunk (text/plain). - GET /account — plan, quotas, usage. ## Notes for agents - Chunk paths look like "