Usage API
Endpoints for viewing screenshot logs and account usage statistics.
Screenshot Log
GET /api/v1/usageReturns the screenshot request history for the authenticated user. Includes both successful and failed requests, ordered by creation date (newest first). Requires session authentication.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 50 | Number of entries to return |
offset | number | 0 | Number of entries to skip (for pagination) |
Response
[
{
"id": "scr_abc123def456",
"url": "https://example.com",
"status": "completed",
"durationMs": 2340,
"errorMessage": null,
"createdAt": "2026-03-24T15:30:00.000Z"
},
{
"id": "scr_ghi789jkl012",
"url": "https://broken-site.invalid",
"status": "failed",
"durationMs": 5012,
"errorMessage": "Navigation timeout of 30000ms exceeded",
"createdAt": "2026-03-24T15:25:00.000Z"
}
]Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique screenshot identifier |
url | string | The URL that was screenshotted |
status | string | "completed" or "failed" |
durationMs | number | Time taken in milliseconds |
errorMessage | string | null | Error description if the screenshot failed |
createdAt | string | ISO 8601 timestamp |
Example
curl "https://screenshotapi.to/api/v1/usage?limit=20&offset=0" \
--cookie "session=your_session_cookie"const params = new URLSearchParams({ limit: '20', offset: '0' })
const response = await fetch(
`https://screenshotapi.to/api/v1/usage?${params}`,
{ credentials: 'include' }
)
const logs = await response.json()
logs.forEach(entry => {
const status = entry.status === 'completed' ? '✓' : '✗'
console.log(`${status} ${entry.url} (${entry.durationMs}ms)`)
})import requests
response = requests.get(
"https://screenshotapi.to/api/v1/usage",
params={"limit": 20, "offset": 0},
cookies={"session": "your_session_cookie"}
)
for entry in response.json():
status = "✓" if entry["status"] == "completed" else "✗"
print(f"{status} {entry['url']} ({entry['durationMs']}ms)")Usage Statistics
GET /api/v1/usage/statsReturns aggregate usage statistics for the authenticated user. Requires session authentication.
Response
{
"totalScreenshots": 1247,
"last30Days": 342,
"failedScreenshots": 18,
"avgDurationMs": 2156
}Fields
| Field | Type | Description |
|---|---|---|
totalScreenshots | number | Total screenshots taken all time |
last30Days | number | Screenshots taken in the last 30 days |
failedScreenshots | number | Total failed screenshots all time |
avgDurationMs | number | Average duration for successful screenshots in milliseconds |
Example
curl "https://screenshotapi.to/api/v1/usage/stats" \
--cookie "session=your_session_cookie"const response = await fetch('https://screenshotapi.to/api/v1/usage/stats', {
credentials: 'include'
})
const stats = await response.json()
console.log(`Total: ${stats.totalScreenshots}`)
console.log(`Last 30 days: ${stats.last30Days}`)
console.log(`Failed: ${stats.failedScreenshots}`)
console.log(`Avg duration: ${stats.avgDurationMs}ms`)import requests
response = requests.get(
"https://screenshotapi.to/api/v1/usage/stats",
cookies={"session": "your_session_cookie"}
)
stats = response.json()
print(f"Total: {stats['totalScreenshots']}")
print(f"Last 30 days: {stats['last30Days']}")
print(f"Failed: {stats['failedScreenshots']}")
print(f"Avg duration: {stats['avgDurationMs']}ms")Use Cases
- Dashboard widgets — Display usage at a glance.
- Monitoring — Track failure rates and alert on spikes.
- Cost estimation — Use
last30Daysto project future credit usage. - Performance tracking — Monitor
avgDurationMsover time to detect regressions.