Skip to content

API Documentation

Everything you need to integrate with the ZentriTools API.

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:

PlanRequests/minRequests/day
Free601,000
Pro30010,000
Enterprise1,000100,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 — Success
  • 401 — Unauthorized (invalid or missing API key)
  • 404 — Not found
  • 429 — Rate limit exceeded
  • 500 — Internal server error

Need help with the API?

Check our changelog for API updates or reach out to our team.