When Did They Join Bluesky?

Discover when anyone joined the network

Enter a Bluesky handle without the @ symbol

Account Found!

IndieGameStudio's avatar
Handle @indiegamestudio.bsky.social View profile on Bluesky
Display Name IndieGameStudio
Joined Bluesky
Badges Earned
Veteran

Build With Our API Free · No key

One endpoint, one number: how many days ago did this account join Bluesky? A brand-new account returns 0. If you run a bot, a client, a feed generator or a community tool, this is the cheapest way to tell a day-old newcomer apart from a 2023 veteran — without writing your own PLC directory crawler.

GET https://www.inquizitriv.com/when-did-they-join/api/days/?handle=alice.bsky.social

Generating a client? The OpenAPI 3.0 schema describes every field, error code and header, so openapi-typescript, openapi-generator and similar tools will build a fully typed client for you. Every API response also advertises it in a Link: <…>; rel="service-desc" header.

Why you’d want this

Onboard people at the right moment

Check a new follower once. If days_since_joined is 7 or less, they are still finding their feet — that is the window where a welcome DM, a starter pack or a “here’s how this works” reply actually helps instead of annoying someone who has been here two years.

Adoption stats you can chart

Run it across your followers, your feed’s contributors or your community roster and you have a real signup-cohort breakdown: how much of your audience arrived this week, this month, or during the last migration wave.

Trust and spam signals

Account age is a useful input for rate limits, moderation queues, giveaway eligibility and “new here” badges. A day-old account posting a hundred links reads very differently from a three-year-old one doing the same.

Example response

$ curl "https://www.inquizitriv.com/when-did-they-join/api/days/?handle=alice.bsky.social"

{
  "error": false,
  "handle": "alice.bsky.social",
  "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
  "days_since_joined": 3,
  "joined_at": "2026-08-26T14:02:11.000Z",
  "join_date": "August 26, 2026",
  "join_date_source": "plc",
  "is_new_account": true,
  "new_account_window_days": 7,
  "checked_at": "2026-08-29T09:15:00+00:00"
}

Parameters

Name What it does
handle Required. The Bluesky handle to look up, with or without the leading @. Example: alice.bsky.social.
window Optional, 1–365, defaults to 7. Sets the threshold used for the is_new_account flag, so you can ask “joined in the last 30 days?” without doing the arithmetic yourself.

Errors

# Every failure carries error: true and a stable error_code.
400  missing_handle, invalid_handle, invalid_window
404  not_found              — handle does not resolve
422  join_date_unavailable  — did:web account, no PLC record
429  rate_limited           — see Retry-After header

No API key, no signup, CORS open to every origin, so you can call it straight from a browser extension or a client-side dashboard. The join date comes from the PLC directory audit log — the account’s real creation record, not the profile timestamp that shifts whenever someone edits their bio. Responses are cached and the day count is recomputed on every request, so an account never gets stuck one day behind. Please stay under 60 requests per minute and cache what you fetch: a join date only changes once, ever. Questions or a project to show off? @whendidtheyjoin.bsky.social.