Users
The User entity represents an account on a Versia instance. Users can post Notes, follow other users, and interact with content. Users are identified by their id property, which is unique within the instance.
Addresses
Users may be represented by a shorthand address, in the following formats:
@username@instance
@id@instance
For example:
@jessew@versia.social
@018ec082-0ae1-761c-b2c5-22275a611771@versia.social
This is similar to an email address or an ActivityPub address. Usernames are case-insensitive.
Identifier
Identifier must be either a valid username or a valid id. It should have the same username/id as the user's profile.
Usernames can be changed by the user, so it is recommended to use id for long-term references.
Instance
Instance must be the Domain that the user is on.
Entity Definition
- Name
avatar- Type
- ContentFormat
- Description
The user's avatar. Must be an image format (
image/*).
- Name
bio- Type
- ContentFormat
- Description
Short description of the user. Must be text format (
text/*).
- Name
display_name- Type
- string
- Description
Display name, as shown to other users. May contain emojis and any Unicode character.
- Name
fields- Required
- Required
- Type
- Field[]
- Description
Custom key/value pairs. For example, metadata like socials or pronouns. Must be text format (
text/*).type Field = { key: ContentFormat; value: ContentFormat; }
- Name
username- Required
- Required
- Type
- string
- Description
Alpha-numeric username. Must be unique within the instance. Must be treated as changeable by the user.
Can only contain the following characters:
a-z,A-Z(case-insensitive),0-9,_and-. Should be limited to reasonable lengths.
- Name
header- Type
- ContentFormat
- Description
A header image for the user's profile. Also known as a cover photo or a banner. Must be an image format (
image/*).
- Name
manually_approves_followers- Required
- Required
- Type
- boolean
- Description
If
true, the user must approve any new followers manually. Iffalse, followers are automatically approved. This does not affect federation, and is meant to be used for clients to display correct UI.
- Name
indexable- Required
- Required
- Type
- boolean
- Description
User consent to be indexed by search engines. If
false, the user's profile should not be indexed.
Example User
{
"id": "018ec082-0ae1-761c-b2c5-22275a611771",
"type": "User",
"created_at": "2024-04-09T01:38:51.743Z",
"avatar": {
"image/png": {
"content": "https://avatars.githubusercontent.com/u/30842467?v=4"
}
},
"bio": {
"text/html": {
"content": "<p>🌸🌸🌸</p>"
},
"text/plain": {
"content": "🌸🌸🌸"
}
},
"display_name": "April The Pink (limited Sand Edition)",
"extensions": {
"pub.versia:custom_emojis": {
"emojis": []
}
},
"fields": [
{
"key": {
"text/html": {
"content": "<p>Pronouns</p>"
}
},
"value": {
"text/html": {
"content": "<p>It/its</p>"
}
}
}
],
"header": null,
"indexable": false,
"manually_approves_followers": false,
"username": "aprl"
}
Collections
The following Collections are available:
outbox: Collection of notes authored by the user.followers: URI Collection of users that follow the user.following: URI Collection of users that the user follows.featured: Collection of notes that the user wants to feature on their profile ("pinned" notes).
These can be fetched using the Federation API