
cuOpt Server API
OfficialFreeDeploy and interact with the cuOpt REST API easily.
Free · Opens the source repo
What cuOpt Server API does
The cuOpt Server API skill provides a straightforward way to deploy and interact with NVIDIA's cuOpt REST server, which is designed for solving various optimization problems. This skill is particularly useful for developers and data scientists who need to implement routing, linear programming (LP), or mixed-integer linear programming (MILP) solutions in their applications. By leveraging this skill, users can quickly set up a server and access its capabilities through simple API calls.
To get started, users can deploy the server locally, via Docker, or in cloud environments. The skill includes detailed instructions on how to initiate the server and verify its health using a simple curl command. It also offers Python client examples that demonstrate how to format requests and handle responses, making it easier for users to integrate the API into their existing workflows.
The cuOpt Server API skill supports a variety of problem types, including routing, LP, and MILP, but does not support quadratic programming (QP). Users can specify the problem type when making requests and receive tailored solutions based on their input. The skill also outlines common pitfalls and validation errors, ensuring that users can troubleshoot effectively during implementation.
This skill is ideal for developers looking to incorporate optimization solutions into their applications without needing to delve into complex setup procedures. With clear examples and a focus on usability, the cuOpt Server API skill streamlines the process of deploying and utilizing the cuOpt REST server.
When to use it
Use this skill when you need to deploy the cuOpt server for routing, LP, or MILP problems and require a client for API interaction.
When not to use it
This skill is not suitable for users needing to solve quadratic programming (QP) problems, as it does not support that functionality.
What you can build with it
Local Deployment for Testing
Deploy the cuOpt server locally for quick testing and development of optimization solutions.
Integration with Python Applications
Use the provided Python client examples to integrate the cuOpt API into your existing Python applications.
Cloud Deployment for Scalability
Deploy the cuOpt server in a cloud environment to handle larger optimization tasks and multiple requests.
How to install cuOpt Server API
View source1. Install with the skills CLI
npx skills add nvidia/skills/cuopt-server-api-python --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nvidiacuOpt Server — Deploy and client (Python/curl)
This skill covers starting the server and client examples (curl, Python). Server has no separate C API (clients can be any language).
Problem types supported
| Problem type | Supported |
|---|---|
| Routing | ✓ |
| LP | ✓ |
| MILP | ✓ |
| QP | ✗ |
Required questions
Ask these if not already clear:
- Problem type — Routing or LP/MILP? (QP not available via REST.)
- Deployment — Local, Docker, Kubernetes, or cloud?
- Client — Which language or tool will call the API (e.g. Python, curl, another service)?
Start server
# Development
python -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000
# Docker
docker run --gpus all -d -p 8000:8000 -e CUOPT_SERVER_PORT=8000 \
nvidia/cuopt:latest-cuda12.9-py3.13
Verify
curl http://localhost:8000/cuopt/health
Workflow
- POST to
/cuopt/request→ getreqId - Poll
/cuopt/solution/{reqId}until solution ready - Parse response
Python client (routing)
import requests, time
SERVER = "http://localhost:8000"
HEADERS = {"Content-Type": "application/json", "CLIENT-VERSION": "custom"}
payload = {
"cost_matrix_data": {"data": {"0": [[0,10,15],[10,0,12],[15,12,0]]}},
"travel_time_matrix_data": {"data": {"0": [[0,10,15],[10,0,12],[15,12,0]]}},
"task_data": {"task_locations": [1, 2], "demand": [[10, 20]], "task_time_windows": [[0,100],[0,100]], "service_times": [5, 5]},
"fleet_data": {"vehicle_locations": [[0, 0]], "capacities": [[50]], "vehicle_time_windows": [[0, 200]]},
"solver_config": {"time_limit": 5}
}
r = requests.post(f"{SERVER}/cuopt/request", json=payload, headers=HEADERS)
req_id = r.json()["reqId"]
# Poll: GET /cuopt/solution/{req_id}
Terminology: REST vs Python API
| Python API | REST |
|---|---|
| order_locations | task_locations |
| set_order_time_windows() | task_time_windows |
| service_times | service_times |
Use travel_time_matrix_data (not transit_time_matrix_data). Capacities: [[50, 50]] not [[50], [50]].
Debugging (422 / payload)
Validation errors: Check field names against OpenAPI (/cuopt.yaml). Common mistakes: transit_time_matrix_data → travel_time_matrix_data; capacities per dimension [[50, 50]] not per vehicle [[50], [50]]. Capture reqId and response body for failed requests.
Runnable assets
Run from each asset directory (server must be running; scripts exit 0 if server unreachable). All use Python requests:
- assets/vrp_simple/ — Basic VRP (no time windows)
- assets/vrp_basic/ — VRP with time windows
- assets/pdp_basic/ — Pickup and delivery
- assets/lp_basic/ — LP via REST (CSR format)
- assets/milp_basic/ — MILP via REST
See assets/README.md for overview.
Escalate
For contribution or build-from-source, see the developer skill.
Frequently asked questions about cuOpt Server API
Similar skills
WinMD API Search
Easily find and explore Windows desktop APIs.
WebMCPify
Transform any web app into an agent-ready platform.
Phoenix Tracing
Instrument LLM applications with OpenInference tracing.
Foundry Hosted Agent CopilotKit
Guidance for developing agentic web apps on Azure.
Power Automate Foundation
Connect AI agents to Power Automate seamlessly.
Power Automate Flow Builder
Efficiently build and deploy Power Automate flows programmatically.
