Route to the future: upgrading the /route route
Hi all,
Today we're announcing a major upgrade to the /route
route in ESI. We've completely rewritten it from Python to Go, changed it from GET to POST, and significantly improved its performance and reliability. The new route is now available at https://developers.eveonline.com/api-explorer#/operations/PostRoute.
Background
The current implementation of /route
has been causing headaches for both CCP and third-party developers. Written in Python, it suffers from the Global Interpreter Lock (GIL) - a fundamental limitation that means only one request can be processed at a time. As this route is CPU-bound, when calculating a route for one request, all other requests had to wait in line.
This creates several problems:
Long queues during peak usage.
Frequent timeouts and unresponsive services.
Slow responses - not because the request was too long, but because it was queued.
The route also uses query parameters for everything, which is problematic for several reasons:
Query parameters have length limits that could be exceeded with complex route requests.
The syntax was inconsistent and difficult to use correctly.
Introducing: POST /route
We've completely rewritten the /route
route from the ground up. Here's what's changed:
The new implementation runs on Go, which eliminates the GIL bottleneck entirely. Multiple requests can now be processed concurrently without blocking each other.
The new
POST
route uses a request body, making it much more reliable and easier to work with.The connection limit has been increased from 100 to 1000, allowing for much more complex routing scenarios, like travel via shattered wormholes.
The new route uses the same pathfinding algorithm that's used in-game. This means the routes you get through ESI should be much closer to what players see in the client - similar, though not identical.
The details of this new route can be found in the OpenAPI specifications and in the API Explorer.
What does this mean for you?
If you're currently using the GET /route
route, you can now update to use the new POST /route
route by switching the compatibility date to 2025-09-30
or later. Except for the origin/destination, the query parameters are now part of the JSON request body.
The old GET /route
will remain available for at least a few months under compatibility dates before 2025-09-30
. Nevertheless, we do encourage upgrading at your earliest opportunity. The performance improvements alone make it worth the effort.
Wrapping up
This upgrade represents a significant improvement to one of the most CPU intensive routes ESI has to offer. The combination of better performance, higher limits, and more accurate routing should make life easier for everyone building tools that depend on route calculations.
Cheers,
Your friendly developers of the EVE (Solar)System Interconnect (working title)