Searching Lexicons
Search finds lexicons by what their schemas say, not only by NSID. Type a few words into the search page, or into the box at the top of every page and press Enter.
What is matched
Every indexed lexicon is searchable by, in order of weight:
- Its NSID, segment by segment:
app.bsky.feed.postmatches feed and post. - Its main description and the names of its definitions.
- Field, parameter and error names, plus
knownValuesandenumentries and the collections and methods a permission set grants. Names match whole or split into words, so starts findsstartsAt. - Every other description in the schema.
Word forms match too: events finds event. Very common words such as the or for are not indexed.
Query syntax
calendar event— lexicons containing both words."reading list"— the exact phrase.calendar -google— leave out lexicons that mention a word.rsvp or attendance— either word.- A complete NSID, such as
community.lexicon.calendar.event, puts that lexicon first, marked exact match.
Use the type checkboxes to show only records, queries, procedures, subscriptions or permission sets.
Search by meaning
When it is switched on for this server, a Search by meaning toggle appears under the search box. It ranks lexicons by how close their schemas are in meaning to what you typed, using a text-embedding model, so you can describe what you need in your own words: store a user's reading list finds book and reading-log lexicons even if none of them uses the word "store". If the model is unavailable, you get keyword results and a note saying so.
Each lexicon's page may also list similar lexicons: ones whose schemas describe something close. They are worth checking before publishing a new lexicon that overlaps an existing one.
Ranking and the authority flag
Anyone can publish a schema under any NSID. A lexicon whose publishing account is the NSID's DNS authority (its _lexicon TXT record) ranks normally. Any other publisher's copy ranks lower and is flagged not from the namespace authority. Each result shows the version the lexicon's own page shows: the newest live record, preferring the authority's.
Deleted lexicons leave the results within minutes. Lexicons on the denylist never appear.
For developers: garden.lexicon.search
The same search is available as an anonymous, rate-limited XRPC query:
GET /xrpc/garden.lexicon.search?q=calendar%20event&lexiconType=record&limit=20
q(required, 2–256 characters) — the search text, with the syntax above.lexiconType(optional, repeatable) —record,query,procedure,subscriptionorpermission-set.limit(optional, 1–50, default 20) — clamped when out of range.cursor(optional) — from the previous response, for the next page.mode(optional) —keyword(default) orsemantic. The response'smodesays which ran, since semantic falls back to keyword when unavailable.
Each result carries nsid, did, uri, lexiconType, authoritative, exact, summary, and a plain-text snippet with highlights given as UTF-8 byte ranges, the same convention as richtext facets. The schema is garden.lexicon.search.
For prefix lookups and typeahead, use garden.lexicon.suggest and garden.lexicon.browse instead.