API Reference
CadNic provides a RESTful API for programmatic license management, update checks, and webhook integrations.
Base URL
All API endpoints are relative to:
https://cadnic.com/api/v1Authentication
Most API endpoints require a license key in the request body or headers.
Header Authentication
X-SS-License: SS-XXXX-XXXX-XXXX-XXXXBody Authentication
Include license_key in the request body for POST/PUT requests.
Rate Limiting
All public API endpoints are rate-limited:
| Endpoint Category | Limit | Window |
|---|---|---|
| License endpoints | 10 requests | 1 minute |
| Checkout | 30 requests | 1 minute |
| Waitlist | 3 requests | 1 minute |
Rate limit headers are included in all responses:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 9
X-RateLimit-Reset: 1617235200Response Format
Success Response
{
"success": true,
"data": { ... }
}Error Response
{
"error": "ERROR_CODE",
"message": "Human-readable error description"
}Common Error Codes
| Code | Status | Description |
|---|---|---|
RATE_LIMIT | 429 | Too many requests |
VALIDATION | 400 | Invalid input data |
LICENSE | 401 | Invalid or expired license |
NOT_FOUND | 404 | Resource not found |
PAYMENT | 402 | Payment required or failed |
Endpoints
Licenses
- Activate — Activate a license on a device
- Validate — Check license validity
- Deactivate — Remove a device activation
- Recover — Recover a lost license key
Updates
- Check — Check for available updates
Webhooks
SDKs & Libraries
Official SDKs are in development. For now, use standard HTTP clients.
Example: cURL
curl -X POST https://cadnic.com/api/v1/licenses/activate \
-H "Content-Type: application/json" \
-d '{"license_key": "SS-XXXX-XXXX-XXXX-XXXX", "device_id": "abc123"}'Example: JavaScript (Fetch)
const response = await fetch("https://cadnic.com/api/v1/licenses/activate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
license_key: "SS-XXXX-XXXX-XXXX-XXXX",
device_id: "abc123",
}),
});
const data = await response.json();