Coming Soon

We’re putting the finishing touches on our official SDK libraries. Launch expected in Q4 2025.

Our engineering team is building native SDKs to make Solvice integration even easier. These libraries will handle authentication, request formatting, error handling, and response parsing automatically.

Planned SDK Support

JavaScript/TypeScript

Full TypeScript support with type-safe request/response handling

Python

Pythonic interface with async support and data validation

Java

Enterprise-ready with Spring Boot integration

Early Access

Interested in early access to our SDKs? Contact us at sdk@solvice.io to join our beta program.

What to Expect

Our SDKs will provide:

  • Simplified Authentication - Automatic API key management
  • Type Safety - Full typing for all request and response objects
  • Error Handling - Built-in retry logic and comprehensive error messages
  • Async Support - Native async/await patterns for all operations
  • Auto-polling - Automatic status polling for asynchronous jobs
  • Validation - Client-side request validation before API calls

Example Preview

Here’s a sneak peek at what our SDKs will look like:

import { SolviceClient } from '@solvice/sdk';

const client = new SolviceClient({
  apiKey: process.env.SOLVICE_API_KEY
});

// Type-safe request building
const solution = await client.vrp.solve({
  resources: [{
    name: 'vehicle-1',
    shifts: [{
      from: '2024-01-15T08:00:00Z',
      to: '2024-01-15T17:00:00Z',
      start: {
        latitude: 51.0543,
        longitude: 3.7174
      }
    }],
    capacity: [100],
    tags: ['delivery']
  }],
  jobs: [{
    name: 'delivery-1',
    location: {
      latitude: 51.0500,
      longitude: 3.7300
    },
    duration: 300,
    load: [10],
    windows: [{
      from: '2024-01-15T09:00:00Z',
      to: '2024-01-15T16:00:00Z'
    }]
  }]
});

// Automatic polling until solved
console.log(solution.routes);

Current Integration Options

While we prepare our official SDKs, you can integrate with Solvice using:

Quick Integration Example

Until our SDKs are ready, here’s how to integrate with Solvice:

class SolviceClient {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://api.solvice.io/v2';
  }

  async solve(solver, request) {
    // Submit job
    const submitResponse = await fetch(`${this.baseUrl}/${solver}/solve`, {
      method: 'POST',
      headers: {
        'Authorization': this.apiKey,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(request)
    });
    
    const { jobId } = await submitResponse.json();
    
    // Poll for completion
    while (true) {
      const statusResponse = await fetch(
        `${this.baseUrl}/${solver}/jobs/${jobId}/status`,
        { headers: { 'Authorization': this.apiKey } }
      );
      
      const { status } = await statusResponse.json();
      
      if (status === 'SOLVED') {
        const solutionResponse = await fetch(
          `${this.baseUrl}/${solver}/jobs/${jobId}/solution`,
          { headers: { 'Authorization': this.apiKey } }
        );
        return await solutionResponse.json();
      }
      
      await new Promise(resolve => setTimeout(resolve, 5000));
    }
  }
}

// Example usage with correct VRP payload
const client = new SolviceClient(process.env.SOLVICE_API_KEY);

const vrpRequest = {
  resources: [{
    name: 'vehicle-1',
    shifts: [{
      from: '2024-01-15T08:00:00Z',
      to: '2024-01-15T17:00:00Z',
      start: { latitude: 51.0543, longitude: 3.7174 },
      end: { latitude: 51.0543, longitude: 3.7174 }
    }],
    capacity: [100],
    tags: ['delivery', 'fragile-goods']
  }],
  jobs: [{
    name: 'customer-order-123',
    location: { latitude: 51.0500, longitude: 3.7300 },
    duration: 900, // 15 minutes in seconds
    load: [10],
    priority: 5,
    tags: [{ name: 'fragile-goods', hard: true }],
    windows: [{
      from: '2024-01-15T09:00:00Z',
      to: '2024-01-15T12:00:00Z'
    }]
  }],
  options: {
    traffic: 1.3,
    waitingPenalty: 100
  }
};

const solution = await client.solve('vrp', vrpRequest);

Stay Updated

SDK Newsletter

Subscribe to get notified when our SDKs launch

Follow our GitHub for SDK announcements and early releases.