Aller au contenu principal
3 min de lecture

OpenAPI Specification

The Zenovay External API is described by a live OpenAPI 3.1 spec served directly from the API. Fetch it any time to generate client SDKs, import into API testing tools, or build custom integrations.

Live spec

Fetch the live specBash
curl https://api.zenovay.com/api/external/v1/openapi.json | jq .info

The endpoint is public (no API key required to read the spec itself; you still need a key to call any documented endpoint). It's edge-cached for 5 minutes.

Specification Overview

PropertyValue
OpenAPI Version3.1.0
API Version1.0.0
Base URLhttps://api.zenovay.com/api/external/v1
AuthenticationBearer token (Authorization: Bearer zv_...) or X-API-Key header
FormatJSON
URL/api/external/v1/openapi.json

Endpoints Covered

The specification documents all External API endpoints, including the Pro+ Stats API:

TagEndpoints
Stats API (Pro+)GET /stats/aggregate, GET /stats/timeseries, GET /stats/breakdown
AccountGET /usage
WebsitesGET /websites, GET /websites/{websiteId}
AnalyticsGET /analytics/{websiteId}
AI & Advanced (Pro+)GET /insights/{websiteId}, GET /anomalies/{websiteId}, GET /retention/{websiteId}, GET /revenue/{websiteId}/ltv
AI & Advanced (Scale+)POST /query/{websiteId}

Using with Tools

Import into Postman

  1. Open Postman and go to Import
  2. Paste the URL https://api.zenovay.com/api/external/v1/openapi.json
  3. Postman will create a collection with all endpoints pre-configured
  4. Set the X-API-Key variable in your environment

Import into Insomnia

  1. Open Insomnia and go to Import/Export > Import Data
  2. Choose From URL and enter https://api.zenovay.com/api/external/v1/openapi.json
  3. All endpoints will appear in a new workspace

Generate TypeScript Client

Using openapi-typescript-codegenBash
npx openapi-typescript-codegen \
--input https://api.zenovay.com/api/external/v1/openapi.json \
--output ./src/api-client

Generate Python Client

Using openapi-python-clientBash
pip install openapi-python-client
openapi-python-client generate \
--url https://api.zenovay.com/api/external/v1/openapi.json

Schema Highlights

Response Envelope

Every successful response uses the envelope:

Success EnvelopeJSON
{
"success": true,
"data": { ... },
"timestamp": "2026-02-07T12:00:00.000Z"
}

Every error response uses:

Error EnvelopeJSON
{
"success": false,
"error": {
  "message": "Human-readable error description",
  "code": "UNAUTHORIZED",
  "timestamp": "2026-02-07T12:00:00.000Z"
}
}

Error Codes

The spec defines these error codes:

CodeHTTP StatusDescription
VALIDATION_ERROR400Invalid request parameters
UNAUTHORIZED401Missing or invalid API key
FORBIDDEN403Insufficient permissions
NOT_FOUND404Resource not found
CONFLICT409Resource conflict
INTERNAL_ERROR500Server error
GENERIC_ERRORVariousGeneral error
Cette page vous a-t-elle été utile ?