Authentication
The ThriveTech API uses two authentication methods for vendor-facing operations.
Authentication Methods
1. Product API Key (PAK) — Activation Endpoints
Used for all activation endpoints (trial, purchase, validate, deactivate). PAK tokens are issued per distribution channel and identify the product being activated.
Header Format:
Authorization: Bearer pak_eyJhbGciOiJIUzI1NiIs...
Example:
bash
curl -X POST https://api.thrivetechservice.com/api/v1/activate/trial \-H "Content-Type: application/json" \-H "Authorization: Bearer pak_eyJhbGciOiJIUzI1NiIs..." \-d '{"deviceFingerprint": "sha256-device-hash","deviceInfo": { "type": "desktop", "osType": "Windows" }}'
2. Channel API Key — Public/Channel-Specific Endpoints
Used for channel-specific public operations like product offering pages. Channel API keys use a ch_ prefix.
Header Format:
X-Channel-API-Key: ch_xxxxxxxxxxxxxxxxxxxx
Example:
bash
curl -X POST https://api.thrivetechservice.com/api/v1/activate/validate \-H "Content-Type: application/json" \-H "X-Channel-API-Key: ch_xxxxxxxxxxxxxxxxxxxx" \-d '{"licenseKey": "FULL-XXXX-XXXX-XXXX","deviceFingerprint": "sha256-device-hash"}'
Obtaining Credentials
Product API Keys (PAK)
PAK tokens are managed in the Admin Dashboard:
- Navigate to Products → Your Product → Channels
- Select the distribution channel
- Click Generate Product API Key
- Copy the generated PAK (shown only once)
Channel API Keys
- Log in to the ThriveTech Admin Dashboard
- Navigate to Products → Your Product → API Keys
- Click Generate New Key
- Copy the generated key (shown only once)
API Key Types
| Type | Prefix | Permissions | Use Case |
|---|---|---|---|
| Product API Key (PAK) | pak_ | Activation only | Client applications (trial, purchase, validate) |
| Channel API Key | ch_ | Channel-specific | Public operations, product offering pages |
Rate Limits
| Type | Limit | Window |
|---|---|---|
| Default (per IP) | 500 requests | 15 minutes |
| API Key (authenticated) | 3,000 requests | 15 minutes |
| Auth endpoints | 50 requests | 15 minutes |
Rate limit headers are included in all responses:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 495
X-RateLimit-Reset: 1737331200
Security Best Practices
- Never expose keys in client-side code — embed keys securely in compiled applications
- Use environment-specific keys — separate keys for development, staging, and production
- Rotate keys regularly — generate new keys periodically and revoke old ones after migration
- Monitor key usage — review API usage in the admin dashboard
- Use HTTPS only — all API calls must use HTTPS in production
Error Responses
| Code | Error | Description |
|---|---|---|
| 401 | invalid_api_key | API key is invalid or revoked |
| 401 | missing_api_key | API key header not provided |
| 401 | expired_api_key | API key has expired |
| 403 | insufficient_permissions | Key doesn't have required permissions |
Multi-Language Support
Error messages support localization via the Accept-Language header:
bash
curl -X POST https://api.thrivetechservice.com/api/v1/activate/validate \-H "Accept-Language: es-ES" \-H "X-Channel-API-Key: ch_xxx" \-d '...'
Supported languages: en-US, es-ES
Was this helpful?
