> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solvice.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Official Solvice SDKs for seamless integration with your favorite programming languages

## Available SDKs

<Info>
  Our official SDKs provide type-safe, feature-rich integration with the Solvice optimization platform. Choose the SDK that matches your development stack.
</Info>

<CardGroup cols={2}>
  <Card title="TypeScript SDK" icon="js" href="./typescript">
    Full TypeScript support with modern runtime compatibility (Node.js, Deno, Bun, browsers)
  </Card>

  <Card title="Python SDK" icon="python" href="./python">
    Pythonic interface with async support and data science library integration
  </Card>
</CardGroup>

## Why Use Our SDKs?

Our official SDKs provide significant advantages over direct REST API integration:

### Developer Experience

* **Type Safety** - Full type definitions prevent runtime errors and improve IDE support
* **Auto-completion** - Rich IntelliSense and code completion for faster development
* **Built-in Validation** - Client-side request validation catches errors before API calls

### Reliability & Performance

* **Automatic Retries** - Configurable retry logic for network resilience
* **Error Handling** - Comprehensive error types with detailed debugging information
* **Connection Pooling** - Efficient HTTP connection management for better performance

### Advanced Features

* **Async Support** - Native async/await patterns for non-blocking operations
* **Polling Utilities** - Automatic status polling for long-running optimization jobs
* **Configuration Management** - Centralized API key and timeout configuration

## Quick Comparison

| Feature              | TypeScript SDK                   | Python SDK                             |
| -------------------- | -------------------------------- | -------------------------------------- |
| **Installation**     | `npm install solvice-vrp-solver` | `pip install --pre solvice-vrp-solver` |
| **Type Safety**      | ✅ Full TypeScript support        | ✅ Type hints and validation            |
| **Async Support**    | ✅ Native async/await             | ✅ Both sync and async clients          |
| **Runtime Support**  | Node.js, Deno, Bun, Browsers     | Python 3.8+                            |
| **Error Handling**   | ✅ Typed error classes            | ✅ Exception hierarchy                  |
| **Auto Retry**       | ✅ Configurable                   | ✅ Configurable                         |
| **Data Integration** | JSON/JavaScript objects          | ✅ Pandas DataFrame support             |

## Getting Started

Choose your preferred language to get started:

<Steps>
  <Step title="Select Your SDK">
    Pick the SDK that matches your development environment:

    * [TypeScript/JavaScript](./typescript) for web and Node.js applications
    * [Python](./python) for data science and backend applications
  </Step>

  <Step title="Install the Package">
    Use your package manager to install the SDK:

    <Tabs>
      <Tab title="TypeScript">
        ```bash theme={null}
        npm install solvice-vrp-solver
        ```
      </Tab>

      <Tab title="Python">
        ```bash theme={null}
        pip install --pre solvice-vrp-solver
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Get Your API Key">
    Obtain your API key from the [Solvice dashboard](https://app.solvice.io) and store it securely in environment variables.
  </Step>

  <Step title="Write Your First Integration">
    Follow the quick start guide for your chosen SDK to implement your first route optimization.
  </Step>
</Steps>

## Migration from REST API

If you're currently using direct REST API calls, migrating to our SDKs is straightforward:

### Before (REST API)

```javascript theme={null}
// Manual HTTP requests with error handling
const response = await fetch('https://api.solvice.io/v2/vrp/solve', {
  method: 'POST',
  headers: {
    'Authorization': apiKey,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(request)
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const { jobId } = await response.json();

// Manual polling logic...
while (true) {
  const statusResponse = await fetch(`https://api.solvice.io/v2/vrp/jobs/${jobId}/status`);
  // ... polling implementation
}
```

### After (SDK)

```javascript theme={null}
// Simple, type-safe SDK call
const client = new SolviceVrpSolver({ apiKey });
const solution = await client.vrp.syncSolve(request);
console.log(solution.routes);
```

## Alternative Integration Methods

While we recommend using our official SDKs, you can also integrate using:

<CardGroup cols={2}>
  <Card title="REST API" icon="code" href="/api-reference/vrp/introduction">
    Direct HTTP requests to our RESTful endpoints
  </Card>

  <Card title="OpenAPI Spec" icon="file-code" href="https://api.solvice.io/openapi">
    Generate client code from our OpenAPI specification
  </Card>
</CardGroup>

## Community & Support

<CardGroup cols={3}>
  <Card title="GitHub" icon="github" href="https://github.com/solvice">
    View source code, report issues, and contribute
  </Card>

  <Card title="Support" icon="life-ring" href="mailto:support@solvice.io">
    Get help from our engineering team
  </Card>

  <Card title="API Reference" icon="book" href="/api-reference/vrp/introduction">
    Complete API documentation and examples
  </Card>
</CardGroup>

## Roadmap

We're continuously improving our SDKs based on community feedback:

### Coming Soon

* **Go SDK** - Native Go library for backend services
* **Java SDK** - Enterprise-ready Java library with Spring Boot integration
* **CLI Tool** - Command-line interface for batch processing and automation

### Enhanced Features

* **Webhook Support** - Native webhook handling for job completion notifications
* **Batch Operations** - Optimized APIs for processing multiple requests
* **Monitoring Integration** - Built-in metrics and observability features

<Note>
  Interested in a specific language or feature? Contact us at [sdk@solvice.io](mailto:sdk@solvice.io) to share your requirements.
</Note>
