Documentation
Platform-wide documentation covering authentication, rate limits, response formats, and error handling. For API-specific docs, visit each API's documentation page.
API-Specific Documentation
Authentication
All endpnt.dev APIs use API key authentication. Include your API key in the x-api-key header with every request. Your API key starts with ek_ and works across all 5 APIs.
curl -X POST "https://screenshot.endpnt.dev/api/screenshot" \
-H "x-api-key: ek_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'Getting your API key
Sign up for a free account to get your API key instantly. One key works across all APIs.
Rate Limiting
Rate limits are shared across all APIs and based on your plan tier. We use a sliding window approach that resets continuously rather than at fixed intervals.
| Plan | Requests/Month | Rate Limit |
|---|---|---|
| Free | 100 | 10/min |
| Starter | 5,000 | 60/min |
| Pro | 25,000 | 300/min |
| Enterprise | Unlimited | Custom |
Rate limit headers are included in every response: X-RateLimit-Limit,X-RateLimit-Remaining, and X-RateLimit-Reset.
Response Format
All APIs return responses in a consistent JSON envelope format. This makes it easy to handle responses consistently across all endpoints.
Success Response
{
"success": true,
"data": {
// API-specific response data
"imageUrl": "https://cdn.endpnt.dev/screenshots/abc123.png",
"format": "png",
"width": 1920,
"height": 1080
},
"meta": {
"requestId": "req_abc123def456",
"processingTime": 1245,
"apiVersion": "1.0"
}
}Error Response
{
"success": false,
"error": {
"code": "INVALID_URL",
"message": "The provided URL is not valid or accessible",
"details": {
"url": "not-a-valid-url"
}
},
"meta": {
"requestId": "req_abc123def456",
"processingTime": 45,
"apiVersion": "1.0"
}
}Error Codes
Common error codes you might encounter across all APIs:
| HTTP Status | Error Code | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Request body is malformed or missing required fields |
| 401 | INVALID_API_KEY | API key is missing, invalid, or expired |
| 429 | RATE_LIMIT_EXCEEDED | You've exceeded your plan's rate limit |
| 402 | QUOTA_EXCEEDED | You've exceeded your plan's monthly request quota |
| 500 | INTERNAL_ERROR | An unexpected error occurred on our end |
SDKs and Libraries
While our APIs are simple HTTP endpoints that work with any HTTP client, we're working on official SDKs for popular languages. For now, here are some community examples:
JavaScript/Node.js
// Using fetch (browser) or node-fetch (Node.js)
const response = await fetch('https://screenshot.endpnt.dev/api/screenshot', {
method: 'POST',
headers: {
'x-api-key': 'ek_your_api_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
fullPage: true
})
});
const result = await response.json();
console.log(result);Python
import requests
url = "https://screenshot.endpnt.dev/api/screenshot"
headers = {
"x-api-key": "ek_your_api_key_here",
"Content-Type": "application/json"
}
data = {
"url": "https://example.com",
"fullPage": True
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)Ready to start building?
Get your API key and explore the full documentation for each API.