{"openapi":"3.2.0","info":{"title":"OSINT Lookups API","description":"OSINT Resolve usernames, phone numbers, emails, IP addresses, Bitcoin wallets and Discord invites to their public profile data in one JSON call","version":"1.0.0"},"servers":[{"url":"https://osint-lookups.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Social accounts"},{"name":"Discord"},{"name":"Phone & email"},{"name":"Network & crypto"}],"x-agent-commerce":{"catalog_url":"https://osint-lookups.jojapi.net/_jojapi/agent/plans","discovery_url":"https://osint-lookups.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/osint-lookups","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/v1/tiktok-username/{handle}":{"get":{"operationId":"get_v1_tiktok_username_handle","summary":"TikTok username lookup","description":"Resolve a TikTok handle to its public profile, avatar, verification and follower, like and video counts.","tags":["Social accounts"],"responses":{"200":{"description":"Public profile (exists=false when the handle is unregistered)","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","description":"The handle that was looked up"},"url":{"type":"string","format":"uri"},"resolvedUrl":{"type":"string","format":"uri","description":"Final URL after redirects"},"exists":{"type":"boolean"},"userId":{"type":"string","nullable":true,"description":"Permanent numeric ID; survives handle changes"},"uniqueId":{"type":"string","nullable":true,"description":"Current handle"},"nickname":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true,"format":"uri"},"signature":{"type":"string","nullable":true,"description":"Bio"},"verified":{"type":"boolean","nullable":true},"privateAccount":{"type":"boolean","nullable":true},"region":{"type":"string","nullable":true},"createTime":{"type":"integer","nullable":true,"description":"Account creation time (Unix seconds), when public"},"followerCount":{"type":"integer","nullable":true},"followingCount":{"type":"integer","nullable":true},"heartCount":{"type":"integer","nullable":true,"description":"Total likes received"},"videoCount":{"type":"integer","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"siteName":{"type":"string","nullable":true},"statusCode":{"type":"integer","nullable":true}}},"example":{"username":"tiktok","url":"https://www.tiktok.com/@tiktok","resolvedUrl":"https://www.tiktok.com/@tiktok","exists":true,"userId":"107955","uniqueId":"tiktok","nickname":"TikTok","avatar":"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=6a0c1b57&x-expires=1790532000&x-signature=KrI4qxqHygqS8VJSo5jZ%2FHHLtEQ%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8","signature":"Your next discovery is waiting on TikTok.","verified":true,"privateAccount":false,"region":null,"createTime":1425144149,"followerCount":95900000,"followingCount":1,"heartCount":464600000,"videoCount":1505,"title":"TikTok on TikTok","description":"@tiktok 95.9m Followers, 1 Following, 464.6m Likes - Watch awesome short videos created by TikTok","siteName":"TikTok","statusCode":0}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"handle","in":"path","description":"Handle, with or without the @","required":true,"schema":{"type":"string","example":"tiktok"}}]}},"/v1/snapchat-username/{handle}":{"get":{"operationId":"get_v1_snapchat_username_handle","summary":"Snapchat username lookup","description":"Check whether a Snapchat username exists and read its public profile, Bitmoji and Snapcode.","tags":["Social accounts"],"responses":{"200":{"description":"Account (exists=false when unregistered)","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"url":{"type":"string","format":"uri"},"resolvedUrl":{"type":"string","format":"uri"},"exists":{"type":"boolean"},"accountType":{"type":"string","nullable":true,"enum":["public_profile","personal"]},"displayName":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"subscriberCount":{"type":"integer","nullable":true},"website":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"subcategory":{"type":"string","nullable":true},"badge":{"type":"integer","nullable":true},"profilePicture":{"type":"string","nullable":true,"format":"uri"},"heroImage":{"type":"string","nullable":true,"format":"uri"},"bitmoji":{"type":"string","nullable":true,"format":"uri"},"bitmojiBackground":{"type":"string","nullable":true,"format":"uri"},"snapcode":{"type":"string","nullable":true,"format":"uri"},"userId":{"type":"string","nullable":true},"businessProfileId":{"type":"string","nullable":true},"profileCreatedMs":{"type":"integer","nullable":true,"description":"Unix milliseconds"},"profileUpdatedMs":{"type":"integer","nullable":true,"description":"Unix milliseconds"},"hasStory":{"type":"boolean","nullable":true},"hasCuratedHighlights":{"type":"boolean","nullable":true},"hasSpotlightHighlights":{"type":"boolean","nullable":true},"relatedAccounts":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"displayName":{"type":"string","nullable":true}}}},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}}},"example":{"username":"djkhaled305","url":"https://www.snapchat.com/@djkhaled305","resolvedUrl":"https://www.snapchat.com/@djkhaled305","exists":true,"accountType":"public_profile","displayName":"DJ Khaled","bio":"FATHER | CEO | MOGUL","subscriberCount":11445200,"website":null,"address":null,"category":"people","subcategory":"artist","badge":1,"profilePicture":"https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvQ2lTVUFMWnBQRHFRdFFyMTBzZW4yP2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,90_FMjpeg","heroImage":"https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvUmdnNTJUNTR2WUZCWG5HRVRFU1pKP2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,1080_FMjpeg","bitmoji":null,"bitmojiBackground":null,"snapcode":"https://app.snapchat.com/web/deeplink/snapcode?username=djkhaled305&type=SVG&bitmoji=enable","userId":"b163bf76-e65f-495f-9a2a-5b8c8bf538b2","businessProfileId":"940e0baa-25ea-436b-8cdc-d0104a857f41","profileCreatedMs":1558021610483,"profileUpdatedMs":1790340864663,"hasStory":false,"hasCuratedHighlights":false,"hasSpotlightHighlights":true,"relatedAccounts":[{"username":"richforever","displayName":"FerrariFatboy 🔥"},{"username":"lilswag79","displayName":"Kevin Hart"}],"title":"DJ Khaled (@djkhaled305) | Snapchat Stories, Spotlight & Lenses","description":"DJ Khaled is on Snapchat! (@djkhaled305) | 11.4m Subscribers | FATHER | CEO | MOGUL | Last updated: 09/25/2026"}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"handle","in":"path","description":"Username","required":true,"schema":{"type":"string","example":"djkhaled305"}}]}},"/v1/telegram-username/{handle}":{"get":{"operationId":"get_v1_telegram_username_handle","summary":"Telegram username lookup","description":"Whether a Telegram @username exists, and whether it is a user, bot, channel or group, with its public name, bio, photo, audience size and Telegram's scam/fake flags.","tags":["Social accounts"],"responses":{"200":{"description":"Account (exists=false when nothing public is at the username)","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"url":{"type":"string","format":"uri"},"exists":{"type":"boolean"},"type":{"type":"string","nullable":true,"enum":["user","bot","channel","group"]},"displayName":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"photo":{"type":"string","nullable":true,"format":"uri"},"verified":{"type":"boolean","nullable":true},"scam":{"type":"boolean","nullable":true,"description":"Flagged as a scam by Telegram"},"fake":{"type":"boolean","nullable":true,"description":"Flagged as fake by Telegram"},"subscriberCount":{"type":"integer","nullable":true,"description":"Channels"},"memberCount":{"type":"integer","nullable":true,"description":"Groups"},"onlineCount":{"type":"integer","nullable":true},"monthlyUsers":{"type":"integer","nullable":true,"description":"Bots"},"hasPublicPreview":{"type":"boolean","nullable":true}}},"example":{"username":"durov","url":"https://t.me/durov","exists":true,"type":"channel","displayName":"Pavel Durov","bio":"Founder of Telegram.","photo":"https://cdn4.telesco.pe/file/GKffbz915d46O5LCS41kk6Fmg5v5lwCUaVZQufkjGbZTEnSEM6wubbJQRCFh1LzoUP2OkhqPu4tujphMO_WmQWlz1ttgADisI29gWtrZpoK2YYivoqUwO1DuS4vT-3Yj5DlW7rimoLxI10Z-jRcKOoRcA4n1mIzSBfWkmjFJpOvqxxxm8iCVlnLLC8htO4baAhbvhpK6iha46sVuOkfcUL6Bsu9xzV34VUKii-fvEyE-wVlXYpsQkxiyx3TKDJTP3_s7D2YlpKQWseAVo_pheH1FV9GcwOZNITxcRV1AsfefZ2f05RhTYKGWOUr0AMD96FnzBhVXSLNwVyb_41vrlg.jpg","verified":true,"scam":false,"fake":false,"subscriberCount":10639672,"memberCount":null,"onlineCount":null,"monthlyUsers":null,"hasPublicPreview":true}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"handle","in":"path","description":"Username without the @","required":true,"schema":{"type":"string","example":"durov"}}]}},"/v1/github/{username}":{"get":{"operationId":"get_v1_github_username","summary":"GitHub user lookup","description":"Public footprint of a GitHub account: profile, top repositories, languages, organizations, published SSH and GPG keys, and author emails recorded in public commits. Only data GitHub itself publishes.","tags":["Social accounts"],"responses":{"200":{"description":"Public GitHub profile","content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"id":{"type":"integer","nullable":true},"name":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true,"format":"uri"},"bio":{"type":"string","nullable":true},"company":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"blog":{"type":"string","nullable":true},"twitterUsername":{"type":"string","nullable":true},"publicEmail":{"type":"string","nullable":true},"hireable":{"type":"boolean","nullable":true},"accountType":{"type":"string","description":"User or Organization"},"htmlUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string","nullable":true,"format":"date-time"},"updatedAt":{"type":"string","nullable":true,"format":"date-time"},"accountAgeYears":{"type":"number","nullable":true},"followers":{"type":"integer"},"following":{"type":"integer"},"publicRepos":{"type":"integer"},"publicGists":{"type":"integer"},"totalStars":{"type":"integer"},"totalForks":{"type":"integer"},"topRepos":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"stars":{"type":"integer"},"forks":{"type":"integer"},"language":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"url":{"type":"string","format":"uri"},"updatedAt":{"type":"string","nullable":true,"format":"date-time"},"fork":{"type":"boolean"},"archived":{"type":"boolean"}}}},"languages":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"count":{"type":"integer"},"percentage":{"type":"number"}}}},"orgs":{"type":"array","items":{"type":"object","properties":{"login":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}}}},"sshKeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"key":{"type":"string"}}}},"gpgKeys":{"type":"array","items":{"type":"object","properties":{"keyId":{"type":"string","nullable":true},"emails":{"type":"array","items":{"type":"string"}},"canSign":{"type":"boolean"}}}},"commitEmails":{"type":"array","description":"Author emails from public commits (GitHub noreply addresses excluded)","items":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"count":{"type":"integer"},"repos":{"type":"array","items":{"type":"string"}},"source":{"type":"string","enum":["public_events","commit_history"]}}}},"activity":{"type":"object","properties":{"hourlyUtc":{"type":"array","items":{"type":"integer"},"description":"24 buckets of recent public events by UTC hour"},"weekday":{"type":"array","items":{"type":"integer"},"description":"7 buckets, Sunday first"},"eventTypes":{"type":"object","additionalProperties":{"type":"integer"}},"recentEvents":{"type":"integer"}}}}},"example":{"login":"torvalds","id":1024025,"name":"Linus Torvalds","avatarUrl":"https://avatars.githubusercontent.com/u/1024025?v=4","bio":null,"company":"Linux Foundation","location":"Portland, OR","blog":null,"twitterUsername":null,"publicEmail":null,"hireable":null,"accountType":"User","htmlUrl":"https://github.com/torvalds","createdAt":"2011-09-03T15:26:22Z","updatedAt":"2026-07-21T17:42:26Z","accountAgeYears":15.1,"followers":325171,"following":0,"publicRepos":12,"publicGists":1,"totalStars":263418,"totalForks":66879,"topRepos":[{"name":"linux","stars":250142,"forks":65722,"language":"C","description":"Linux kernel source tree","url":"https://github.com/torvalds/linux","updatedAt":"2026-09-25T18:43:39Z","fork":false,"archived":false},{"name":"AudioNoise","stars":4503,"forks":222,"language":"C","description":"Random digital audio effects","url":"https://github.com/torvalds/AudioNoise","updatedAt":"2026-09-25T15:56:25Z","fork":false,"archived":false}],"languages":[{"name":"C","count":10,"percentage":83.3},{"name":"OpenSCAD","count":1,"percentage":8.3}],"orgs":[],"sshKeys":[{"id":1306333,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF"}],"gpgKeys":[],"commitEmails":[{"email":"torvalds@linux-foundation.org","name":"Linus Torvalds","count":220,"repos":["AudioNoise","GuitarPedal"],"source":"commit_history"}],"activity":{"hourlyUtc":[3,3],"weekday":[7,13],"eventTypes":{"PushEvent":87,"IssueCommentEvent":7,"PullRequestEvent":4,"IssuesEvent":2},"recentEvents":100}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"404":{"description":"No GitHub account with that username","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"username","in":"path","description":"GitHub login; a leading @ is stripped","required":true,"schema":{"type":"string","example":"torvalds"}}]}},"/v1/paypal-username/{handle}":{"get":{"operationId":"get_v1_paypal_username_handle","summary":"PayPal.me username lookup","description":"Resolve a paypal.me handle to the public profile page behind it — display name, first and last name, profile and cover photo.","tags":["Social accounts"],"responses":{"200":{"description":"Public profile (exists=false when unregistered)","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"url":{"type":"string","format":"uri"},"resolvedUrl":{"type":"string","format":"uri"},"exists":{"type":"boolean"},"displayName":{"type":"string","nullable":true},"givenName":{"type":"string","nullable":true},"familyName":{"type":"string","nullable":true},"profilePicture":{"type":"string","nullable":true,"format":"uri"},"coverPhoto":{"type":"string","nullable":true,"format":"uri"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"siteName":{"type":"string","nullable":true},"isRedirectTreatment":{"type":"boolean","nullable":true}}},"example":{"username":"paypal","url":"https://paypal.me/paypal","resolvedUrl":"https://www.paypal.com/paypalme/paypal","exists":false,"displayName":null,"givenName":null,"familyName":null,"profilePicture":null,"coverPhoto":null,"title":"Get your very own PayPal.Me link","description":"Post it. Text it. Tag it. Share it. Shout it. And let your friends pay you back in a tap or two. Grab your PayPal.Me link today.","siteName":"PayPal.Me","isRedirectTreatment":true}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"handle","in":"path","description":"paypal.me handle","required":true,"schema":{"type":"string","example":"paypal"}}]}},"/v1/discord/{query}":{"get":{"operationId":"get_v1_discord_query","summary":"Discord invite or ID lookup","description":"An invite code returns the server record, member counts and the account that created the invite, plus the server's widget and tag when published. A numeric ID is classified: a bot application returns its public record, a server ID with a widget or Discovery listing returns the server, and a person's ID returns the creation date decoded from the ID (exists=null).","tags":["Discord"],"responses":{"200":{"description":"Server, application or account record","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"kind":{"type":"string","nullable":true,"enum":["invite","user","guild"]},"exists":{"type":"boolean","nullable":true,"description":"null when it can't be determined (a person's ID)"},"url":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"format":"date-time","description":"Decoded from the snowflake ID"},"inviteCode":{"type":"string","nullable":true},"guildId":{"type":"string","nullable":true},"guildName":{"type":"string","nullable":true},"guildDescription":{"type":"string","nullable":true},"guildIcon":{"type":"string","nullable":true},"guildBanner":{"type":"string","nullable":true},"guildSplash":{"type":"string","nullable":true},"vanityUrlCode":{"type":"string","nullable":true},"verificationLevel":{"type":"string","nullable":true},"nsfwLevel":{"type":"string","nullable":true},"premiumTier":{"type":"integer","nullable":true},"premiumSubscriptionCount":{"type":"integer","nullable":true},"approximateMemberCount":{"type":"integer","nullable":true},"approximatePresenceCount":{"type":"integer","nullable":true},"features":{"type":"array","nullable":true,"items":{"type":"string"}},"channelName":{"type":"string","nullable":true},"inviterUsername":{"type":"string","nullable":true,"description":"Account that created the invite"},"inviterId":{"type":"string","nullable":true},"inviterDisplayName":{"type":"string","nullable":true},"inviterAvatar":{"type":"string","nullable":true},"userId":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"globalName":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true},"banner":{"type":"string","nullable":true},"accentColor":{"type":"integer","nullable":true},"publicFlags":{"type":"integer","nullable":true},"isBot":{"type":"boolean","nullable":true},"workerId":{"type":"integer","nullable":true},"processId":{"type":"integer","nullable":true},"increment":{"type":"integer","nullable":true},"widget":{"type":"object","nullable":true,"properties":{"guildId":{"type":"string","nullable":true},"guildName":{"type":"string","nullable":true},"presenceCount":{"type":"integer","nullable":true},"instantInvite":{"type":"string","nullable":true},"channels":{"type":"array","items":{"type":"string"}},"membersSampled":{"type":"integer"},"statusBreakdown":{"type":"object","nullable":true,"additionalProperties":{"type":"integer"}}}},"application":{"type":"object","nullable":true,"properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"icon":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"isVerified":{"type":"boolean","nullable":true},"isMonetized":{"type":"boolean","nullable":true},"isDiscoverable":{"type":"boolean","nullable":true},"botPublic":{"type":"boolean","nullable":true},"termsOfServiceUrl":{"type":"string","nullable":true},"privacyPolicyUrl":{"type":"string","nullable":true},"supportGuildId":{"type":"string","nullable":true},"installScopes":{"type":"array","items":{"type":"string"}},"installPermissions":{"type":"string","nullable":true},"assets":{"type":"array","items":{"type":"string"}}}},"discovery":{"type":"object","nullable":true,"properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"icon":{"type":"string","nullable":true},"memberCount":{"type":"integer","nullable":true},"onlineCount":{"type":"integer","nullable":true},"boostCount":{"type":"integer","nullable":true},"vanityUrlCode":{"type":"string","nullable":true},"invite":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"listingUrl":{"type":"string"}}},"serverTag":{"type":"string","nullable":true,"description":"Tag members of the server wear beside their name"},"tagBadge":{"type":"integer","nullable":true},"tagBadgeHash":{"type":"string","nullable":true},"lanyard":{"type":"object","nullable":true,"description":"Live presence, for accounts that publish it","properties":{"username":{"type":"string"},"globalName":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true},"isBot":{"type":"boolean"},"publicFlags":{"type":"integer","nullable":true},"nitroHint":{"type":"boolean"},"hasDecoration":{"type":"boolean"},"serverTag":{"type":"string","nullable":true},"serverTagGuildId":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"playing":{"type":"string","nullable":true},"listeningToSpotify":{"type":"boolean"},"detail":{"type":"string"}}},"gameApplicationIds":{"type":"array","nullable":true,"items":{"type":"string"}},"visibility":{"type":"integer","nullable":true},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the invite expires"},"inviteType":{"type":"integer","nullable":true},"inviteFlags":{"type":"integer","nullable":true},"detail":{"type":"string","nullable":true,"description":"Plain-English note about the result"}}},"example":{"query":"discord-developers","kind":"invite","exists":true,"url":"https://discord.gg/discord-developers","createdAt":"2019-08-20T17:34:31.544000+00:00","inviteCode":"discord-developers","guildId":"613425648685547541","guildName":"Discord Developers","guildDescription":"Welcome to Discord Developers (DDevs), the official home for the community of developers building apps, bots, games, and more with Discord APIs.","guildIcon":"https://cdn.discordapp.com/icons/613425648685547541/a_1d18823294be0ccfbcdec090c8ffcc0d.gif?size=512","guildBanner":"https://cdn.discordapp.com/banners/613425648685547541/f02442ea4d3d218bbeb15ce12cff0387.png?size=1024","guildSplash":"https://cdn.discordapp.com/splashes/613425648685547541/56394bca8b4f60282ea833e8703b5fcf.png?size=1024","vanityUrlCode":"discord-developers","verificationLevel":"High","nsfwLevel":"Default","premiumTier":3,"premiumSubscriptionCount":54,"approximateMemberCount":304795,"approximatePresenceCount":80054,"features":["GUILD_TAGS","AUTOMOD_TRIGGER_KEYWORD_FILTER"],"channelName":"rules","inviterUsername":null,"inviterId":null,"inviterDisplayName":null,"inviterAvatar":null,"userId":null,"username":null,"globalName":null,"avatar":null,"banner":null,"accentColor":null,"publicFlags":null,"isBot":null,"workerId":null,"processId":null,"increment":null,"widget":null,"application":null,"discovery":null,"serverTag":"CODE","tagBadge":6,"tagBadgeHash":"fabe3300337b6abfa12443ade32c4ceb","lanyard":null,"gameApplicationIds":[],"visibility":1,"expiresAt":null,"inviteType":0,"inviteFlags":2,"detail":null}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"404":{"description":"The invite does not exist or has expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"query","in":"path","description":"Invite code, or a numeric user, bot or server ID","required":true,"schema":{"type":"string","example":"discord-developers"}}]}},"/v1/discord-search/{keyword}":{"get":{"operationId":"get_v1_discord_search_keyword","summary":"Discord server search by name","description":"Find public Discord servers by name and get their guild IDs, member counts, tags and invites. Each page is a separate request.","tags":["Discord"],"responses":{"200":{"description":"Matching servers","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"matchedTerms":{"type":"array","items":{"type":"string"}},"source":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"ok":{"type":"boolean"},"page":{"type":"integer"},"hasMore":{"type":"boolean","description":"Whether the next page is worth requesting"},"count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"guildId":{"type":"string"},"name":{"type":"string","nullable":true},"icon":{"type":"string","nullable":true},"source":{"type":"string"},"memberCount":{"type":"integer","nullable":true},"boostCount":{"type":"integer","nullable":true},"vanityUrlCode":{"type":"string","nullable":true},"invite":{"type":"string","nullable":true},"onlineCount":{"type":"integer","nullable":true},"bumpedAt":{"type":"string","nullable":true,"format":"date-time"},"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string","nullable":true},"listingUrl":{"type":"string"}}}}}},"example":{"query":"osint","matchedTerms":["osint"],"source":"discord","sources":["discord","disboard"],"ok":true,"page":1,"hasMore":true,"count":24,"results":[{"guildId":"518979695702704132","name":"Project Owl: The OSINT Community","icon":"https://cdn.discordapp.com/icons/518979695702704132/a_40a5f688ed978cdd4e78296de354f117.png?size=256","source":"discord","memberCount":51063,"boostCount":68,"vanityUrlCode":"projectowl","invite":"https://discord.gg/projectowl","onlineCount":6766,"tags":["Analysis","Conflict"],"description":"A discord community for \"Open Source Intelligence\" and world wide event monitoring.","listingUrl":"https://discord.com/servers/518979695702704132"},{"guildId":"1108138416660557926","name":"Faytuks News [OSINT]","icon":"https://cdn.discordapp.com/icons/1108138416660557926/a_3fce4b56b69f79392605a8ac7f73890c.png?size=256","source":"discord","memberCount":24056,"boostCount":73,"vanityUrlCode":"faytuks","invite":"https://discord.gg/faytuks","onlineCount":4504,"tags":["community","custom"],"description":"(OSINT) Discord server dedicated to covering breaking news from all around the world.","listingUrl":"https://discord.com/servers/1108138416660557926"}]}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"keyword","in":"path","description":"Server name, or part of one","required":true,"schema":{"type":"string","example":"osint"}},{"name":"page","in":"query","description":"Results page; pages are disjoint","required":false,"schema":{"type":"integer","default":1}}]}},"/v1/discord-username/{name}":{"get":{"operationId":"get_v1_discord_username_name","summary":"Discord username check","description":"Whether a Discord username is registered (from Discord's own check), plus any accounts with that username seen by this service — invite creators and bot records. Discord publishes no way to turn a username into an account ID, so a registered username with no known account is normal.","tags":["Discord"],"responses":{"200":{"description":"Availability plus accounts on file","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"taken":{"type":"boolean","nullable":true,"description":"Whether Discord reports the username as registered"},"detail":{"type":"string"},"count":{"type":"integer","description":"Number of accounts on file with this username"},"known":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"userId":{"type":"string"},"displayName":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true},"isBot":{"type":"boolean","nullable":true},"source":{"type":"string","enum":["invite","application","lanyard"]},"sourceGuildId":{"type":"string","nullable":true},"sourceGuildName":{"type":"string","nullable":true},"firstSeen":{"type":"string","format":"date-time"},"lastSeen":{"type":"string","format":"date-time"},"timesSeen":{"type":"integer"}}}},"note":{"type":"string","nullable":true}}},"example":{"username":"someone","taken":true,"detail":"This username is registered on Discord. Discord publishes no way to turn a username into an account ID.","count":0,"known":[],"note":"Discord confirms the username is registered but publishes no way to resolve it to an account ID. This directory has not seen it yet — it is built from invite creators and bot records passing through this API."}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"503":{"description":"The username check is temporarily unavailable. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"parameters":[{"name":"name","in":"path","description":"Username, with or without @","required":true,"schema":{"type":"string","example":"someone"}}]}},"/v1/discord-tag/{tag}":{"get":{"operationId":"get_v1_discord_tag_tag","summary":"Discord server tag lookup","description":"Which servers wear a given member tag (the short tag shown beside a name). Answered from a directory of servers observed through this API; an empty result means the tag hasn't been seen yet, not that no server wears it.","tags":["Discord"],"responses":{"200":{"description":"Servers observed with the tag","content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"type":"string"},"count":{"type":"integer"},"detail":{"type":"string","nullable":true},"results":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string"},"guildId":{"type":"string"},"guildName":{"type":"string","nullable":true},"memberCount":{"type":"integer","nullable":true},"vanityUrlCode":{"type":"string","nullable":true},"invite":{"type":"string","nullable":true},"badge":{"type":"integer","nullable":true},"badgeUrl":{"type":"string","nullable":true},"firstSeen":{"type":"string","format":"date-time"},"lastSeen":{"type":"string","format":"date-time"},"timesSeen":{"type":"integer"}}}}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"503":{"description":"The tag directory is temporarily unavailable. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"parameters":[{"name":"tag","in":"path","description":"The tag","required":true,"schema":{"type":"string","example":"OWL"}}]}},"/v1/phone/{number}":{"get":{"operationId":"get_v1_phone_number","summary":"Phone number validation and carrier lookup","description":"Validate a number against its country's numbering plan: valid or not (and why), line type (mobile, landline, VoIP, toll-free, premium rate…), the carrier the range was allocated to, country, area and time zones, and every standard format. An invalid number is a 200 with valid=false.","tags":["Phone & email"],"responses":{"200":{"description":"Numbering-plan profile","content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"The digits that were looked up"},"valid":{"type":"boolean","description":"The digits form a real number under the country's plan. Not proof it is in use."},"possible":{"type":"boolean","description":"The length could work for the country code"},"invalidReason":{"type":"string","nullable":true,"description":"e.g. too_short, too_long, invalid_country_code, invalid_length"},"invalidDetail":{"type":"string","nullable":true},"e164":{"type":"string","example":"+442079460000"},"international":{"type":"string"},"national":{"type":"string"},"rfc3966":{"type":"string"},"countryCode":{"type":"integer"},"region":{"type":"string","nullable":true,"description":"ISO 3166-1 alpha-2"},"country":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"description":"City or area for geographic ranges"},"lineType":{"type":"string","enum":["mobile","fixed_line","fixed_line_or_mobile","toll_free","premium_rate","shared_cost","voip","personal_number","pager","uan","voicemail","unknown"]},"lineTypeLabel":{"type":"string"},"carrier":{"type":"string","nullable":true,"description":"Operator the number range was allocated to (not a live network query). Null in North America."},"timeZones":{"type":"array","items":{"type":"string"}},"flags":{"type":"object","properties":{"mobile":{"type":"boolean"},"fixedLine":{"type":"boolean"},"voip":{"type":"boolean"},"tollFree":{"type":"boolean"},"premiumRate":{"type":"boolean"},"sharedCost":{"type":"boolean"},"pager":{"type":"boolean"}}},"notes":{"type":"array","items":{"type":"string"},"description":"Caveats that belong with the result"}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}}},"parameters":[{"name":"number","in":"path","description":"International format, digits only, country code first (no + or leading zeros)","required":true,"schema":{"type":"string","example":"442079460000"}}]}},"/v1/whatsapp/{number}":{"get":{"operationId":"get_v1_whatsapp_number","summary":"WhatsApp Business number lookup","description":"Whether a phone number has a public WhatsApp Business profile, with its business name, photo and official-business badge. Personal accounts are never exposed.","tags":["Phone & email"],"responses":{"200":{"description":"Business profile (businessProfile=false when none)","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string"},"e164":{"type":"string"},"url":{"type":"string","format":"uri"},"businessProfile":{"type":"boolean","description":"false for personal and unregistered numbers alike"},"displayName":{"type":"string","nullable":true},"photo":{"type":"string","nullable":true,"format":"uri"},"accountLabel":{"type":"string","nullable":true},"officialBusiness":{"type":"boolean","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"number","in":"path","description":"International format, digits only, country code first","required":true,"schema":{"type":"string","example":"14155238886"}}]}},"/v1/gravatar/{email}":{"get":{"operationId":"get_v1_gravatar_email","summary":"Email to Gravatar lookup","description":"The public Gravatar profile an email's owner published — avatar, name, location, job title and verified linked accounts. Works for any address, Gmail included.","tags":["Phone & email"],"responses":{"200":{"description":"Gravatar profile, or hasGravatar=false","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"hasGravatar":{"type":"boolean","nullable":true},"avatar":{"type":"string","nullable":true,"format":"uri"},"displayName":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"pronouns":{"type":"string","nullable":true},"jobTitle":{"type":"string","nullable":true},"verifiedAccounts":{"type":"array","items":{"type":"object","properties":{"service":{"type":"string","nullable":true},"url":{"type":"string"}}}},"detail":{"type":"string","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"email","in":"path","description":"Email address","required":true,"schema":{"type":"string","example":"support@gravatar.com"}}]}},"/v1/ip/{address}":{"get":{"operationId":"get_v1_ip_address","summary":"IP address lookup","description":"Network owner, range and country from RDAP, plus open ports, detected software, hostnames and known CVEs from public internet-scan data. Nothing is sent to the address.","tags":["Network & crypto"],"responses":{"200":{"description":"Profile of the address","content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string"},"version":{"type":"integer","enum":[4,6]},"isPublic":{"type":"boolean","description":"false for private, loopback, reserved and documentation ranges"},"indexed":{"type":"boolean","description":"Whether public scan data exists for the address"},"ports":{"type":"array","items":{"type":"integer"}},"cpes":{"type":"array","items":{"type":"string"},"description":"Software detected on the open ports (CPE identifiers)"},"hostnames":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"vulns":{"type":"array","items":{"type":"string"},"description":"Known CVE identifiers"},"vulnCount":{"type":"integer"},"portCount":{"type":"integer"},"networkHandle":{"type":"string","nullable":true},"networkName":{"type":"string","nullable":true},"networkRange":{"type":"string","nullable":true},"networkType":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"org":{"type":"string","nullable":true},"detail":{"type":"string","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"address","in":"path","description":"IPv4 or IPv6 address (not a hostname)","required":true,"schema":{"type":"string","example":"8.8.8.8"}}]}},"/v1/btc/{address}":{"get":{"operationId":"get_v1_btc_address","summary":"Bitcoin address lookup","description":"Balance in BTC and USD, total received and sent, transaction counts, last activity and recent transactions for any Bitcoin address.","tags":["Network & crypto"],"responses":{"200":{"description":"Wallet summary","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"addressType":{"type":"string","description":"P2PKH, P2SH, P2WPKH, P2WSH, P2TR or witness vN"},"balanceSats":{"type":"integer","description":"Confirmed + pending"},"balanceBtc":{"type":"number"},"confirmedSats":{"type":"integer"},"pendingSats":{"type":"integer"},"totalReceivedSats":{"type":"integer"},"totalSentSats":{"type":"integer"},"txCount":{"type":"integer"},"confirmedTxCount":{"type":"integer"},"unconfirmedTxCount":{"type":"integer"},"fundedTxoCount":{"type":"integer"},"spentTxoCount":{"type":"integer"},"used":{"type":"boolean","description":"false for a valid address that has never transacted"},"lastActive":{"type":"integer","nullable":true,"description":"Unix seconds of the latest confirmed transaction"},"recentTxs":{"type":"array","items":{"type":"object","properties":{"txid":{"type":"string","nullable":true},"confirmed":{"type":"boolean"},"blockHeight":{"type":"integer","nullable":true},"blockTime":{"type":"integer","nullable":true},"valueSats":{"type":"integer","description":"Net satoshis this address gained (+) or spent (−)"},"feeSats":{"type":"integer","nullable":true}}}},"usdRate":{"type":"number","nullable":true},"balanceUsd":{"type":"number","nullable":true},"detail":{"type":"string","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"address","in":"path","description":"Address beginning with 1, 3 or bc1","required":true,"schema":{"type":"string","example":"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"}}]}},"/v1/eth/{address}":{"get":{"operationId":"get_v1_eth_address","summary":"Ethereum wallet lookup","description":"ETH balance in ETH and USD, top token holdings, transaction counts, contract details, scam flags and recent transactions for any Ethereum address or ENS name.","tags":["Network & crypto"],"responses":{"200":{"description":"Wallet summary","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"EIP-55 checksummed address"},"ensName":{"type":"string","nullable":true},"isContract":{"type":"boolean"},"contractName":{"type":"string","nullable":true},"isVerified":{"type":"boolean","nullable":true,"description":"Contract source verified"},"creator":{"type":"string","nullable":true,"description":"Address that deployed the contract"},"creationTx":{"type":"string","nullable":true},"flaggedScam":{"type":"boolean"},"publicTags":{"type":"array","items":{"type":"string"}},"balanceWei":{"type":"string","description":"Exact balance in wei (as a string; it can exceed a JSON number)"},"balanceEth":{"type":"number"},"usdRate":{"type":"number","nullable":true},"balanceUsd":{"type":"number","nullable":true},"txCount":{"type":"integer"},"tokenTransferCount":{"type":"integer"},"used":{"type":"boolean","description":"false for a valid address that has never transacted"},"lastActive":{"type":"integer","nullable":true,"description":"Unix seconds of the latest transaction"},"recentTxs":{"type":"array","items":{"type":"object","properties":{"hash":{"type":"string","nullable":true},"timestamp":{"type":"integer","nullable":true},"blockNumber":{"type":"integer","nullable":true},"direction":{"type":"string","enum":["in","out","self"]},"valueEth":{"type":"number","description":"Net ETH gained (+) or spent (−); token movements excluded"},"counterparty":{"type":"string","nullable":true},"method":{"type":"string","nullable":true},"status":{"type":"string","enum":["success","failed","pending"]},"feeEth":{"type":"number"}}}},"tokens":{"type":"array","description":"Priced ERC-20 holdings, largest first (top 10)","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"contract":{"type":"string","nullable":true},"balance":{"type":"number"},"usdRate":{"type":"number","nullable":true},"valueUsd":{"type":"number"}}}},"tokensValueUsd":{"type":"number"},"tokensHidden":{"type":"integer","description":"Unpriced, flagged or dust tokens left out (mostly airdropped spam)"},"detail":{"type":"string","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"404":{"description":"The ENS name isn't registered","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"address","in":"path","description":"A 0x address (42 characters) or an ENS name ending in .eth","required":true,"schema":{"type":"string","example":"vitalik.eth"}}]}},"/v1/sol/{address}":{"get":{"operationId":"get_v1_sol_address","summary":"Solana wallet lookup","description":"SOL balance in SOL and USD, account type, top SPL token holdings and recent transactions for any Solana address or .sol name.","tags":["Network & crypto"],"responses":{"200":{"description":"Wallet summary","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"solName":{"type":"string","nullable":true,"description":"The .sol name searched, or the address's own .sol name"},"accountType":{"type":"string","enum":["wallet","program","token_account","stake_account","vote_account","program_owned","unused"]},"ownerProgram":{"type":"string","nullable":true},"executable":{"type":"boolean"},"balanceLamports":{"type":"string","description":"Exact balance in lamports (as a string)"},"balanceSol":{"type":"number"},"usdRate":{"type":"number","nullable":true},"balanceUsd":{"type":"number","nullable":true},"used":{"type":"boolean"},"lastActive":{"type":"integer","nullable":true,"description":"Unix seconds of the latest transaction"},"recentTxs":{"type":"array","description":"The 10 most recent transactions","items":{"type":"object","properties":{"signature":{"type":"string","nullable":true},"timestamp":{"type":"integer","nullable":true},"slot":{"type":"integer","nullable":true},"status":{"type":"string","enum":["success","failed"]},"memo":{"type":"string","nullable":true}}}},"tokenAccounts":{"type":"integer","description":"Token accounts owned, empty ones included"},"tokens":{"type":"array","description":"Priced, liquid SPL token holdings, largest first (top 10)","items":{"type":"object","properties":{"mint":{"type":"string"},"symbol":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"verified":{"type":"boolean","nullable":true},"balance":{"type":"number"},"usdRate":{"type":"number"},"valueUsd":{"type":"number"}}}},"tokensValueUsd":{"type":"number"},"tokensHidden":{"type":"integer","description":"Unpriced, illiquid or dust tokens left out (mostly airdropped spam)"},"detail":{"type":"string","nullable":true}}}}}},"400":{"description":"The input is not in a valid format for this endpoint.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"That input isn’t valid. Check it and try again."}}}}}},"401":{"description":"Missing, unknown or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Invalid API key."}}}}}},"404":{"description":"The .sol name isn't registered","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Too many requests. Wait and retry.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"Too many requests right now. Try again shortly."}}}}}},"502":{"description":"The public source behind this lookup failed or timed out. Not charged; retry later.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"examples":{"error":{"value":{"error":"The lookup failed. Try again in a moment."}}}}}}},"parameters":[{"name":"address","in":"path","description":"A base58 address (32 to 44 characters) or a .sol name","required":true,"schema":{"type":"string","example":"bonfida.sol"}}]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}