API Documentation
Everything you need to integrate with the ZentriTools API.
Contents
Authentication
The ZentriTools API uses API keys for authentication. Pass your API key in the Authorization header as a Bearer token.
You can generate API keys from your dashboard at dashboard.zentritools.com.
# Example: Authenticate with your API key curl https://api.zentritools.com/v1/products \ -H "Authorization: Bearer sk_zt_your_api_key_here"
⚠️ Never expose your API key in client-side code or public repositories. Always use environment variables and proxy requests through your backend.
Endpoints
The API is organized around REST. All endpoints return JSON with a consistent structure.
Products
GET /v1/products # List all products GET /v1/products/:id # Get a specific product GET /v1/products/compare # Compare products
Changelog
GET /v1/changelog # List changelog entries GET /v1/changelog/:version # Get a specific version's changes
Blog
GET /v1/blog # List all blog posts GET /v1/blog/:slug # Get a specific blog post
Status
GET /v1/status # Get service status
Rate Limits
API requests are rate-limited to ensure fair usage. Limits vary by plan:
| Plan | Requests/min | Requests/day |
|---|---|---|
| Free | 60 | 1,000 |
| Pro | 300 | 10,000 |
| Enterprise | 1,000 | 100,000 |
Rate limit headers are included in every response:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1719900000
Examples
List all products
import requests
response = requests.get(
"https://api.zentritools.com/v1/products",
headers={"Authorization": "Bearer sk_zt_your_api_key"}
)
products = response.json()
for product in products:
print(f"{product['name']}: {product['tagline']}")JavaScript / Node.js
const response = await fetch("https://api.zentritools.com/v1/products", {
headers: {
"Authorization": "Bearer " + process.env.ZENTRITOOLS_API_KEY,
},
});
const products = await response.json();
console.log(products);Get a specific product
curl https://api.zentritools.com/v1/products/promptassert \ -H "Authorization: Bearer sk_zt_your_api_key"
Error Handling
Errors return standard HTTP status codes with a JSON error body:
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 42 seconds.",
"retry_after": 42
}
}Common status codes:
200— Success401— Unauthorized (invalid or missing API key)404— Not found429— Rate limit exceeded500— Internal server error
Need help with the API?
Check our changelog for API updates or reach out to our team.