Skip to main content
GET
Get User Achievements

Overview

Retrieve all achievements that have been earned by a specific user. This endpoint returns both earned achievements and progress toward unearned ones, making it perfect for building user profiles and achievement galleries.
Use this endpoint to display a user’s achievement collection, show their progress, and highlight their accomplishments.

Parameters

string
required
User identity (ZKS ID or wallet address)
ZKS ID is recommended for better performance and user experience
string
Filter by achievement category
  • wallet_age - Wallet longevity achievements
  • transaction_volume - Volume-based achievements
  • protocol_usage - Protocol interaction achievements
  • governance - DAO participation achievements
  • social - Social reputation achievements
  • defi - DeFi-specific achievements
  • nft - NFT-related achievements
  • trading - Trading achievements
string
Filter by achievement status
  • earned - Only earned achievements
  • in_progress - Only achievements in progress
  • all - Both earned and in progress (default)
string
Filter by rarity level
  • common - Easy to earn
  • uncommon - Moderate difficulty
  • rare - Challenging
  • epic - Very challenging
  • legendary - Extremely rare
number
Number of results to return (default: 50, max: 100)
number
Number of results to skip for pagination (default: 0)

Response

boolean
Indicates if the request was successful
string
Resolved wallet address
string
ZKS ID if available, null otherwise
array
Array of user achievement objects
array
Array of achievements ready to be claimed
number
Number of achievements ready to be claimed
object
Achievement summary statistics
string
ISO 8601 timestamp of the response

Examples

Response Example

Use Cases

Display a user’s achievement collection:

2. Achievement Progress Tracking

Track progress toward specific achievements:

3. Claimable Achievements Notification

Show achievements ready to be claimed:

4. Achievement Statistics

Show detailed achievement statistics:

Best Practices

1. Cache User Achievements

User achievements don’t change frequently:

2. Filter by Status

Optimize queries by filtering status:

3. Paginate Large Results

Handle users with many achievements:

4. Real-time Updates

Subscribe to achievement updates:

Troubleshooting

”User not found”

Cause: Invalid identity or user doesn’t exist. Solution:
  • Verify the identity format (ZKS ID or wallet address)
  • Check if the user has any activity on the platform
  • Try with a different identity

”No achievements found”

Cause: User has no achievements or filters are too restrictive. Solution:
  • Remove filters to see all achievements
  • Check if user has any platform activity
  • Verify achievement categories exist

”Invalid status filter”

Cause: Unsupported status value. Solution:
  • Use supported statuses: earned, in_progress, all
  • Check for typos in filter values

Rate Limits

User achievement requests are subject to rate limits:
  • Free tier: 60 requests per minute
  • Starter tier: 300 requests per minute
  • Professional tier: 1,000 requests per minute
  • Enterprise tier: Custom limits
Implement caching to reduce API calls.