dev.knotless.getProfile
How an account shows on knotless: its dev.knotless.profile, field by field over its app.bsky.actor.profile, with its follows as the appview counts them. Optional authentication: with an asker, whether it follows the account.
Details · query
| Kind | query |
|---|---|
| Authority | knotless.dev |
| Indexed |
Showing version bafyreicllm7hg7douzjpcvdg2fc3oxohcprpbguidarazegqv5bs5fxbsu. Show the latest
Checks
Validunlimited-stringdefs.badgeView.properties.kindNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.profileView.properties.handleNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"badgeView": {
"description": "A badge an account earned, at the highest tier its count reached.",
"properties": {
"count": {
"description": "What the badge counts, as the appview counted it.",
"minimum": 0,
"type": "integer"
},
"kind": {
"description": "Which badge: `upstream`, pulls merged into repositories of other accounts; `second-pair`, pulls of other accounts commented on before they merged; `peacemaker`, pulls landed after the merge queue ejected them for a conflict; `forked-and-fixed`, pulls merged into its repositories from forks of them; `good-company`, pulls the merge queue landed in a batch of five or more; `smooth-landing`, pulls the merge queue landed without ever ejecting them; `bisected`, pulls found by halving a batch that failed; `shipped`, releases published; `stargazer`, stars on its most starred repository; `carry-your-own`, an account on a PDS holding five accounts or fewer; `moved-house`, an account whose DID document named another PDS before; `first-light`, an account here with a repository before knotless 1.0. A kind is never reused for another meaning.",
"knownValues": [
"upstream",
"second-pair",
"peacemaker",
"forked-and-fixed",
"good-company",
"smooth-landing",
"bisected",
"shipped",
"stargazer",
"carry-your-own",
"moved-house",
"first-light"
],
"type": "string"
},
"next": {
"description": "The count the next tier starts at. Absent at the highest tier.",
"minimum": 1,
"type": "integer"
},
"tier": {
"description": "The highest tier its count reached, from 1 to 4. A badge earned once, as `forked-and-fixed`, `bisected`, `carry-your-own`, `moved-house` and `first-light` are, has only the first.",
"maximum": 4,
"minimum": 1,
"type": "integer"
}
},
"required": [
"kind",
"tier",
"count"
],
"type": "object"
},
"main": {
"description": "How an account shows on knotless: its dev.knotless.profile, field by field over its app.bsky.actor.profile, with its follows as the appview counts them. Optional authentication: with an asker, whether it follows the account.",
"errors": [
{
"description": "No account by that DID or handle.",
"name": "ProfileNotFound"
}
],
"output": {
"encoding": "application/json",
"schema": {
"ref": "#profileView",
"type": "ref"
}
},
"parameters": {
"properties": {
"actor": {
"description": "The account, by DID or handle.",
"format": "at-identifier",
"type": "string"
}
},
"required": [
"actor"
],
"type": "params"
},
"type": "query"
},
"orgView": {
"description": "An organization an account is a member of.",
"properties": {
"actor": {
"ref": "dev.knotless.defs#actorView",
"type": "ref"
}
},
"required": [
"actor"
],
"type": "object"
},
"profileView": {
"description": "An account as knotless shows it.",
"properties": {
"avatar": {
"description": "The account's picture: from Bluesky's CDN, or, for one its dev.knotless.profile names, from this appview.",
"format": "uri",
"type": "string"
},
"badges": {
"description": "The badges it earned, in the order knotless shows them, as the appview counts them from what it has indexed: none it could not count again from accounts' records. Absent when none, or when the appview keeps no index.",
"items": {
"ref": "#badgeView",
"type": "ref"
},
"type": "array"
},
"bot": {
"description": "Whether the account says it is a bot, as its dev.knotless.profile's `bot`. Absent when it is not.",
"type": "boolean"
},
"description": {
"description": "The account's bio.",
"maxGraphemes": 256,
"maxLength": 2560,
"type": "string"
},
"did": {
"format": "did",
"type": "string"
},
"displayName": {
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
},
"followersCount": {
"description": "How many accounts follow it on knotless, when the appview keeps an index.",
"minimum": 0,
"type": "integer"
},
"followsCount": {
"description": "How many accounts it follows on knotless, when the appview keeps an index.",
"minimum": 0,
"type": "integer"
},
"handle": {
"description": "The handle the account claims, when it resolves back to it; else the DID.",
"type": "string"
},
"links": {
"description": "Only http and https addresses.",
"items": {
"ref": "dev.knotless.defs#link",
"type": "ref"
},
"maxLength": 10,
"type": "array"
},
"organization": {
"description": "Whether the account is an organization, keeping a public dev.knotless.org record, as the appview has indexed it. Absent when it is not.",
"type": "boolean"
},
"orgs": {
"description": "The organizations it is a member of in public, as the appview has indexed them; to the account itself, asking, its hidden memberships too. Absent when none.",
"items": {
"ref": "#orgView",
"type": "ref"
},
"type": "array"
},
"pronouns": {
"maxGraphemes": 20,
"maxLength": 200,
"type": "string"
},
"viewer": {
"description": "What the account asking has to do with it; absent when no one asks.",
"ref": "dev.knotless.defs#actorViewerState",
"type": "ref"
}
},
"required": [
"did"
],
"type": "object"
}
},
"description": "How an account shows on knotless.",
"id": "dev.knotless.getProfile",
"lexicon": 1
}