SDKs & Libraries
Access the VardaCal Platform API using official SDKs, auto-generated clients, or direct REST API calls.
Auto-Generate SDKs! Our OpenAPI 3.0 specification allows you to generate type-safe client libraries in any language. Official pre-built SDKs coming soon.
Generate SDKs from OpenAPI
Use our OpenAPI 3.0 specification to auto-generate a client library in your preferred language:
Using OpenAPI Generator
1. Install OpenAPI Generator
npm install @openapitools/openapi-generator-cli -g
2. Generate JavaScript/TypeScript SDK
openapi-generator-cli generate \
-i https://docs.vardacal.com/api-docs/openapi.yaml \
-g typescript-axios \
-o ./vardacal-sdk
3. Generate Python SDK
openapi-generator-cli generate \
-i https://docs.vardacal.com/api-docs/openapi.yaml \
-g python \
-o ./vardacal-python-sdk
4. Generate Ruby SDK
openapi-generator-cli generate \
-i https://docs.vardacal.com/api-docs/openapi.yaml \
-g ruby \
-o ./vardacal-ruby-sdk
Supported Generators
OpenAPI Generator supports 50+ languages including:
• JavaScript/TypeScript
• Python
• Ruby
• Java
• Go
• PHP
• C#/.NET
• Swift
• Kotlin
See full list: OpenAPI Generator Docs
Official SDKs
📦
JavaScript/TypeScript
Official Node.js and browser SDK with TypeScript support
npm install @vardacal/sdk
Coming Q2 2025
🐍
Python
Python SDK with async support
pip install vardacal
Coming Q2 2025
Quick Start Examples
Direct API Usage
Until official SDKs are available, you can easily integrate with our REST API:
class VardaCalClient {
constructor(apiKey, apiSecret) {
this.apiKey = apiKey;
this.apiSecret = apiSecret;
this.baseURL = 'https://api.vardacal.com/api/v1/platform';
}
async request(endpoint, options = {}) {
const url = `${this.baseURL}${endpoint}`;
const response = await fetch(url, {
...options,
headers: {
'X-API-Key': this.apiKey,
'X-API-Secret': this.apiSecret,
'Content-Type': 'application/json',
...options.headers
}
});
if (!response.ok) {
throw new Error(`API Error: ${response.status}`);
}
return response.json();
}
// Usage statistics
async getUsage() {
return this.request('/usage');
}
// Event Types
async listEventTypes() {
return this.request('/event_types');
}
async createEventType(data) {
return this.request('/event_types', {
method: 'POST',
body: JSON.stringify(data)
});
}
// Bookings
async listBookings() {
return this.request('/bookings');
}
async createBooking(data) {
return this.request('/bookings', {
method: 'POST',
body: JSON.stringify(data)
});
}
async getBooking(id) {
return this.request(`/bookings/${id}`);
}
// Webhooks
async createWebhook(url, events) {
return this.request('/webhooks', {
method: 'POST',
body: JSON.stringify({ url, events, enabled: true })
});
}
}
// Usage
const client = new VardaCalClient('vca_live_sk_...', 'secret_...');
// Get usage stats
const usage = await client.getUsage();
console.log(`API calls: ${usage.api_calls.count}`);
// Create a booking
const booking = await client.createBooking({
event_type_id: 123,
start_time: '2025-11-01T10:00:00Z',
attendee: {
name: 'John Doe',
email: 'john@example.com'
}
});