List plans
Returns a paginated list of plans for a project, optionally filtered by date range, status or label.
Returns a paginated list of plans for a project, optionally filtered by date range, status or label.
Typical uses:
- Build a daily / weekly calendar view of operations.
- Reconcile execution data with your TMS or BI tool.
- Power a dashboard that shows "today's plans" or "plans in progress".
Authorization
api_key private_key<token>
The Routal API authenticates requests with an API key passed as the private_key query string parameter. Generate and rotate your keys from the Developer Settings section of your Routal workspace.Never ship API keys to a browser or mobile app — they must stay server-side.
In: query
Query Parameters
text?string
Search string
sort?string
Sort columns
offset?number
Number of plans to skip
Default
0limit?number
Number of plans to fetch
Default
20deleted?boolean
with deleted plans
Default
falseproject_id?string
Plan project ID
Match
^[0-9a-f]{24}status?string
Plan status
Value in
"planning" | "in_progress" | "finished" | "draft"Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/plans"{
"total": 1000,
"limit": 50,
"offset": 25,
"pages": 20,
"page": 1,
"docs": [
{
"id": "4f75d991ac359f8c4c79d762",
"organization_id": "4f75d991ac359f8c4c79d762",
"project_id": "4f75d991ac359f8c4c79d762",
"completed_stops": 1,
"canceled_stops": 2,
"pending_stops": 3,
"incomplete_stops": 3,
"total_stops": 6,
"total_routes": 5,
"label": "Eixample route — 2026-05-21",
"execution_date": "2026-05-29T14:55:24.518Z",
"status": "planning",
"created_by": "4f75d991ac359f8c4c79d762",
"created_at": "2026-05-29T14:55:24.518Z",
"updated_at": "2026-05-29T14:55:24.518Z",
"deleted_at": "2026-05-29T14:55:24.518Z",
"deleted": true
}
]
}{
"message": "Domain not found",
"message_id": "highway.domain.error.not_found"
}Empty
{
"message": "Domain not found",
"message_id": "highway.domain.error.not_found"
}{
"message": "Domain not found",
"message_id": "highway.domain.error.not_found"
}Empty
Empty
