x-api-key header.
For a general overview of authentication flows (querystring, header, OTP + JWT) that apply to both APIs, see Authentication. This page focuses on the LENS-specific key management, feature gating, and error model.
Example
Managing API keys
API keys are managed through the TIC Lens web application under Settings → API Keys. Each key is tied to a team and inherits the team’s subscription plan and features.Key properties
| Property | Description |
|---|---|
| Scopes | Comma-separated access scopes controlling which operations the key can perform |
| Valid until | Optional expiry date after which the key stops working |
| Blocked until | Temporary block set by an administrator |
| Monthly limit | Maximum requests per calendar month |
| Per-minute limit | Maximum requests per sliding 60-second window |
| IP limit | Maximum number of distinct IP addresses that can use the key per month |
Subscription and features
Your API key is linked to a team subscription. Endpoints are gated by plan features (e.g.pro, max, enterprise). If your plan does not include the required feature, the endpoint returns 403 with the missing feature name:
403:
Brute-force protection
After 10 failed attempts within a 15-minute window, the IP is blocked for 15 minutes. All requests from that IP will return401 until the block expires.
The API tracks failed authentication attempts per IP address. During a block:
Endpoint access
API keys can only access endpoints marked as public API endpoints. Attempting to call an internal endpoint returns403:
Request validation
Requests containing SQL injection, XSS, or path traversal patterns are blocked with400 Bad Request. All requests are inspected for malicious patterns before reaching the application.
Error reference
All error responses use the RFC 7807 Problem Details format with an additionalcode field.
| Status | Code | Cause |
|---|---|---|
400 | — | Request blocked by input validation (SQL injection, XSS, path traversal) |
401 | missing_token | No x-api-key header provided |
401 | invalid_api_key | API key not found |
401 | ip_blocked | Too many failed attempts from this IP (15-minute cooldown) |
403 | api_key_blocked | Key has been temporarily blocked by an administrator |
403 | api_key_expired | Key has passed its ValidUntil date |
403 | subscription_required | Team has no active subscription |
403 | subscription_expired | Team subscription has expired |
403 | feature_required | Endpoint requires a plan feature the team doesn’t have |
403 | endpoint_not_available | Endpoint is not available for API key access |
429 | rate_limit_exceeded | Rate limit exceeded (see Rate limits) |