Skip to main content
GET
Get Score History

Overview

Retrieve historical ZKScore data to track score changes over time. This endpoint provides time-series data showing how a user’s score has evolved, enabling trend analysis and progress tracking.
Use this endpoint to build score charts, track improvements, and analyze scoring trends.

Parameters

string
required
ZKS ID (e.g., alice.zks) or wallet address (e.g., 0x742d35Cc...)
string
Time period to retrieve (default: 30d)
  • 7d - Last 7 days
  • 30d - Last 30 days
  • 90d - Last 90 days
  • 1y - Last year
  • all - All available history
string
Data point interval (default: day)
  • hour - Hourly data points
  • day - Daily data points
  • week - Weekly data points
  • month - Monthly data points
number
Specific chain ID to get history for (optional, defaults to aggregated)

Response

boolean
Indicates if the request was successful
string | null
The ZKS ID (without .zks suffix), or null if not set
string
The primary wallet address
array
Array of historical score data points
object
Summary statistics for the period

Examples

Response Example

Use Cases

1. Score Chart Visualization

Display score history in a line chart:

2. Progress Tracking

Track user progress over time:

3. Trend Analysis

Analyze scoring trends:

4. Milestone Detection

Detect when user reaches milestones:

Best Practices

1. Choose Appropriate Intervals

Match interval to timeframe:

2. Cache Historical Data

History doesn’t change frequently:

3. Handle Missing Data

Some periods may have no data:

4. Compare Multiple Users

Compare score histories:

Visualization Examples

Line Chart

Area Chart with Trend

Troubleshooting

”Insufficient history”

Cause: User doesn’t have enough historical data. Solution:
  • Historical data requires at least 7 days of activity
  • Try a shorter timeframe
  • Check back after more time has passed

”Invalid timeframe”

Cause: Unsupported timeframe value. Solution:
  • Use supported values: 7d, 30d, 90d, 1y, all
  • Check for typos

”Too many data points”

Cause: Requested interval too granular for timeframe. Solution:
  • Use larger intervals for longer timeframes
  • hour for 7d max
  • day for 90d max
  • week for 1y max

Performance Tips

  1. Use Appropriate Intervals: Don’t request hourly data for a year
  2. Cache Results: History doesn’t change frequently
  3. Limit Data Points: Request only what you need to display
  4. Batch Requests: When comparing multiple users, use Promise.all()

Rate Limits

Score history requests are subject to rate limits:
  • Free tier: 30 requests per minute
  • Starter tier: 150 requests per minute
  • Professional tier: 600 requests per minute
  • Enterprise tier: Custom limits