{"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"},{"name":"Discovery"}],"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 the Keybase user behind an identity","description":"","parameters":[{"name":"network","in":"query","required":false,"description":"twitter/github/reddit/hackernews/mastodon/domain/pgp","schema":{"type":"string"},"example":"github"},{"name":"value","in":"query","required":false,"description":"The handle/domain/fingerprint to resolve","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":"A user's proven-accounts graph + crypto addresses","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":"A Keybase user's full 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":"Service metadata","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"}}}},"/v1/search":{"get":{"operationId":"get_v1_search","tags":["Discovery"],"summary":"Fuzzy-search Keybase users by name/handle","description":"","parameters":[{"name":"q","in":"query","required":true,"description":"Name or keyword","schema":{"type":"string"},"example":"chris"},{"name":"limit","in":"query","required":false,"description":"Max results (1-30)","schema":{"type":"string"},"example":"15"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Keybase users matching a name or handle — each with its username (use it with /v1/user or /v1/proofs), full name and the social accounts (github, twitter, reddit, hackernews…) they have cryptographically proven. The discovery primitive: find Keybase usernames by fuzzy search. Pass q (required) and limit (1-30).","count":15,"query":"chris","users":[{"services":{"github":"malgorithms","reddit":"malgorithms","twitter":"malgorithms","hackernews":"malgorithms"},"username":"chris","full_name":"Chris Coyne","keybase_url":"https://keybase.io/chris"},{"services":{"twitter":"cmcmstone"},"username":"chris_","full_name":"Chris McMahon Stone","keybase_url":"https://keybase.io/chris_"},{"services":[],"username":"chris0","keybase_url":"https://keybase.io/chris0"},{"services":[],"username":"chris1","keybase_url":"https://keybase.io/chris1"},{"services":[],"username":"chris2","keybase_url":"https://keybase.io/chris2"},{"services":[],"username":"chris3","full_name":"Chris L","keybase_url":"https://keybase.io/chris3"},{"services":[],"username":"chris4","full_name":"Christopher Silva","keybase_url":"https://keybase.io/chris4"},{"services":[],"username":"chris7","keybase_url":"https://keybase.io/chris7"},{"services":[],"username":"chrisa","keybase_url":"https://keybase.io/chrisa"},{"services":{"twitter":"chris_cole"},"username":"chrisc","full_name":"Chris Cole","keybase_url":"https://keybase.io/chrisc"},{"services":{"github":"lycrid","reddit":"lycrid"},"username":"chrisd","full_name":"Eucharist","keybase_url":"https://keybase.io/chrisd"},{"services":{"github":"chrisforbes","reddit":"chrisforbes","twitter":"ijw_chrisf"},"username":"chrisf","full_name":"Chris Forbes","keybase_url":"https://keybase.io/chrisf"},{"services":{"github":"cgervais"},"username":"chrisg","full_name":"Chris Gervais","keybase_url":"https://keybase.io/chrisg"},{"services":{"github":"chrishinde","reddit":"chrishinde","twitter":"chaosofchris"},"username":"chrish","full_name":"Christopher Hindefjord","keybase_url":"https://keybase.io/chrish"},{"services":[],"username":"chrisu","keybase_url":"https://keybase.io/chrisu"}],"source":"Keybase public API (keybase.io/_/api/1.0/user/user_search.json), keyless"},"meta":{"timestamp":"2026-06-13T14:09:17.021Z","request_id":"e8dde43b-265b-461c-8941-83c25adfe923"},"status":"ok","message":"Search results 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"}}}}},"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"}