API Overview

July 17, 2026 ยท View on GitHub

The Logistics API is a RESTful service built with ASP.NET Core.

Base URL

EnvironmentURL
Developmenthttps://localhost:7000
Productionhttps://api.yourdomain.com

Swagger Documentation

Interactive API documentation is available at:

Authentication

All API endpoints (except health checks) require authentication via JWT Bearer tokens.

GET /api/loads HTTP/1.1
Host: api.yourdomain.com
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

See Authentication for details on obtaining tokens.

Response Format

Success Response

{
  "isSuccess": true,
  "data": { ... },
  "error": null
}

Error Response

{
  "isSuccess": false,
  "data": null,
  "error": "Error message describing what went wrong"
}

Paginated Response

{
  "isSuccess": true,
  "data": {
    "items": [ ... ],
    "totalItems": 100,
    "totalPages": 10,
    "currentPage": 1,
    "pageSize": 10
  }
}

API Endpoints

Core Resources

ResourceEndpointDescription
Loads/api/loadsShipment management
Trips/api/tripsTrip tracking
Customers/api/customersCustomer management
Employees/api/employeesEmployee records
Drivers/api/driversDriver-specific data
Trucks/api/trucksFleet management
Invoices/api/invoicesBilling
Payments/api/paymentsPayment processing

Administrative

ResourceEndpointDescription
Users/api/usersUser management
Roles/api/rolesRole management
Tenants/api/tenantsTenant management
Subscriptions/api/subscriptionsBilling plans

Messaging

ResourceEndpointDescription
Conversations/api/messages/conversationsGet/create conversations
Messages/api/messagesSend and receive messages
Unread Count/api/messages/unread-countGet unread message count

Inspections

ResourceEndpointDescription
Inspections/api/inspectionsCargo condition reports (list/get/create)
Inspection Parts/api/inspections/parts?loadType=...Per-cargo-type part catalog used to classify defects
VIN Decoder/api/vins/{vin}Decode VIN to vehicle info

Documents

ResourceEndpointDescription
Documents/api/documentsFile management
Proof of Delivery/api/documents/podCapture POD with photos/signature
Bill of Lading/api/documents/bolCapture BOL documents

Utilities

ResourceEndpointDescription
Notifications/api/notificationsPush notifications
Reports/api/reportsReport generation
Stats/api/statsAnalytics data

Common Query Parameters

Pagination

GET /api/loads?page=1&pageSize=20

Sorting

GET /api/loads?orderBy=createdDate&descending=true

Filtering

GET /api/loads?status=active&customerId=123
GET /api/loads?search=container

HTTP Status Codes

CodeMeaning
200Success
201Created
400Bad Request (validation error)
401Unauthorized (no/invalid token)
403Forbidden (insufficient permissions)
404Not Found
500Internal Server Error

Rate Limiting

The API applies a global fixed-window limiter of 100 requests/minute, partitioned by authenticated user (falling back to the Host header). Stricter named policies apply to specific surfaces (impersonation, login, mcp). Exceeded limits return 429. Full table in Architecture overview โ†’ Rate limiting.

Webhooks

Stripe webhooks are received at:

POST /webhooks/stripe

See Stripe Webhooks for configuration, and Webhook conventions for signature validation and idempotency.

Real-Time (SignalR)

For real-time features, connect to SignalR hubs:

  • GPS Tracking: /hubs/tracking
  • Notifications: /hubs/notification
  • Chat: /hubs/chat
  • AI Dispatch: /hubs/ai-dispatch

See SignalR Hubs for details.

API Client Generation

The Angular apps generate their API client from OpenAPI:

cd src/Client/Logistics.Angular
bun run gen:api

This creates TypeScript types and services matching the API in the shared library.

Next Steps