ProfileService
Claim Generated Username
Claim one username by its position in a valid generated offer.
Request
curl --request POST \ \
--url 'https://api.testnet.polyester.com/v1/auth/profile/username:claim-generated' \
--header 'Accept: */*' \
--header 'X-API-KEY-ID: YOUR_API_KEY_ID' \
--header 'X-API-TIMESTAMP: YOUR_API_TIMESTAMP' \
--header 'X-API-SIGNATURE: YOUR_API_SIGNATURE' \
--header 'Content-Type: application/json' \
--data '{
"offerToken": "eyJ2IjoxLCJzdWIiOiI3NTYzODk3NDQ2NTQ2IiwidXNlcm5hbWVzIjpbImFscGhhX3RyYWRlciIsImJldGFfYnVpbGRlciIsImdhbW1hX21ha2VyIiwiZGVsdGFfY2hhcnQiLCJlcHNpbG9uX2Rlc2siXSwiZXhwIjoxNzY3MjI2MjAwfQ.ZXhhbXBsZS1zaWduYXR1cmU",
"optionIndex": 4
}'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"
}Opaque proof returned with the generated username options.
Zero-based position in the five returned username options.
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.
trader_alphaShort public bio. Maximum length is 256 characters.
Professional crypto trader and liquidity provider.Public website URL, if set. Maximum length is 256 characters.
https://example.comX/Twitter handle without "@". Maximum length is 15 characters.
@polyester_exchangeWhether the X/Twitter handle for this account has been verified.
falseDiscord handle or username without "@". Maximum length is 64 characters.
polyester_traderWhether the Discord handle for this account has been verified.
falseAvatar URL, if set. Maximum length is 256 characters.
https://placehold.co/128x128.pngAccount creation time in UTC. This is the canonical "member since" timestamp.
2025-01-01T00:00:00ZNext time in UTC when the username can be changed again. Omitted when no cooldown applies.
2025-01-01T00:00:00ZCurrent VIP tier for this root account. A value of 0 is the base tier. Read-only.
1Whether this account is currently allowed to claim/change a username.
falseWhether the caller's root account accepted the terms required for restricted actions. False when the required terms have not been accepted.
false| Key | Status | Error | When |
|---|---|---|---|
| unauthenticated | 401 | Unauthenticated | Authentication required. |
| permission-denied | 403 | Permission Denied | Permission denied. |
| invalid-argument | 400 | Invalid Argument | Invalid argument. |
| not-found | 404 | Not Found | Not found. |
| unavailable | 503 | Unavailable | Service unavailable. |