auth.v1.ProfileService
UpdateProfile
Update the caller's mutable profile fields. Omitted fields are unchanged; present empty strings clear optional text fields.
Request
curl --request POST \ \
--url 'https://api.testnet.polyester.com/auth.v1.ProfileService/UpdateProfile' \
--header 'Content-Type: application/json' \
--header 'Connect-Protocol-Version: 1' \
--data '{
"avatarUrl": "https://placehold.co/128x128.png",
"bio": "Professional crypto trader and liquidity provider.",
"twitter": "@polyester_exchange",
"username": "trader_alpha",
"website": "https://example.com"
}'Responses
{
"avatarUrl": "https://placehold.co/128x128.png",
"bio": "Professional crypto trader and liquidity provider.",
"createdAt": "2025-01-01T00:00:00Z",
"currentTermsAccepted": false,
"discord": "polyester_trader",
"discordVerified": false,
"nextUsernameChangeAt": "2025-01-01T00:00:00Z",
"twitter": "@polyester_exchange",
"twitterVerified": false,
"username": "trader_alpha",
"usernameUnlocked": false,
"vipTier": 1,
"website": "https://example.com"
}auth.v1.UserProfilePatchauth.v1.UserProfilePublic username for the root account. Use an empty string to clear it. Non-empty values must be 3 to 32 letters, digits, underscores, dots, or hyphens.
Short public bio. Use an empty string to clear it. Non-empty values must be at most 256 characters and cannot contain "<" or ">".
Public website URL. Use an empty string to clear it. Non-empty values must be valid http(s) URLs up to 256 characters.
X/Twitter handle without "@". Use an empty string to clear it. Non-empty values must be 1 to 15 letters, digits, or underscores.
Avatar URL. Use an empty string to clear it. Non-empty values must be valid http(s) URLs up to 256 characters.
Public username for the root account. Usernames are unique case-insensitively and use 3 to 32 letters, digits, underscores, dots, or hyphens. Empty means no username is set.
Short public bio. Maximum length is 256 characters.
Public website URL, if set. Maximum length is 256 characters.
X/Twitter handle without "@". Maximum length is 15 characters.
Whether the X/Twitter handle for this account has been verified.
Discord handle or username without "@". Maximum length is 64 characters.
Whether the Discord handle for this account has been verified.
Avatar URL, if set. Maximum length is 256 characters.
Account creation time in UTC. This is the canonical "member since" timestamp.
Next time in UTC when the username can be changed again. Omitted when no cooldown applies.
Current VIP tier for this root account. A value of 0 is the base tier. Read-only.
Whether this account is currently allowed to claim/change a username.
Whether the caller's root account accepted the terms required for restricted actions. False when the required terms have not been accepted.
| Key | HTTP status | Connect code | Error | When |
|---|---|---|---|---|
| unauthenticated | 401 | unauthenticated | Unauthenticated | Authentication required. |
| permission-denied | 403 | permission_denied | Permission Denied | Permission denied. |
| invalid-argument | 400 | invalid_argument | Invalid Argument | Invalid argument. |
| not-found | 404 | not_found | Not Found | Not found. |
| unavailable | 503 | unavailable | Unavailable | Service unavailable. |