Skip to content

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)

Built by Veltara Works