claude up some atproto stuff
0

Configure Feed

Select the types of activity you want to include in your feed.


name: ufos description: Query the UFOs API for AT Protocol lexicon timeseries statistics. Use when you need to discover what lexicons/apps exist in the network or track collection activity over time. user-invocable: true#

ufos — lexicon timeseries stats#

UFOs tracks every collection (lexicon) ever observed in the AT Protocol firehose with timeseries stats and sample records.

Web explorer: https://ufos.microcosm.blue API: https://ufos-api.microcosm.blue Source: https://github.com/at-microcosm/microcosm-rs/tree/main/ufos

Use it to discover what atproto apps exist beyond Bluesky, check if a lexicon is active, or understand what records look like in an unfamiliar collection. The web explorer is useful to suggest to users for interactive browsing.

API endpoints#

List collections — sorted by activity:

curl -m 15 "https://ufos-api.microcosm.blue/collections?order=dids-estimate&limit=20"
# order: "dids-estimate" (most users) or "records-created" (most records)
# returns {"collections":[{"nsid":"app.bsky.feed.post","creates":...,"updates":...,"deletes":...,"dids_estimate":...}],"cursor":"..."}

The default (no order) is alphabetical, which returns junk/namespace-probing NSIDs — always pass order. order is mutually exclusive with cursor (sorted lists aren't paginated); omit order and use cursor for a full paginated walk. limit defaults to 100 (32 when ordered), max 200. since/until (UTC datetimes) bound the window.

Filter by namespace prefix — hierarchical browse:

curl -m 15 "https://ufos-api.microcosm.blue/prefix?prefix=app.bsky&limit=20"
# returns {"total":{creates,updates,deletes,dids_estimate},"children":[{"type":"collection|prefix","nsid":"...","creates":...,...}]}

Collection stats / timeseries / sample records — separate endpoints, each takes collection=<NSID> (repeatable — pass collection= multiple times for several at once):

curl -m 15 "https://ufos-api.microcosm.blue/collections/stats?collection=app.bsky.feed.post"
# {"app.bsky.feed.post":{"creates":...,"updates":...,"deletes":...,"dids_estimate":...}}

curl -m 15 "https://ufos-api.microcosm.blue/timeseries?collection=app.bsky.feed.post&step=3600"
# {"range":["2026-...Z",...], ...} — step is SECONDS, minimum 3600; since/until bound the window

curl -m 15 "https://ufos-api.microcosm.blue/records?collection=app.bsky.feed.post"
# [{"collection":"...","did":"...","rkey":"...","record":{...},"time_us":...}] — recent sample records

Search lexicons by name:

curl -m 15 "https://ufos-api.microcosm.blue/search?q=leaflet"
# {"matches":[{"nsid":"pub.leaflet....","creates":...,...}]}

There is no /collection/{nsid} route — use /collections/stats, /timeseries, and /records with ?collection=.