{ "opencollection": "1.0.0", "info": { "name": "Pavement Conditions API", "version": "2.0.2" }, "items": [ { "info": { "name": "Parameters", "type": "folder" }, "items": [ { "info": { "name": "Get Parameters", "type": "http" }, "http": { "method": "GET", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/parameters", "params": [ { "name": "name", "value": "", "type": "query", "description": "Name of the parameter to retrieve" } ], "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieves parameter details for v2 API. If the `name` query parameter is empty, it returns all parameters.\n**v2 includes pagination parameters**: total, limit, page, nextOffset\n\n| Variable Name | Description | Imperial Unit | Metric Unit |\n| ------------- | ----------- | ------------- | ----------- |\n| total | Total number of records available inside the BBox | N/A | N/A |\n| limit | Maximum number of records per page | N/A | N/A |\n| page | Current page number | N/A | N/A |\n| nextOffset | Offset " } ] }, { "info": { "name": "Pavement Conditions", "type": "folder" }, "items": [ { "info": { "name": "Get Pavement Conditions", "type": "http" }, "http": { "method": "GET", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/pavement/conditions", "params": [ { "name": "bbox", "value": "-156.1317111,19.6270521,-155.9317111,19.8270521", "type": "query", "description": "Bounding box coordinates to filter results by geographic area.\nFormat: `minLongitude,minLatitude,maxLongitude,maxLatitude`\n" }, { "name": "limit", "value": "1000", "type": "query", "description": "Maximum number of records to return. Default is 1000." }, { "name": "page", "value": "1", "type": "query", "description": "Page number for pagination. Default is 1." }, { "name": "startTime", "value": "2025-12-04T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp greater than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "endTime", "value": "2025-12-05T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp less than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "units", "value": "imperial", "type": "query", "description": "Unit system for response values. Default is imperial." }, { "name": "startPoint", "value": "-93.3905,45.1310", "type": "query", "description": "Starting point coordinates for Mapbox route generation.\nFormat: `longitude,latitude`\n" }, { "name": "endPoint", "value": "-93.2695,45.1420", "type": "query", "description": "Ending point coordinates for Mapbox route generation.\nFormat: `longitude,latitude`\n" }, { "name": "departAt", "value": "2026-03-13T15:00:00.000Z", "type": "query", "description": "Departure time for the route. Mutually exclusive with `arriveAt`.\nWhen provided, the response includes per-feature `arrivalTime` and top-level `properties.arrivalTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "arriveAt", "value": "2026-03-13T16:00:00.000Z", "type": "query", "description": "Desired arrival time at the destination. Mutually exclusive with `departAt`.\nWhen provided, the response includes per-feature `departureTime` and top-level `properties.departureTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "bufferMeters", "value": "5", "type": "query", "description": "Buffer distance in meters around the route for spatial query. Default is 5." }, { "name": "etaFilter", "value": "true", "type": "query", "description": "When true, filters condition data to only return the record matching the segment's arrival time window.\nRequires `departAt` and either `startPoint`/`endPoint` or duration in body.\n" }, { "name": "parameter", "value": "crashRiskIndex,mobilityIndex", "type": "query", "description": "Comma-separated list of field names to include in the response data.\nWhen provided, only the specified fields are returned per condition record.\nUse the /v2/parameters endpoint to see valid options.\n" } ], "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieves pavement conditions for road segments in GeoJSON FeatureCollection format. Returns up to 1000 records by default.\nData is grouped by segment ID with pagination metadata included in the response.\n\n**Query modes:**\n- By bounding box (`bbox`) — returns all segments within the area\n- By route (`startPoint` + `endPoint`) — uses Mapbox Directions API to generate a route, then returns segments along it\n\n**Filtering options:**\n- Pavement data can be filtered using either `startPoint` and `endP" }, { "info": { "name": "Get Pavement Conditions by Route", "type": "http" }, "http": { "method": "POST", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/pavement/conditions", "params": [ { "name": "departAt", "value": "2026-03-13T15:00:00.000Z", "type": "query", "description": "Departure time for the route. Mutually exclusive with `arriveAt`.\nWhen provided, the response includes per-feature `arrivalTime` and top-level `properties.arrivalTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "arriveAt", "value": "2026-03-13T16:00:00.000Z", "type": "query", "description": "Desired arrival time at the destination. Mutually exclusive with `departAt`.\nWhen provided, the response includes per-feature `departureTime` and top-level `properties.departureTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "bufferMeters", "value": "5", "type": "query", "description": "Buffer distance in meters around the route for spatial query. Default is 5." }, { "name": "limit", "value": "100", "type": "query", "description": "Maximum number of records to return. Default is 100 for route-based requests.\nMaximum allowed is 300 for route-based requests.\n" }, { "name": "page", "value": "1", "type": "query", "description": "Page number for pagination. Default is 1." }, { "name": "startTime", "value": "2025-12-04T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp greater than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "endTime", "value": "2025-12-05T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp less than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "units", "value": "imperial", "type": "query", "description": "Unit system for response values. Default is imperial." }, { "name": "etaFilter", "value": "true", "type": "query", "description": "When true, filters condition data to only return the record matching the segment's arrival time window.\nRequires `departAt` and either `startPoint`/`endPoint` or duration in body.\n" }, { "name": "parameter", "value": "crashRiskIndex,mobilityIndex", "type": "query", "description": "Comma-separated list of field names to include in the response data.\nWhen provided, only the specified fields are returned per condition record.\nUse the /v2/parameters endpoint to see valid options.\n" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieves pavement conditions along a route in GeoJSON FeatureCollection format.\nSupports two modes:\n\n**Option 1 - Mapbox waypoints (query params):**\nProvide `startPoint` and `endPoint` to automatically generate a route via Mapbox Directions API.\nOptionally provide `departAt` or `arriveAt` (mutually exclusive) for per-segment timing.\n\n**Option 2 - Direct route (body):**\nProvide a GeoJSON LineString or FeatureCollection in the request body.\n\n**Filtering options:**\n- Pavement data can be filtered " } ] }, { "info": { "name": "Logistics", "type": "folder" }, "items": [ { "info": { "name": "Get Logistics Data", "type": "http" }, "http": { "method": "GET", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/logistics", "params": [ { "name": "bbox", "value": "-156.1317111,19.6270521,-155.9317111,19.8270521", "type": "query", "description": "Bounding box coordinates to filter results by geographic area.\nFormat: `minLongitude,minLatitude,maxLongitude,maxLatitude`\n" }, { "name": "limit", "value": "1000", "type": "query", "description": "Maximum number of records to return. Default is 1000." }, { "name": "page", "value": "1", "type": "query", "description": "Page number for pagination. Default is 1." }, { "name": "startTime", "value": "2025-12-04T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp greater than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "endTime", "value": "2025-12-05T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp less than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "units", "value": "", "type": "query", "description": "Unit system for response values. Default is imperial." }, { "name": "startPoint", "value": "-93.3905,45.1310", "type": "query", "description": "Starting point coordinates for Mapbox route generation.\nFormat: `longitude,latitude`\n" }, { "name": "endPoint", "value": "-93.2695,45.1420", "type": "query", "description": "Ending point coordinates for Mapbox route generation.\nFormat: `longitude,latitude`\n" }, { "name": "departAt", "value": "2026-03-13T15:00:00.000Z", "type": "query", "description": "Departure time for the route. Mutually exclusive with `arriveAt`.\nWhen provided, the response includes per-feature `arrivalTime` and top-level `properties.arrivalTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "arriveAt", "value": "2026-03-13T16:00:00.000Z", "type": "query", "description": "Desired arrival time at the destination. Mutually exclusive with `departAt`.\nWhen provided, the response includes per-feature `departureTime` and top-level `properties.departureTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "bufferMeters", "value": "5", "type": "query", "description": "Buffer distance in meters around the route for spatial query. Default is 5." }, { "name": "etaFilter", "value": "true", "type": "query", "description": "When true, filters condition data to only return the record matching the segment's arrival time window.\nRequires `departAt` and either `startPoint`/`endPoint` or duration in body.\n" }, { "name": "parameter", "value": "crashRiskIndex,mobilityIndex", "type": "query", "description": "Comma-separated list of field names to include in the response data.\nWhen provided, only the specified fields are returned per condition record.\nUse the /v2/parameters endpoint to see valid options.\n" } ], "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieves logistics-focused pavement data in GeoJSON FeatureCollection format. Returns up to 1000 records by default.\nData is grouped by segment ID with pagination metadata included in the response.\n\n**Query modes:**\n- By bounding box (`bbox`) — returns all segments within the area\n- By route (`startPoint` + `endPoint`) — uses Mapbox Directions API to generate a route, then returns segments along it\n\n**Filtering options:**\n- Pavement data can be filtered using either `startPoint` and `endPoint` " }, { "info": { "name": "Get Logistics Data by Route", "type": "http" }, "http": { "method": "POST", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/logistics", "params": [ { "name": "departAt", "value": "2026-03-13T15:00:00.000Z", "type": "query", "description": "Departure time for the route. Mutually exclusive with `arriveAt`.\nWhen provided, the response includes per-feature `arrivalTime` and top-level `properties.arrivalTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "arriveAt", "value": "2026-03-13T16:00:00.000Z", "type": "query", "description": "Desired arrival time at the destination. Mutually exclusive with `departAt`.\nWhen provided, the response includes per-feature `departureTime` and top-level `properties.departureTimeUTC`.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "bufferMeters", "value": "5", "type": "query", "description": "Buffer distance in meters around the route for spatial query. Default is 5." }, { "name": "limit", "value": "1000", "type": "query", "description": "Maximum number of records to return. Default is 1000." }, { "name": "page", "value": "1", "type": "query", "description": "Page number for pagination. Default is 1." }, { "name": "startTime", "value": "2025-12-04T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp greater than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "endTime", "value": "2025-12-05T20:00:00.000Z", "type": "query", "description": "Filter records with timestamp less than or equal to this value.\nFormat: ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ)\n" }, { "name": "units", "value": "", "type": "query", "description": "Unit system for response values. Default is imperial." }, { "name": "etaFilter", "value": "true", "type": "query", "description": "When true, filters condition data to only return the record matching the segment's arrival time window.\nRequires `departAt` and either `startPoint`/`endPoint` or duration in body.\n" }, { "name": "parameter", "value": "crashRiskIndex,mobilityIndex", "type": "query", "description": "Comma-separated list of field names to include in the response data.\nWhen provided, only the specified fields are returned per condition record.\nUse the /v2/parameters endpoint to see valid options.\n" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieves logistics-focused pavement data along a route in GeoJSON FeatureCollection format.\nSupports two modes:\n\n**Option 1 - Mapbox waypoints (query params):**\nProvide `startPoint` and `endPoint` to automatically generate a route via Mapbox Directions API.\nOptionally provide `departAt` or `arriveAt` (mutually exclusive) for per-segment timing.\n\n**Option 2 - Direct route (body):**\nProvide a GeoJSON LineString or FeatureCollection in the request body.\n\n**Filtering options:**\n- Pavement data can " } ] }, { "info": { "name": "Directions", "type": "folder" }, "items": [ { "info": { "name": "Get Route Directions", "type": "http" }, "http": { "method": "GET", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/directions", "params": [ { "name": "startPoint", "value": "-93.3905,45.1310", "type": "query", "description": "Starting point coordinates for the route.\nFormat: `longitude,latitude`\n" }, { "name": "endPoint", "value": "-93.2695,45.1420", "type": "query", "description": "Ending point coordinates for the route.\nFormat: `longitude,latitude`\n" }, { "name": "departAt", "value": "2026-03-13T15:00:00Z", "type": "query", "description": "Departure time for the route. Mutually exclusive with `arriveAt`.\nWhen provided, `arrivalTimeUTC` is calculated as `departAt + route duration`.\nFormat: ISO 8601 UTC with \"Z\" suffix (e.g., 2026-03-13T15:00:00Z)\n" }, { "name": "arriveAt", "value": "2026-03-13T16:00:00Z", "type": "query", "description": "Desired arrival time at the destination. Mutually exclusive with `departAt`.\nWhen provided, `departureTimeUTC` is calculated as `arriveAt - route duration`.\nFormat: ISO 8601 UTC with \"Z\" suffix (e.g., 2026-03-13T16:00:00Z)\n" }, { "name": "alternatives", "value": "true", "type": "query", "description": "When \"true\", returns up to 3 alternative routes sorted by ascending duration.\nWhen \"false\" or omitted, returns exactly 1 route.\n" } ], "auth": { "type": "oauth2", "flow": "client_credentials", "accessTokenUrl": "https://api.auth.dtn.com/v1/tokens/authorize", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Returns cacheable route geometry from the Mapbox Directions API as a GeoJSON FeatureCollection.\nThis endpoint decouples route geometry from weather/pavement data, enabling independent caching\nof the route so the frontend can lock in a stable geometry for navigation (similar to Waze/Google Maps).\n\nThe `geojson` field in the response is directly compatible with the POST `/v2/pavement/conditions`\nand POST `/v2/logistics` endpoints — it can be passed as the `route` body without transformation.\n\n**Ti" } ] }, { "info": { "name": "Health", "type": "folder" }, "items": [ { "info": { "name": "Health Check", "type": "http" }, "http": { "method": "GET", "url": "https://pavement-condition.prd.wx.zones.dtn.com/v2/health-check" }, "docs": "The health check endpoint provides information about the health of a web service.\n" } ] } ], "bundled": true }