Toll Enroute
3 endpoints · Core API
The Toll Enroute API category provides a comprehensive suite of tools for calculating toll charges and retrieving essential toll and route data across different regions. These APIs enable developers to build intelligent transportation applications that help users plan cost-effective journeys, estimate travel expenses, and make informed routing decisions based on toll charges. Whether you're developing a navigation app, fleet management system, or travel planning platform, this category delivers the toll intelligence needed to optimize routes and provide accurate cost calculations.
Check supported toll plazas — View the full list of 600+ plazas across 24 states before making a request. View Supported Toll Plazas →
Request notes
source_stateanddestination_stateare required. Use the state values returned by the toll-state-list API (snake_case, for exampleuttar_pradesh).source_nameanddestination_nameare required city or town names (for exampleghazipur,patna).vehicle_typeis required. Use a value returned by the get-vehicle-type API (for examplecar/jeep/van).- Values are not case-sensitive: they are converted to lowercase before the lookup.
Get the list of states and union territories supported for NHAI toll operations.
The Toll State List API provides a comprehensive list of all Indian states and union territories available for NHAI (National Highways Authority of India) toll-related operations. This endpoint serves as a foundational reference for toll data queries, returning standardized state identifiers that can be used across various toll management systems and applications.
This API is essential for applications that need to display state selection options, validate geographic inputs, or filter toll data by geographical regions. It ensures consistency in state naming conventions across your toll management ecosystem.
Key Benefits:
→ Complete Coverage: Returns all 36 states and union territories of India in a standardized format.
→ Consistent Naming: Provides uniform state identifiers for seamless integration with other NHAI APIs.
→ Real-time Data: Always returns the current list of available states for toll operations.
→ Easy Integration: Simple GET request with no parameters required for quick implementation.
Use Cases:
→ State-wise Toll Collection Reports: Generate comprehensive toll revenue reports filtered by specific states.
→ Geographic Route Planning: Plan optimal routes considering toll plazas across different states.
→ Compliance Monitoring: Track toll collection compliance across various state jurisdictions.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalNo description.
1 field
- state_listarray<string>optionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
429Too Many Requests
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataanyoptionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Get the list of vehicle types supported for toll calculation.
The Vehicle Type API provides a comprehensive list of vehicle categories recognized by the National Highways Authority of India (NHAI) for toll calculation and classification purposes. This endpoint returns standardized vehicle type identifiers that are essential for accurate toll rate determination, vehicle classification, and compliance with NHAI toll collection standards.
This API serves as a critical reference for toll management systems, enabling proper vehicle categorization based on axle configuration, size, and commercial usage. The vehicle types returned align with official NHAI toll rate structures and are used across all toll plaza operations in India.
Key Benefits:
→ Official Classification: Returns NHAI-approved vehicle categories for accurate toll calculations.
→ Standardized Identifiers: Provides consistent vehicle type codes for seamless integration.
→ Complete Coverage: Includes all vehicle categories from personal cars to heavy commercial vehicles.
→ Real-time Accuracy: Always returns the current list of recognized vehicle types for toll operations.
Use Cases:
→ Automated Toll Classification: Implement automatic vehicle categorization at toll plazas using camera recognition systems.
→ Rate Calculation Engine: Build dynamic toll rate calculators based on vehicle type and route distance.
→ Revenue Reporting: Generate detailed toll collection reports categorized by vehicle types.
→ Compliance Monitoring: Ensure toll collection adheres to NHAI vehicle classification standards.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalNo description.
1 field
- vehicle_typearray<string>optionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
429Too Many Requests
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataanyoptionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Code samplescurl · Node.js · Python
Calculate toll charges and route details between two locations.
The Toll Enroute API is a comprehensive route planning and toll calculation service that provides detailed journey information between any two locations in India. This powerful endpoint calculates optimal routes while identifying all toll plazas along the way, providing precise toll costs based on vehicle type, travel duration, total distance, and exact toll plaza coordinates.
This API integrates real-time NHAI toll rate data with advanced routing algorithms to deliver accurate cost estimations and route planning capabilities. It's essential for logistics companies, fleet operators, and travel applications that need precise toll cost calculations and route optimization for commercial and personal vehicles.
Key Benefits:
→ Complete Route Intelligence: Get comprehensive journey details including duration, distance, and all toll plazas with exact costs.
→ Vehicle-Specific Pricing: Accurate toll calculations based on NHAI vehicle classification standards for precise cost estimation.
→ Real-time Toll Data: Access current toll rates and plaza information directly from NHAI systems.
→ Geospatial Accuracy: Precise latitude/longitude coordinates for each toll plaza enabling GPS integration and mapping.
Use Cases:
→ Route Cost Optimization: Calculate and compare multiple route options to minimize toll expenses for commercial fleets.
→ Trip Budget Planning: Provide accurate toll cost estimates for logistics planning and customer quotations.
→ Fleet Expense Tracking: Monitor and analyze toll expenses across different routes and vehicle types.
→ Delivery Route Planning: Optimize delivery routes considering toll costs, distance, and time constraints.
Request Body Parameters:
→ source_state (required): State of the starting location in snake_case, as returned by the toll-state-list API (e.g., "uttar_pradesh").
→ source_name (required): City or town where the journey starts (e.g., "ghazipur").
→ destination_state (required): State of the destination in snake_case, as returned by the toll-state-list API (e.g., "bihar").
→ destination_name (required): City or town where the journey ends (e.g., "patna").
→ vehicle_type (required): Vehicle category for toll calculation, as returned by the get-vehicle-type API (e.g., "car/jeep/van"). Values are not case-sensitive.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- consentstringrequiredRequired. The end user's consent to this verification. Send `Y`.minLength 1default Y
- consent_textstringrequiredRequired. The consent statement shown to the end user. Send the default text from the sample.minLength 1default I hear by declare my consent agreeme…
- request_idstringoptionalOptional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.nullable
- source_statestringrequiredRequired. State of the starting location, in snake_case as returned by the toll-state-list API, for example uttar_pradesh. Case is ignored.minLength 1default uttar_pradesh
- source_namestringrequiredRequired. City or town where the journey starts, for example ghazipur. Case is ignored.minLength 1default ghazipur
- destination_statestringrequiredRequired. State of the destination, in snake_case as returned by the toll-state-list API, for example bihar. Case is ignored.minLength 1default bihar
- destination_namestringrequiredRequired. City or town where the journey ends, for example patna. Case is ignored.minLength 1default patna
- vehicle_typestringrequiredRequired. Vehicle category used to price the tolls. Use a value returned by the get-vehicle-type API, for example car/jeep/van. Case is ignored.minLength 1default car/jeep/van
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalNo description.
8 fields
- source_statestringoptionalNo description.nullable
- source_namestringoptionalNo description.nullable
- destination_statestringoptionalNo description.nullable
- destination_namestringoptionalNo description.nullable
- vehicle_typestringoptionalNo description.nullable
- durationstringoptionalNo description.nullable
- distancestringoptionalNo description.nullable
- toll_plaza_detailsarray<object>optionalNo description.nullable
Each item: 4 fields
- toll_plaza_namestringoptionalNo description.nullable
- coststringoptionalNo description.nullable
- toll_plaza_longitudestringoptionalNo description.nullable
- toll_plaza_latitudestringoptionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
429Too Many Requests
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataanyoptionalNo description.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500