{"openapi":"3.1.0","info":{"title":"Keybase Identity API","version":"1.0.0","description":"Live cryptographic social-identity lookup from Keybase — no key, nothing cached. Keybase links a person's identities together with public-key cryptography, so this answers \"who is this account, really, and what else are they?\". The user endpoint takes a Keybase username and returns the profile (full name, location, bio, picture), every verified identity proof — the Twitter, GitHub, Reddit, Hacker News, Mastodon, website and DNS accounts that user has cryptographically proven are theirs — plus their on-file cryptocurrency addresses (Bitcoin, Zcash and more) and PGP key fingerprint: Keybase user \"chris\" resolves to Chris Coyne in Maine, with proven twitter/github/reddit @malgorithms and a Bitcoin address. The lookup endpoint runs the reverse — give it a GitHub, Twitter, Reddit or Hacker News handle, a domain or a PGP fingerprint and it finds the Keybase user who proved it, so a bare GitHub handle resolves to a full verified identity. The proofs endpoint returns just the connected-accounts graph and crypto addresses. This is the identity-verification and social-graph layer for any trust, onboarding, anti-impersonation, social or crypto app — proven links, not claimed ones. Live from Keybase, nothing stored. Distinct from single-platform profile APIs — this is the cross-platform proven-identity graph. 4 endpoints.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/keybase-api","description":"oanor gateway"}],"tags":[{"name":"Identity"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/lookup":{"get":{"operationId":"get_v1_lookup","tags":["Identity"],"summary":"Reverse: find user by identity","description":"","parameters":[{"name":"network","in":"query","required":true,"description":"twitter|github|reddit|hackernews|mastodon|domain|pgp","schema":{"type":"string"},"example":"github"},{"name":"value","in":"query","required":true,"description":"The handle/domain/fingerprint","schema":{"type":"string"},"example":"malgorithms"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":1,"query":{"value":"malgorithms","network":"github"},"matches":[{"uid":"23260c2ce19420f97b58d7d95b68ca00","proofs":[{"url":"https://twitter.com/malgorithms","name":"malgorithms","state":1,"network":"twitter"},{"url":"https://github.com/malgorithms","name":"malgorithms","state":1,"network":"github"},{"url":"https://reddit.com/user/malgorithms","name":"malgorithms","state":1,"network":"reddit"},{"url":"https://news.ycombinator.com/user?id=malgorithms","name":"malgorithms","state":1,"network":"hackernews"},{"url":"http://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"dns"},{"url":"https://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"generic_web_site"}],"location":"Maine","username":"chris","full_name":"Chris Coyne"}]},"meta":{"timestamp":"2026-06-09T11:39:56.040Z","request_id":"dbbe64f8-c3cb-4a67-a0cf-e4f718122c6e"},"status":"ok","message":"Lookup completed successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/proofs":{"get":{"operationId":"get_v1_proofs","tags":["Identity"],"summary":"Connected-accounts graph","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"Keybase username","schema":{"type":"string"},"example":"chris"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":6,"proofs":[{"url":"https://twitter.com/malgorithms","name":"malgorithms","state":1,"network":"twitter"},{"url":"https://github.com/malgorithms","name":"malgorithms","state":1,"network":"github"},{"url":"https://reddit.com/user/malgorithms","name":"malgorithms","state":1,"network":"reddit"},{"url":"https://news.ycombinator.com/user?id=malgorithms","name":"malgorithms","state":1,"network":"hackernews"},{"url":"http://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"dns"},{"url":"https://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"generic_web_site"}],"username":"chris","crypto_addresses":[{"type":"bitcoin","address":"3LKaAcHgUja3B3ZwfJjxVdqWbxd71pE6NK"},{"type":"zcash","address":"t1KiyNNYFy7jEEFsveRJjTaDzE1MtfT2FSx"}]},"meta":{"timestamp":"2026-06-09T11:39:56.333Z","request_id":"a59a9191-00fc-4259-812a-2ed78242868d"},"status":"ok","message":"Proofs retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/user":{"get":{"operationId":"get_v1_user","tags":["Identity"],"summary":"Full Keybase identity","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"Keybase username","schema":{"type":"string"},"example":"chris"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bio":"Previously worked on 🔐 Keybase, 😻OkCupid, 📘SparkNotes, and some random other junk. I love making things.","uid":"23260c2ce19420f97b58d7d95b68ca00","proofs":[{"url":"https://twitter.com/malgorithms","name":"malgorithms","state":1,"network":"twitter"},{"url":"https://github.com/malgorithms","name":"malgorithms","state":1,"network":"github"},{"url":"https://reddit.com/user/malgorithms","name":"malgorithms","state":1,"network":"reddit"},{"url":"https://news.ycombinator.com/user?id=malgorithms","name":"malgorithms","state":1,"network":"hackernews"},{"url":"http://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"dns"},{"url":"https://chriscoyne.com","name":"chriscoyne.com","state":1,"network":"generic_web_site"}],"picture":"https://s3.amazonaws.com/keybase_processed_uploads/4c7cff041ee54c71fd25595898133505_360_360.jpg","location":"Maine","username":"chris","full_name":"Chris Coyne","keybase_url":"https://keybase.io/chris","pgp_fingerprint":"94aa3a5bdbd40ea549cabaf9fbc07d6a97016cb3","crypto_addresses":[{"type":"bitcoin","address":"3LKaAcHgUja3B3ZwfJjxVdqWbxd71pE6NK"},{"type":"zcash","address":"t1KiyNNYFy7jEEFsveRJjTaDzE1MtfT2FSx"}]},"meta":{"timestamp":"2026-06-09T11:39:56.616Z","request_id":"bdb9e3f5-4a39-4a48-947e-f6804ee8891c"},"status":"ok","message":"User retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"Keybase public API (live)","service":"keybase-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/user":"A Keybase user's full identity (username=chris): profile, proofs, crypto addresses, PGP.","GET /v1/lookup":"Reverse: find the Keybase user behind an identity (network=github&value=malgorithms, or github=malgorithms). Networks: twitter, github, reddit, hackernews, mastodon, domain, pgp.","GET /v1/proofs":"Just the connected-accounts graph + crypto addresses (username=chris)."},"description":"Live cryptographic social-identity lookup from Keybase: a username resolves to its profile (full name, location, bio, picture), every verified identity proof (Twitter, GitHub, Reddit, Hacker News, Mastodon, website, DNS), cryptocurrency addresses and PGP fingerprint. Reverse-lookup finds the Keybase user behind a GitHub/Twitter/Reddit/Hacker-News handle, a domain or a PGP fingerprint. Live, no key, nothing stored. Distinct from single-platform profile APIs — this is the cross-platform proven-identity graph.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-09T11:39:56.894Z","request_id":"d75431b7-4636-46a9-8daa-13c5b4e16a95"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":13000,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":550,"monthly_call_quota":160000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1550,"monthly_call_quota":680000,"rps_limit":15,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":3800,"monthly_call_quota":3400000,"rps_limit":30,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/keybase-api"}