Image search for AT Protocol

Find similar images across the ATmosphere

Powered by perceptual hashing.

Context

Track image reposts

Find image reposts on Bluesky, even when re-encoded. Surface the same image across different posts and accounts.

Features

Make annotations

Add image annotations to your app. Let users attach context, fact-checks, and commentary to images themselves.

Social Research

Watch popularity

Track image popularity over time. Understand how images spread across the network and who shares them.

Example use case

Pollen

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

Simple API

Calculate a perceptual hash, then search for similar content.

Calculate image perceptual hash

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>)

Find records with similar images

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
    }
  ]
}

Search by PFP references

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

Built on standards

Get access

Nectar will be available soon. If you're interested in partnering with us, we'd love to hear from you.