# FHWA V2X App API

**Canonical:** https://apis.io/apis/federal-highway-administration/v2x-app-api/  
**Provider:** Federal Highway Administration — https://apis.io/providers/federal-highway-administration/  
**Base URL:** http://localhost:8080  
**Documentation:** https://github.com/usdot-fhwa-stol/v2x-app-api

FHWA V2X App API is one of 2 APIs that [Federal Highway Administration](https://apis.io/providers/federal-highway-administration/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include V2X, Connected Vehicles, Cooperative Driving Automation, Geofencing, and SAE J2735. The published artifact set on APIs.io includes an OpenAPI specification and a support channel.

Open-source REST API published by the FHWA Saxton Transportation Operations Laboratory (STOL). It sits between mobile applications and a Multi-Access Edge Computing V2X broker, and provides Keycloak-backed authentication, ETX MQTT client registration, deposit of UPER-encoded SAE J2735 MAP and TIM messages scoped by GeoJSON geofences, J2735 decoding, GeoJSON path management, and per-vendor and per-user registration limits. 29 paths, 40 operations, 46 schemas, OpenAPI 3.1.0. FHWA operates NO public instance of this API — the contract's only server entry is the springdoc-generated http://localhost:8080 placeholder, and the operator supplies the base URL when they deploy the published container stack. baseURL is therefore deliberately null rather than guessed.

## Operations (40)

| Method | Path | Summary |
|---|---|---|
| GET | `/prd/v2/registration` | Check registration status |
| PUT | `/prd/v2/registration` | Update ETX client registration |
| POST | `/prd/v2/registration` | Register ETX client |
| GET | `/prd/v2/configurations/geofence` | Get geofence by ID |
| PUT | `/prd/v2/configurations/geofence` | Update existing geofence |
| POST | `/prd/v2/configurations/geofence` | Create new geofence |
| DELETE | `/prd/v2/configurations/geofence` | Delete geofence |
| POST | `/prd/v2/registration-connection` | Register and connect ETX client |
| GET | `/prd/v2/paths` | Get all paths |
| POST | `/prd/v2/paths` | Create or update path |
| POST | `/prd/v2/deposit/geofence` | Deposit V2X Message |
| DELETE | `/prd/v2/deposit/geofence` | Delete geofence by identifier |
| POST | `/prd/v2/deposit/geofence/expiration/cleanup` | Manually trigger Geofence expiration cleanup |
| POST | `/prd/v2/connection` | Establish ETX client connection |
| POST | `/prd/v2/configurations/clear` | Clear multiple geofences |
| GET | `/prd/v2/admin/vendor-limits` | Get all vendor limits |
| POST | `/prd/v2/admin/vendor-limits` | Create or update vendor limits |
| GET | `/prd/v2/admin/user-limits` | Get all user limits |
| POST | `/prd/v2/admin/user-limits` | Create or update user limits |
| POST | `/auth/token` | Generate authentication token |
| GET | `/prd/v2/tim/icons/{version}` | Download TIM icons TAR.GZ |
| GET | `/prd/v2/tim/configuration` | Get TIM configuration |
| GET | `/prd/v2/secrets` | Get secret configuration |
| GET | `/prd/v2/registration/cleanup/vendor/{vendorId}` | Clean up old registrations for vendor |
| GET | `/prd/v2/paths/{id}` | Get path by ID |
| DELETE | `/prd/v2/paths/{id}` | Delete path |
| GET | `/prd/v2/deposit/geofence/expiration/expired` | Get expired Geofence deployments |
| GET | `/prd/v2/deposit/geofence/expiration/cleanup/status` | Get cleanup service status |
| GET | `/prd/v2/deposit/geofence/deployments` | Get all active Geofence deployments |
| GET | `/prd/v2/deposit/geofence/deployments/{geofenceId}` | Get Geofence deployment by ID |
| GET | `/prd/v2/deposit/geofence/deployments/{geofenceId}/geohashes` | Get geohashes for a Geofence deployment |
| GET | `/prd/v2/deposit/geofence/deployments/user/{username}` | Get Geofence deployments by user |
| GET | `/prd/v2/deposit/geofence/deployments/geohash/{geohash}` | Get Geofence deployments by geohash |
| GET | `/prd/v2/deposit/geofence/deployments/expired` | Get expired Geofence deployments |
| GET | `/prd/v2/configurations/geofence/ids` | Get all geofence IDs |
| GET | `/prd/v2/admin/vendor-limits/{vendorId}` | Get vendor limits by vendor ID |
| DELETE | `/prd/v2/admin/vendor-limits/{vendorId}` | Delete vendor limits |
| GET | `/prd/v2/admin/user-limits/vendor/{vendorId}` | Get user limits by vendor ID |
| GET | `/prd/v2/admin/user-limits/user/{username}` | Get user limits by username |
| DELETE | `/prd/v2/admin/user-limits/user/{username}/vendor/{vendorId}` | Delete user limits |

## Machine-readable artifacts (5)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/federal-highway-administration/refs/heads/main/openapi/federal-highway-administration-v2x-app-api-openapi.json
- **Overlay** — https://raw.githubusercontent.com/api-evangelist/federal-highway-administration/refs/heads/main/overlays/federal-highway-administration-v2x-app-api-overlay.yaml
- **Protobuf** — https://raw.githubusercontent.com/api-evangelist/federal-highway-administration/refs/heads/main/grpc/federal-highway-administration-geohash-routed-msg.proto
- **SourceCode** — https://github.com/usdot-fhwa-stol/v2x-app-api
- **Support** — https://github.com/usdot-fhwa-stol/v2x-app-api/issues

## Other Federal Highway Administration APIs (1)

- [Federal Highway Administration](https://apis.io/apis/federal-highway-administration/federal-highway-administration/)

## Tags

V2X, Connected Vehicles, Cooperative Driving Automation, Geofencing, SAE J2735

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/federal-highway-administration/v2x-app-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/federal-highway-administration/.
