Toll Price Details
3 endpoints · Core API
The Toll Price Details API category provides comprehensive access to India's highway toll pricing information through the National Highways Authority of India (NHAI) system. This collection of APIs enables developers to retrieve real-time toll rates for different vehicle categories across various toll plazas nationwide, supporting applications that need accurate toll cost calculations for route planning, logistics optimization, and transportation budgeting.
Get the list of states with operational NHAI toll plazas.
The NHAI Toll Plaza States API provides a comprehensive list of Indian states where toll plazas are operational under the National Highway Authority of India (NHAI). This foundational endpoint serves as a prerequisite for accessing detailed toll pricing information across the Indian highway network. The API returns standardized state identifiers that are essential for subsequent toll-related queries, ensuring accurate and region-specific toll calculations for transportation and logistics applications.
This endpoint streamlines the process of toll cost estimation by providing the exact state nomenclature required for further API interactions, eliminating guesswork and ensuring consistent data retrieval across the NHAI toll system.
Key Benefits:
→ Standardized State Identifiers: Provides consistent state naming conventions for reliable API interactions.
→ Complete Coverage: Includes all states with active NHAI toll plazas for comprehensive route planning.
→ Foundation for Toll Queries: Essential prerequisite data for accurate toll cost calculations.
→ Real-time Availability: Returns current list of states with operational toll infrastructure.
Use Cases:
→ Fleet Management Systems: Initialize route planning modules with available toll states for accurate cost estimation.
→ Freight Booking Platforms: Validate origin and destination states before calculating toll charges for shipments.
→ Last-Mile Delivery: Optimize delivery routes by identifying toll-applicable states in the logistics network.
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_namearray<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 toll plaza names for a specific state.
The NHAI Toll Plaza Names API retrieves a comprehensive list of toll plaza names within a specified Indian state. This endpoint serves as a crucial component in the toll calculation workflow, providing detailed toll plaza information that enables precise route planning and cost estimation. By supplying a specific state identifier, users can access all operational toll plazas managed by the National Highway Authority of India (NHAI) within that geographical region.
This API is essential for applications requiring granular toll plaza data for route optimization, toll cost calculations, and transportation planning. It bridges the gap between state-level toll information and specific toll plaza details, enabling developers to build sophisticated logistics and travel planning solutions with precise toll plaza identification.
Key Benefits:
→ State-Specific Filtering: Get targeted toll plaza information for precise geographical planning.
→ Complete Plaza Coverage: Access all operational toll plazas within the specified state.
→ Enhanced Route Planning: Enable detailed route optimization with specific toll plaza data.
→ Unique Client Tracking: Receive client-specific identifiers for transaction tracking and audit trails.
Use Cases:
→ Route Optimization Systems: Identify specific toll plazas along planned routes for accurate cost and time estimation.
→ Fleet Tracking Applications: Monitor vehicle progress through state-specific toll checkpoints.
→ Freight Cost Calculation: Determine exact toll expenses for shipments crossing specific state boundaries.
→ Supply Chain Planning: Optimize delivery routes by analyzing toll plaza density and locations within states.
Request Body Parameters:
→ state_name (required): The state identifier for which toll plaza names are requested. Must match the standardized state naming convention (e.g., "uttarakhand", "maharashtra").
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- state_namestringrequiredRequired. State name as returned by the toll plaza states API (for example uttarakhand).minLength 1default uttarakhand
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalNo description.
2 fields
- state_namestringoptionalNo description.nullable
- toll_plaza_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
Retrieve toll plaza rate details by state name and toll plaza name.
Fetches toll plaza fee structures from the Government toll database. Returns detailed per-vehicle-class rates for the matched toll plaza across NHAI, state, and private toll plazas in India.
Key Benefits:
→ Fetch toll rates by state name and toll plaza name.
→ Access per-vehicle-class rates: Car, LCV, Bus/Truck, HCM/EME, 3-axle, 4–6 axle, 7+ axle.
→ Government-authoritative source — data from official NHAI and state highway authorities.
→ Supports logistics cost estimation, route planning, and fleet management.
Use Cases:
→ Trip cost estimation and route planning for logistics and transport companies.
→ Fleet management and toll budgeting.
→ Regulatory compliance checks for vehicle operators.
→ Integration into ERP, TMS, and freight management systems.
Request Body Parameters:
→ state_name (required): State where the toll plaza is located (e.g. "uttarakhand").
→ toll_plaza_name (required): Name of the toll plaza (e.g. "bahadrabad").
Response Details:
→ Per-vehicle-class rates: single journey, return journey, monthly pass, and commercial-registered pass.
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- state_namestringrequiredRequired. State where the toll plaza is located, as returned by the toll plaza states API (for example uttarakhand).minLength 1default uttarakhand
- toll_plaza_namestringrequiredRequired. Toll plaza name, as returned by the toll plaza names API for that state (for example bahadrabad).minLength 1default bahadrabad
- request_idstringoptionalOptional. Your own reference id for this call. Generated for you when omitted.nullable
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalNo description.
9 fields
- state_namestringoptionalNo description.nullable
- toll_plaza_namestringoptionalNo description.nullable
- car_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- lcv_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- bus_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- three_axle_vehicle_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- four_to_six_axle_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- seven_or_more_axle_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo description.nullable
- hcm_eme_toll_rateobjectoptionalNo description.
4 fields
- single_journeystringoptionalNo description.nullable
- return_journeystringoptionalNo description.nullable
- monthly_passstringoptionalNo description.nullable
- commercial_vehicle_reg_in_districtstringoptionalNo 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