Open-source APIs to kick-start your next app on ATProto.
Community-supported infrastructure ready for production.
import requests
data = requests.get(
"https://constellation.microcosm.blue/links/count/distinct-dids",
params={
"target": "at://did:plc:hdhoaan3xa3jiuq4fg4mefid/app.bsky.feed.post/3lwcmto4tck2h",
"collection": "app.bsky.feed.like",
"path": ".subject.uri",
},
).json()
print("this post has", data["total"], "likes")
Constellation crawls every record seen in the firehose, and collects every link it can find: all at-uri
s, every DID
, and any plain old web URL
.
Every social interaction in ATProto is a link! Constellation can tell you who follows @oppi.li on tangled.sh
and what are the replies to a frontpage.fyi
story.
Spacedust extracts links seen in the firehose, and re-emits them directly. It can filter based on link target or even by targetted account.
Every social interaction in ATProto is a link! With Spacedust you can build things like following graphs and notification services for any lexicon.
Slingshot listens to the firehose to pre-caches records and rapidly evict deleted content. It can retain large chunks of the network, so you get fast, authenticated access to records, even for slow/unreliable upstream PDS hosts.
Slingshot also resolves (and of course caches) atproto identities! It only returns bi-directionally verified handles and DIDs, and has a cute resolveMiniDoc
endpoint to make safely working with identities as simple as possible.
(bear with us, we're in still the middle of updating this website!)
UFOs: explore lexicons
Compare hoses: live atproto firehose information
relay3.fr.hose.cam public full-network relay in France
jetstream2.fr.hose.cam public Jetstream instance in Germany
relay.fire.hose.cam public full-network relay in Montreal
jetstream.fire.hose.cam public Jetstream instance in Montreal