Optimiciti Developer PortalOptimiciti Developer Portal
  • Pricing
  • Documentation
  • API Reference
  • Back to Optimiciti
Information
Problem
    Submit an optimization runpostPoll a run's status (never its routes)getCancel the optimization run identified by the problemId parameterpost
Utilities
    Health Checkget
Billing
    This month's task usagegetList public plansget
History
    Get User RunspostGet Run IdspostGet Run SummariespostList Example ScenariospostGet Run ResultspostGet a published example scenariogetUpdate Run NamepostDelete Runpost
Data-processing
    Calculate a cost matrix for the given locationspost
Optimization
    Get Run StatuspostCancel Runpost
System
    Read Rootget
Schemas
powered by Zuplo
Optimiciti API Specification
Optimiciti API Specification

History

Past runs and published examples - list a user's previous optimization runs, re-open their results, rename or delete them, and browse the example scenarios.


Get User Runs

POST
https://api.optimiciti.com
/user_runs

Get a list of all run IDs and timestamps for a user.

Get User Runs › Request Body

UserHistoryRequest
user_id
​string · required

The unique User ID

Get User Runs › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
POST/user_runs
curl https://api.optimiciti.com/user_runs \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "user_id": "user_id" }'
Example Request Body
{ "user_id": "user_id" }
json
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

Get Run Ids

POST
https://api.optimiciti.com
/run_ids_by_user

Get the list of run IDs for a user.

Get Run Ids › Request Body

UserHistoryRequest
user_id
​string · required

The unique User ID

Get Run Ids › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
POST/run_ids_by_user
curl https://api.optimiciti.com/run_ids_by_user \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "user_id": "user_id" }'
Example Request Body
{ "user_id": "user_id" }
json
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

Get Run Summaries

POST
https://api.optimiciti.com
/run_summaries_by_user

The caller's runs, newest first, one entry per run keyed by its run_id, with the run's lifecycle status, its submission time, its summary, and its run_name if it was renamed with POST /update_run_name. Since 2026-09-18 run_datetime_unix is an integer here, the same type POST /user_runs returns for the same row (it was a string). Runs finished before 2026-09-18 carry an empty summary ({}): the summary row was never written before then, and there is no backfill.

Get Run Summaries › Request Body

UserHistoryRequest
user_id
​string · required

The unique User ID

Get Run Summaries › Responses

The caller's runs, newest first. data is an array; each element is an object with a single key, the run_id, whose value is a RunSummaryEntry.

success
​boolean
​object[]
POST/run_summaries_by_user
curl https://api.optimiciti.com/run_summaries_by_user \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "user_id": "user_id" }'
Example Request Body
{ "user_id": "user_id" }
json
Example Responses
{ "success": true, "data": { "0": { "64d44bdd-e350-4c29-ad8a-a8af35c47b50": { "run_datetime_unix": 1789703114, "status": "succeeded", "summary": {}, "run_name": "dod3-run-2" } } } }
json
application/json

List Example Scenarios

POST
https://api.optimiciti.com
/list_examples

List the published example scenarios available to all users. Load one in full with GET /example_scenario/{slug}, using its slug.

List Example Scenarios › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
POST/list_examples
curl https://api.optimiciti.com/list_examples \ --request POST
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

Get Run Results

POST
https://api.optimiciti.com
/run_results_by_run_id

Get the full results of a specific optimization run.

Get Run Results › Request Body

RunIdRequest
run_id
​string · required

The unique Run ID

Get Run Results › Responses

The optimized plan. data is a ProblemResponse with two parts: data.problemResult (the routes — read them from data.problemResult.routeStopsFull) and data.resultSummary (assignment/route/cost/timing totals). Before trusting the result, check that nothing was left unassigned: in data.resultSummary.assignmentSummary.locationsAssigned, assigned must equal total. (total does not count depots, so it is not the number of locations you sent.) To check independently, every non-depot location you submitted should appear as a stop in data.problemResult.routeStopsFull.

success
​boolean
​ProblemResponse

The complete response for a solved optimization problem, combining the full result data with a high-level summary.

POST/run_results_by_run_id
curl https://api.optimiciti.com/run_results_by_run_id \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "run_id": "run_id" }'
Example Request Body
{ "run_id": "run_id" }
json
Example Responses
{ "success": true, "data": { "problemResult": { "problemId": "550e8400-e29b-41d4-a716-446655440000", "problemStatus": { "status": "completed" }, "routeStopsFull": [ { "stopId": "7ee56062-799f-4041-a7f9-b1b70daff695", "locationId": "depot", "locationName": "Depot", "color": "#FFFFFF", "vehicleId": "van-1", "stopType": "route_start", "stopNumber": 0, "arrivalTimeInt": null, "arrivalTimeStr": null, "travelCostTo": 3.2, "travelCostFromPreviousStop": 0, "serviceDuration": 0, "capacityServed": 0 }, { "stopId": "7568253d-5140-44ae-9bf0-d3661bdf6494", "locationId": "b", "locationName": "Stop B", "color": "#FFFFFF", "vehicleId": "van-1", "stopType": "location_visit", "stopNumber": 1, "arrivalTimeInt": 3, "arrivalTimeStr": null, "travelCostTo": 6, "travelCostFromPreviousStop": 3.2, "serviceDuration": 0, "capacityServed": 1 }, { "stopId": "84a10653-c521-4859-a724-7f00191d2333", "locationId": "a", "locationName": "Stop A", "color": "#FFFFFF", "vehicleId": "van-1", "stopType": "location_visit", "stopNumber": 2, "arrivalTimeInt": 9, "arrivalTimeStr": null, "travelCostTo": 3.8, "travelCostFromPreviousStop": 6, "serviceDuration": 0, "capacityServed": 1 }, { "stopId": "d5bb9496-e72a-45be-b687-cf8619a7fd0b", "locationId": "depot", "locationName": "Depot", "color": "#FFFFFF", "vehicleId": "van-1", "stopType": "route_end", "stopNumber": 3, "arrivalTimeInt": 13, "arrivalTimeStr": null, "travelCostTo": 0, "travelCostFromPreviousStop": 3.8, "serviceDuration": 0, "capacityServed": 0 } ], "routeStops": null, "unassignedLocations": null, "paths": { "0": { "vehicle_id": "van-1", "path": "[{\"Leg\": 0, \"fromLocationId\": \"depot\", \"fromLatitude\": 39.7684, \"fromLongitude\": -86.1581, \"toLocationId\": \"b\", \"toLatitude\": 39.755, \"toLongitude\": -86.175}]" } } }, "resultSummary": { "assignmentSummary": { "vehiclesAssigned": { "assigned": 1, "available": 1 }, "locationsAssigned": { "assigned": 2, "total": 2 } }, "routeSummary": { "totalDistanceTraveled": 6.5, "totalMinutesTraveled": 13, "totalTravelCost": 13 }, "costSummary": { "fixedCost": 0, "travelCost": 13 }, "timingSummary": { "solveTime": 0.07 } } } }
json
application/json

Get a published example scenario

GET
https://api.optimiciti.com
/example_scenario/{slug}

Returns the full input state of a published example, addressed by its slug (as returned by POST /list_examples).

Examples are public and immutable between seeds, so this route is a GET keyed entirely by its URL and carries a Cache-Control header — a gateway or CDN can serve it without inspecting a request body or knowing who is asking.

It can only ever return an example: the slug is resolved through the example index and the resolved record's owner is re-checked against the examples account, so a private scenario cannot be served from this path even if the index were wrong.

Get a published example scenario › path Parameters

slug
​string · required · explode: true

The example's slug, as published on /list_examples (e.g. tokyo-home-health-occupational-therapy).

Get a published example scenario › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
GET/example_scenario/{slug}
curl https://api.optimiciti.com/example_scenario/:slug
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

Update Run Name

POST
https://api.optimiciti.com
/update_run_name

Update the name of a specific run.

Update Run Name › Request Body

UpdateRunRequest
run_id
​string · required
run_name
​string · required

Update Run Name › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
POST/update_run_name
curl https://api.optimiciti.com/update_run_name \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "run_id": "run_id", "run_name": "run_name" }'
Example Request Body
{ "run_id": "run_id", "run_name": "run_name" }
json
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

Delete Run

POST
https://api.optimiciti.com
/delete_run

Delete a specific optimization run.

Delete Run › Request Body

RunIdRequest
run_id
​string · required

The unique Run ID

Delete Run › Responses

Successful Response

A standardized response envelope used across the API.
StandardResponse
success
​boolean

Indicates if the request was successful

Default: true
data
​

The main response payload. Can be an object, array, boolean, or string.

​ResponseError
POST/delete_run
curl https://api.optimiciti.com/delete_run \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "run_id": "run_id" }'
Example Request Body
{ "run_id": "run_id" }
json
Example Responses
{ "success": true, "data": {}, "error": { "code": "code", "message": "message", "details": {} } }
json
application/json

BillingData-processing