The LENS API exposes a single unauthenticated health endpoint. Use it to verify the API and its upstream services are reachable, surface upcoming service windows, and (when you authenticate) inspect your current rate-limit state — all without spending a request against your quota.
GET https://lens-api.tic.io/free/health
This endpoint is anonymous and rate-limiting is disabled. You do not need an API key. Providing one is optional — it unlocks the limits block in the response.
What it checks
The endpoint independently probes every critical upstream service:
| Service | What “ok” means |
|---|
typesense | Search index is reachable and reports ok: true |
redis | Cache / rate-limit store responds to PING |
database | SQL database accepts a connection |
If any service fails, the response returns HTTP 503 Service Unavailable with ok: false and per-service error detail in the services object. When all services are healthy, the response is HTTP 200 OK with ok: true.
Response
{
"ok": true,
"version": "v2",
"serverTimeUtc": "2026-04-18T09:12:34.567Z",
"services": {
"typesense": { "ok": true },
"redis": { "ok": true },
"database": { "ok": true }
},
"upcomingServiceWindows": [
{
"startDateUtc": "2026-05-02T06:00:00",
"endDateUtc": "2026-05-02T06:05:00",
"notes": "Planned Typesense index maintenance",
"lastUpdatedAtUtc": "2026-04-10T08:52:43"
}
],
"limits": {
"rateLimitReset": 2435948,
"rateLimit": 3000,
"rateLimitRemaining": 2965,
"rateLimitMinute": 60,
"rateLimitIP": 20
}
}
Fields
| Field | Type | Description |
|---|
ok | bool | true when all critical services are healthy; false triggers a 503. |
version | string | API version identifier (v2 for LENS). |
serverTimeUtc | datetime | Current server time in UTC. Useful for detecting clock skew on the client. |
services | object | Per-service status map. Each entry has ok and, on failure, error. |
upcomingServiceWindows | array | Scheduled maintenance windows with an end time still in the future. |
limits | object | Present only when the request includes a valid API key. See below. |
Rate-limit state (authenticated only)
When you pass x-api-key, the response also includes your current quota state:
| Field | Description |
|---|
rateLimitReset | Seconds until the monthly counter resets |
rateLimit | Monthly quota |
rateLimitRemaining | Requests remaining this month |
rateLimitMinute | Per-minute quota |
rateLimitIP | Maximum unique source IPs per month |
These values mirror the X-RateLimit-* headers documented in Rate limits. Calling /free/health lets you inspect them without making a rate-limited request.
Examples
curl https://lens-api.tic.io/free/health
curl -H "x-api-key: YOUR_API_KEY" \
https://lens-api.tic.io/free/health
Use cases
- Uptime monitoring — point your monitoring tool at
/free/health and alert on non-200 responses or ok: false.
- Pre-deploy gate — block deploys while a service window is active by checking
upcomingServiceWindows.
- Clock-skew debugging — compare
serverTimeUtc against your local clock to rule out time-related auth failures.
- Quota dashboards — authenticated calls return your current usage without consuming quota themselves.