π LoadFlow OSOW API Documentation
The LoadFlow API provides instant access to oversize/overweight (OSOW) permit rules across all 50 U.S. states. Easily fetch regulations, compare dimensions, search specific rule fields, and automate your permitting workflows.
Use this documentation to understand authentication, rate limits, endpoints by category, webhooks, error handling, and field-by-field definitions.
π Authentication
Every request to the LoadFlow API must be authenticated with your personal API key. You must pass the key in the request header using the Authorization
scheme:
Authorization: Bearer YOUR_API_KEY
β€ To obtain a key, register here.
β Never expose your API key in frontend browser code. Treat it like a password.
π¦ Rate Limits
Each plan has a monthly request quota and burst protection. If you exceed your limit, responses will return status 429 Too Many Requests
.
Plan | Requests / Month | Burst Protection | Error If Exceeded |
---|---|---|---|
Free | 100 | 5 / day | 429 |
Pro | 2,000 | 200 / hour | 429 |
Ultra | 10,000 | 1,000 / hour | 429 |
Mega | 50,000+ | 5,000 / hour | β (Contact us) |
LoadFlow APIs enforce fair use policies. Rate limits reset monthly. Upgrade your plan to increase volume or burst protection.
π Core State Data
These endpoints let you fetch oversize/overweight permit rulebooks per U.S. state. They are the core of LoadFlowβs dataset.
GET /api/v1/states
FreeReturns a list of all 50 U.S. states with codes and display names.
fetch("/api/v1/states")GET /api/v1/state/{state}
ProReturns the full permit rulebook for a given state (e.g., TX, California). Includes weight limits, travel restrictions, escorts, etc.
fetch("/api/v1/state/Texas")GET /api/v1/state/{state}/fields
ProReturns all field keys available for a given state β useful for field-level queries or documentation rendering.
fetch("/api/v1/state/Texas/fields")GET /api/v1/state/{state}/fields/{field_path}
ProReturns a specific field value from a state's rulebook. Supports nested keys via dot-path (e.g., legal.height or escort.rules.specialCases).
fetch("/api/v1/state/Texas/fields/legal.height")
π Search & Compare
These endpoints allow advanced filtering across the 50-state rulebook, field-level queries, and direct comparisons between jurisdictions.
GET /api/v1/states/search-fields
ProSearch by rule field + value. Useful for finding states with specific height limits, escort rules, and more.
fetch("/api/v1/states/search-fields?field=legal.height&value=14 ft")GET /api/v1/states/tagged/{tag}
ProFind states that match specific tag categories like 'bridge-law', 'mountain', 'coastal', or 'restrictive'.
fetch("/api/v1/states/tagged/mountain")GET /api/v1/compare/{state1}/{state2}/field/{field_path}
ProCompare one rule across two states (e.g., Texas vs California for axleSpacings or night travel).
fetch("/api/v1/compare/Texas/California/field/travel.night")
π¦ Dataset Access
These endpoints allow Mega users to export the entire 50-state rulebook for offline use, system ingestion, or bulk editing. Formats include JSON, CSV, and ZIP.
GET /api/v1/dataset/full
MegaFull JSON dump of all 50 states. Deep nested data. ~300β500 KB in size.
fetch("/api/v1/dataset/full", { headers: { "x-api-key": "YOUR_KEY" } })GET /api/v1/dataset/download
MegaDownload full dataset as CSV, JSON, or ZIP format (select via query param: ?format=csv).
fetch("/api/v1/dataset/download?format=csv", { headers: { "x-api-key": "YOUR_KEY" } })
π‘ Webhooks & Sync
Webhooks let you receive real-time updates when dataset values change or new rules are published. Use the test tool below to simulate deliveries. Retry behavior, logging, and schema inspection are included.
POST /api/v1/webhooks/test
MegaTrigger a test webhook to your registered endpoint. Useful for validating payloads.
fetch("/api/v1/webhooks/test", { method: "POST", headers: { "x-api-key": "YOUR_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ endpoint: "https://yourserver.com/hook" }) })
GET /api/v1/webhooks/schema
UltraGet the JSON schema for real webhook delivery events (event_type, payload).
fetch("/api/v1/webhooks/schema", { headers: { "x-api-key": "YOUR_KEY" } })
POST /api/v1/webhooks/subscribe
MegaRegister your endpoint for dataset or field update events.
fetch("/api/v1/webhooks/subscribe", { method: "POST", headers: { "x-api-key": "YOUR_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ event: "field_change", target_url: "https://yourserver.com/hook" }) })
Webhooks automatically retry up to 5 times. Logs are viewable via the Enterprise dashboard.
π§ Licensing & Plans
These endpoints let you programmatically check the plan level of an API key, understand pricing tiers, and retrieve what each plan grants access to.
GET /api/v1/keys/verify
ProCheck if an API key is valid and return associated plan info.
fetch("/api/v1/keys/verify", { headers: { "x-api-key": "YOUR_KEY" } })
GET /api/v1/licenses/tiered
UltraGet all plan tiers, including rate limits and pricing info.
fetch("/api/v1/licenses/tiered", { headers: { "x-api-key": "YOUR_KEY" } })
GET /api/v1/plan/{state}
ProView required plan for each field in a specific state.
fetch("/api/v1/plan/Texas", { headers: { "x-api-key": "YOUR_KEY" } })
Plan verification is useful if you allow sub-users or assign plan roles dynamically.
π Field-Level Metadata
Each rule in the dataset includes standardized metadata that allows for smart autofill, validation, and comparison. Use the following endpoint to retrieve schema-level info:
GET /api/v1/docs/fields/{field}
ProReturns metadata about a specific rule field, including description, label, input format, plan tier, and value type.
fetch("/api/v1/docs/fields/axleSpacings", { headers: { "x-api-key": "YOUR_KEY" } })
π§ Example Metadata Response
{ "field": "axleSpacings", "label": "Axle Spacings (inches)", "type": "array<number>", "requiredFor": ["Mega"], "description": "Distance in inches between each axle, used for superload thresholds", "category": "Weights & Axles", "units": "inches", "nullable": false, "deprecated": false }
You can use this data to dynamically render form fields or highlight fields needing upgrades.
π‘ Webhooks & Event Delivery
Use webhooks to automatically receive updates when new state data is published, rules change, or errors are detected in submissions. Webhooks are available for Mega and Enterprise plans.
POST /api/v1/webhooks/test
MegaTriggers a simulated webhook event to your configured listener URL. Helpful for development and debugging integrations.
GET /api/v1/webhooks/schema
UltraReturns the JSON schema for all webhook events (including field changes, rule updates, or threshold alerts).
π§ Sample Webhook Payload
{ "event": "rule.updated", "state": "Colorado", "field": "escortRequirements.night", "old_value": "No escort", "new_value": "1 pilot required", "timestamp": "2025-07-01T04:00:00Z" }
Webhook URLs must respond with a 2xx status code within 5 seconds. You can configure failover behavior in your dashboard.
π§ͺ Testing & Demo Tools
Test API functionality before integrating it into your stack. No code required. All endpoints in demo mode return mock data for exploration and validation.
GET /demo
FreeLaunch the interactive API demo dashboard. Pre-filled sample requests show how to query state data.
GET /api/v1/docs/sample-payload
Pro+Returns a full sample payload for the `/state/${state}` route. Useful for generating tests or validating integration logic.
π Example Curl Command
curl -X GET "https://api.loadflowlogistics.com/api/v1/state/texas" \ -H "Authorization: Bearer YOUR_API_KEY"
Swap texas
with any 2-letter code or full name. This example works for all 50 U.S. states.
π License & Plan Tools
Determine which API tier is required to access a given field, verify a keyβs plan, or fetch full tier descriptions and pricing metadata for gating logic.
GET /api/v1/keys/verify
ProReturns a JSON object with the API key's plan, limits, and usage.
{ "plan": "Pro", "quota": 2000, "used": 327, "resets": "2025-08-01" }
GET /api/v1/licenses/tiered
UltraReturns metadata for all tiers including limits, price, and perks. Useful for onboarding dashboards.
GET /api/v1/plan/{"{"{state}"}"}
ProReturns the minimum required plan for every field in a given stateβs rulebook. This lets you dynamically grey-out UI fields for users on lower plans.
{ "maxGrossWeight": "Free", "escortRules": "Pro", "bridgeFormula": "Ultra" }
π§ Field-Level Metadata
For each rule field in the dataset (e.g. maxGrossWeight
, axleSpacingRules
), you can request documentation, tags, and field requirements.
GET /api/v1/docs/fields/{field}
ProReturns a JSON object with a description of the field, tags (e.g., "escort", "weight"), units, and examples.
{ "field": "axleSpacingRules", "description": "Minimum axle spacing requirements by state and configuration.", "tags": ["spacing", "weight", "compliance"], "units": "inches", "example": "48 in between axle 1 and 2, 60 in between 2 and 3" }
π‘ Use Cases
- Show tooltips in frontend UI for permit form fields
- Auto-suggest help text in your SaaS product
- Filter dataset by tag (e.g., show only escort-related fields)
- Build guided tutorials for field-level rules
π§ͺ API Usage Examples (Multi-language)
Below are real-world examples of calling the API from Python, JavaScript, cURL, and Postman.
π Python (requests)
import requests headers = { "Authorization": "Bearer YOUR_API_KEY" } response = requests.get("https://api.loadflowlogistics.com/api/v1/state/Texas", headers=headers) print(response.json())
π¨ JavaScript (fetch)
fetch("https://api.loadflowlogistics.com/api/v1/state/Texas", { headers: { Authorization: "Bearer YOUR_API_KEY" } }) .then(res => res.json()) .then(data => console.log(data));
π» cURL
curl -X GET https://api.loadflowlogistics.com/api/v1/state/Texas \ -H "Authorization: Bearer YOUR_API_KEY"
π¬ Postman
Create a new request in Postman:
- Method: GET
- URL:
https://api.loadflowlogistics.com/api/v1/state/Texas
- Header:
Authorization: Bearer YOUR_API_KEY
πΆ API Status & Uptime
These endpoints are useful for health monitoring, CI/CD checks, or alerting systems.
GET /api/v1/health
FreeBasic health check β returns 200 OK if online
GET /api/v1/health/deep
ProChecks DB, memory, external connections (slower)
GET /api/v1/version
FreeReturns current API version & last dataset update
GET /api/v1/states/stale
ProStates whose rules haven't updated in >90 days
Pro tip: Add /health
to your UptimeRobot or Cronitor integrations for automatic monitoring.
π§© Field Reference Guide
Use these field_path
values with the endpoint /api/v1/state/{"{"{state}"}"}/fields/{"{field_path}"}
. Each path returns the value of that specific rule.
Field Path | Description |
---|---|
legal_dimensions.width | Legal width in feet/inches |
legal_dimensions.height | Legal height limit |
legal_dimensions.length | Max legal vehicle length |
superload_thresholds.gross_weight | Weight that triggers superload status |
escort_requirements.width | Width thresholds for pilot/escort vehicles |
submission_methods | How to submit permits (portal, fax, etc.) |
travel_restrictions.weekend | Weekend travel limitations |
night_travel | Whether night travel is allowed |
signing_requirements.front_sign | If 'Oversize Load' signs are required |
fees.permit_flat | Flat fee amount for basic permits |
turnaround_time | Estimated permit processing delay |
Most fields are dot-separated. Nested arrays (e.g., axles[1].spacing
) are not supported in all plans.
π Analytics & Logging
OSOW API plans include usage tracking by key, endpoint, and timestamp. Use this information to:
- Monitor which endpoints are used most often
- Audit usage volume by day or month
- Debug API access from teams or third-party systems
- Identify unauthorized or excessive usage
Route | Calls (24h) | Avg Latency |
---|---|---|
/state/Texas | 51 | 220ms |
/state/California/fields/width | 23 | 180ms |
/compare/FL/GA/field/maxWeight | 11 | 310ms |
Want full JSON logs or webhook alerts on API activity? Contact support@loadflowlogistics.com for Enterprise logging features.
π οΈ SDK & Language Examples
The OSOW API can be accessed using any HTTP client. Below are working examples in different languages:
π‘ cURL
curl -X GET https://api.loadflowlogistics.com/api/v1/state/Texas \ -H "Authorization: Bearer YOUR_API_KEY"
π Python (requests)
import requests headers = { "Authorization": "Bearer YOUR_API_KEY" } res = requests.get("https://api.loadflowlogistics.com/api/v1/state/Texas", headers=headers) print(res.json())
π¦ JavaScript (Fetch)
fetch("https://api.loadflowlogistics.com/api/v1/state/Texas", { headers: { Authorization: "Bearer YOUR_API_KEY" } }) .then(res => res.json()) .then(data => console.log(data));
You can also use Postman or Insomnia to interact with the API visually. A public Postman collection is coming soon.
π§© Field Access Reference
Below is a sample of key data fields available in the dataset. Use /api/v1/state/{"{"{state}"}"}/fields/{field}
to retrieve each field individually.
Field Name | Description | Type | Plan |
---|---|---|---|
legal_dimensions.width | Maximum legal width without permit | string | Free |
legal_dimensions.height | Max height without requiring permit | string | Free |
superload_thresholds.gross_weight | Weight (lbs) beyond which a superload is triggered | number | Pro |
escort_requirements.front | Whether a front escort is required | boolean | Pro |
travel_restrictions.weekend | Restrictions on weekend travel | string | Ultra |
submission_methods[] | Accepted permit submission methods | array | Pro |
This is a partial list. Full metadata is available via /api/v1/licenses/tiered
.
π₯ Video: Getting Started with LoadFlow API
Watch this quick demo to understand how to connect, authenticate, and pull data from the API in under 5 minutes.
π Need more help?
Check our Frequently Asked Questions or reach out to support directly.
Documentation last updated: 7/18/2025