For Agents
Find songs whose lyrics are semantically similar to a given song or free-text passage by querying SearchLy's word2vec-indexed catalogue.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the SearchLy API v1, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with SearchLy API v1 API.
Find songs whose lyrics are semantically similar to a known song via GET /similarity/by_song
Find songs similar to an arbitrary block of free text using POST /similarity/by_content
Search the underlying song catalogue by title or artist with GET /song/search
Power lyric-based music recommendations using k-nearest-neighbour retrieval over word2vec embeddings
GET STARTED
Use for: Find songs with lyrics similar to 'Bohemian Rhapsody', Search for songs similar to a paragraph of poetry I wrote, Look up a song by title in the SearchLy catalogue, Get the top 10 lyric matches for a given song id
Not supported: Does not handle audio fingerprinting, streaming, or licensed lyric retrieval — use for open lyric similarity search and song catalogue lookup only.
SearchLy is a similarity search API over song lyrics, built on a 100k-song corpus scraped from AZLyrics and indexed with word2vec embeddings and NMSLIB k-nearest-neighbour retrieval. It exposes three operations: similarity by song identifier, similarity by free-text content, and a song search by query string. The service runs on a small DigitalOcean instance, so it is best suited to research, prototyping, and lyric-driven recommendation experiments rather than high-traffic production use.
Prototype thematic music discovery without training a custom embedding model
Patterns agents use SearchLy API v1 API for, with concrete tasks.
★ Lyric-Based Music Recommendation
Music discovery apps want to suggest songs that share the meaning of a track the user just played, not just the genre. SearchLy's /similarity/by_song endpoint returns the nearest neighbours of a given song in lyric-embedding space, so a recommender can surface thematically related tracks even across genres. Indexing is precomputed so latency is bounded by the small hosting instance.
Call GET /similarity/by_song with the song id for 'Hallelujah' and return the top 10 most lyric-similar songs
Free-Text Lyric Match
Writers, journalists, and creative tools sometimes want a song that fits a passage of text — a poem, a paragraph, or a news quote. The POST /similarity/by_content endpoint accepts free text in the request body and returns the songs whose lyrics are closest in word2vec space. This makes 'soundtrack this paragraph' style features straightforward.
POST a paragraph of text to /similarity/by_content and return the top 5 songs with the closest lyric embeddings
Song Catalogue Lookup
Before running a similarity query you often need to resolve a song title or artist into the SearchLy id. The GET /song/search endpoint accepts a query string and returns matching catalogue entries with their internal ids. An agent can chain a /song/search call into a /similarity/by_song call to deliver title-based similarity in a single user turn.
Call GET /song/search with q='hallelujah leonard cohen', take the first id from the response, and pass it to GET /similarity/by_song
Lyric Similarity Through a Jentic Agent
Through Jentic, an AI agent fielding a lyric-similarity question searches by intent and Jentic returns the matching SearchLy operation with its input schema. Because SearchLy is open and unauthenticated, Jentic's value is discovery and request validation — turning a vague request like 'songs that feel like this poem' into a correct POST /similarity/by_content call against searchly.asuarez.dev.
Use Jentic to search 'find songs similar to a passage of text', load POST /similarity/by_content, and execute with the user's input string
3 endpoints — searchly is a similarity search api over song lyrics, built on a 100k-song corpus scraped from azlyrics and indexed with word2vec embeddings and nmslib k-nearest-neighbour retrieval.
METHOD
PATH
DESCRIPTION
/similarity/by_song
Find songs similar to a given song id
/similarity/by_content
Find songs similar to a free-text passage
/song/search
Search the song catalogue by query string
/similarity/by_song
Find songs similar to a given song id
/similarity/by_content
Find songs similar to a free-text passage
/song/search
Search the song catalogue by query string
Three things that make agents converge on Jentic-routed access.
Credential isolation
SearchLy is unauthenticated, so there are no credentials for Jentic to manage. The Jentic vault is unused for this API; the value is in discovery and validated request bodies.
Intent-based discovery
Agents search Jentic by intent (e.g. 'find songs similar to a passage of text') and Jentic returns the matching SearchLy operation with its body schema, so the agent posts the right shape without inspecting the spec.
Time to first call
Direct integration: 30-60 minutes to read the docs and shape the requests. Through Jentic: a few minutes — search the intent, load the schema, execute.
Alternatives and complements available in the Jentic catalogue.
Musixmatch
Licensed lyrics catalogue with track metadata and matching
Choose Musixmatch when you need licensed lyric content or track metadata rather than open similarity search
Spotify
Streaming catalogue and audio-feature based recommendations
Choose Spotify when the request is audio-feature similarity or playlist building rather than lyric similarity
Open similarity search example
Different open API illustrating how Jentic handles unauthenticated public services
Use as a reference for unauthenticated single-purpose APIs invoked through Jentic
Specific to using SearchLy API v1 API through Jentic.
What authentication does the SearchLy API use?
SearchLy is open and does not require authentication — the spec defines no security schemes. Through Jentic, the call is still validated against the schema and routed without exposing the upstream URL pattern to the agent.
Can I search for songs by free text with the SearchLy API?
Yes. POST /similarity/by_content accepts a JSON body containing a free-text passage and returns the songs in the catalogue whose lyrics are nearest in word2vec embedding space. This is the recommended path when the user does not have a specific song in mind.
What are the rate limits for the SearchLy API?
The spec does not declare a rate limit. The maintainer notes the API is hosted on a small DigitalOcean instance, so callers should expect best-effort latency and avoid tight loops — batch and cache results where possible.
How do I find songs similar to a specific track through Jentic?
First search Jentic for 'find a song by title', load GET /song/search, and resolve the song id. Then search Jentic for 'find similar songs by lyrics', load GET /similarity/by_song, and call it with the resolved id. Jentic chains the two calls without the agent having to handle either URL.
Is the SearchLy API free?
Yes — the API is open source, hosted by the maintainer, and free to use within the implicit fair-use limits of a small single-instance deployment.
What corpus does SearchLy index?
SearchLy indexes around 100,000 songs scraped from AZLyrics, embedded with word2vec, and served through an NMSLIB k-nearest-neighbour index. The catalogue is updated periodically by the maintainer's scraper.