Welcome to Solvice

The Solvice Platform provides enterprise-grade optimization solvers for complex operational challenges. Our API-first approach delivers consistent, scalable solutions across five specialized optimization domains.

Solvice Dashboard - Monitor and manage your optimization jobs in real-time

Platform Architecture

1

Submit optimization request

Send your problem data to the appropriate solver endpoint. The API immediately returns a job ID for tracking.

POST /v2/{solver}/solve
2

Monitor job progress

Poll the status endpoint to track optimization progress. Jobs transition through states: QUEUEDSOLVINGSOLVED.

GET /v2/{solver}/jobs/{job_id}/status
3

Retrieve optimized solution

Once solved, fetch your optimized solution with detailed assignments and metrics.

GET /v2/{solver}/jobs/{job_id}/solution
4

Understand decisions

Get explanations for constraint violations and optimization trade-offs.

GET /v2/{solver}/jobs/{job_id}/explanation

Unified API Design

Every Solvice solver follows consistent REST patterns, making integration straightforward across your entire optimization stack.

Core Endpoints

Solve

Submit optimization requests for processing. This is the primary endpoint for all solvers.

request
object
required

Solver-specific request object containing your problem definition

jobId
string
required

Unique identifier for tracking your optimization job

status
string
required

Initial job status (typically QUEUED)

Evaluate

Assess the quality of existing solutions without optimization.

Available for VRP and FILL solvers only

Suggest

Get intelligent suggestions for single assignment improvements.

Available for VRP and FILL solvers only

Authentication

All API requests require authentication via API key. See our comprehensive authentication guide for detailed setup and security best practices.

Asynchronous Processing

Solvice uses asynchronous processing to handle complex optimizations efficiently.

Solver Capabilities

Each solver is optimized for specific problem domains while maintaining API consistency.

Vehicle Routing Problem solver optimizes multi-stop routes considering:

  • Vehicle capacities and time windows
  • Driver skills and availability
  • Real-world road distances via OSRM integration
  • Dynamic pickup/delivery constraints

VRP Documentation

Explore comprehensive VRP features and examples

Quick Start Example

Here’s a complete example using the VRP solver:

1

Prepare your request

request.json
{
  "vehicles": [{
    "id": "vehicle-1",
    "profile": "driving",
    "startLocation": {"lat": 51.0543, "lng": 3.7174},
    "capacity": [100]
  }],
  "jobs": [{
    "id": "delivery-1", 
    "location": {"lat": 51.0500, "lng": 3.7300},
    "duration": 300,
    "demand": [10]
  }],
  "objectives": [{
    "type": "min-max",
    "value": "duration"
  }]
}
2

Submit for optimization

curl -X POST 'https://api.solvice.io/v2/vrp/solve' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d @request.json

Response:

{
  "jobId": "job_abc123",
  "status": "QUEUED"
}
3

Check status

curl 'https://api.solvice.io/v2/vrp/jobs/job_abc123/status' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Response:

{
  "status": "SOLVED",
  "progress": 100
}
4

Get your optimized solution

curl 'https://api.solvice.io/v2/vrp/jobs/job_abc123/solution' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Next Steps