Image search for AT Protocol
Powered by perceptual hashing.
Find image reposts on Bluesky, even when re-encoded. Surface the same image across different posts and accounts.
Add image annotations to your app. Let users attach context, fact-checks, and commentary to images themselves.
Track image popularity over time. Understand how images spread across the network and who shares them.
Example use case
Pollen is a browser extension that uses the Nectar API to surface image annotations across Bluesky.
Researchers, news organizations, and you can add more context to what gets posted. See claims, fact-checks, and commentary from people you trust — right on the images you're already looking at.
Developer experience
Calculate a perceptual hash, then search for similar content.
Get a perceptual fingerprint (PFP) for an image. You have three options:
Send the API an ATProto record that includes an image. Nectar resolves it, fetches the blobs, and computes the hash(es).
curl "https://nectar-api.hypha.coop/pfps?\
uri=at://did:plc:xyz/app.bsky.feed.post/abc123"
# Response:
{
"uri": "at://did:plc:xyz/app.bsky.feed.post/abc123",
"blobs": [
{
"cid": "bafyrei...",
"pfp": "pafqtessmb3hk4bn..."
}
]
}
Upload an image directly to get its perceptual fingerprint.
curl -X POST "https://nectar-api.hypha.coop/pfps" \
-F "image=@photo.jpg"
Calculate the hash yourself using a PDQ library, then use the PFP directly with the search endpoints. No API call needed for this step.
# Use any PDQ implementation to compute the hash,
# then encode it as a PFP string:
# "p" + base32(0x01 + 0x20 + <32-byte PDQ hash>)
Search by blob content. Find AT Protocol records whose attached images are perceptually similar. Use this to surface similar content, find reposts, and collate commentary.
curl "https://nectar-api.hypha.coop/search/blobs?\
pfp=pafqtessmb3hk4bn...&\
threshold=31"
{
"matches": [
{
"uri": "at://did:plc:abc/app.bsky.feed.post/123",
"pfp": "pafqtessmb3hk4bn...",
"distance": 0
},
{
"uri": "at://did:plc:def/app.bsky.feed.post/456",
"pfp": "pafqtessmc4jl5co...",
"distance": 3
}
]
}
Find records that contain PFP references as data — like claim records, annotations, or tags. Use this to develop an app that can comment on images themselves, not just posts.
curl "https://nectar-api.hypha.coop/search/pfps?\
pfp=pafqtessmb3hk4bn...&\
wantedCollections=coop.hypha.pollen.*"
{
"matches": [
{
"uri": "at://did:plc:abc/coop.hypha.pollen.claim/tid123",
"pfp": "pafqtessmb3hk4bn...",
"distance": 0
}
]
}
Open ecosystem
The decentralized social networking protocol from Bluesky. Nectar indexes image data across the entire AT Protocol network.
atproto.com
The PFP spec from DASL. A structured identifier for similar media using perceptual hashing algorithms.
dasl.ing
Perceptual hashing algorithm from Meta. Produces a 32-byte hash that's robust to resizing, compression, and re-encoding.
github.com/facebook
Nectar will be available soon. If you're interested in partnering with us, we'd love to hear from you.