Integration API — JavaScript Examples
Last updated: Phase 8.5
Setup
javascript
const API_BASE = 'https://api.validonx.com/api/v1/integration'
const API_KEY = 'vx_your_api_key_here'
async function apiCall(path, body = null) {
const response = await fetch(`${API_BASE}${path}`, {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json',
'X-Request-ID': crypto.randomUUID(),
},
body: body ? JSON.stringify(body) : undefined,
})
const data = await response.json()
if (!response.ok) {
throw new Error(`${data.error.code}: ${data.error.message}`)
}
return data
}Validate a License
javascript
const result = await apiCall('/licenses/VX-ACME-abc123/validate')
if (result.data.valid) {
console.log('License is valid:', result.data.license.status)
console.log('Plan:', result.data.license.entitlements?.plan)
} else {
console.log('License is not valid')
}Create an Activation
javascript
const result = await apiCall('/activations', {
license_key: 'VX-ACME-abc123',
instance_id: 'server-prod-01',
metadata: { os: 'linux', version: '2.1.0' },
})
console.log('Activation ID:', result.data.activation.id)Check Entitlements
javascript
const result = await apiCall('/entitlements/check', {
license_key: 'VX-ACME-abc123',
features: ['activations.max', 'features.export'],
})
const { features } = result.data.entitlements
if (features['features.export'].granted) {
console.log('Export feature is available')
}Record Usage
javascript
const result = await apiCall('/usage/record', {
license_key: 'VX-ACME-abc123',
metric: 'api.calls',
quantity: 100,
})
console.log('Recorded:', result.data.recorded)