Skip to content

VIA Platform API Reference ​

Version: 1.0.0 Total Endpoints: 25 Base URL: https://via.handymanny.cloud/api

Authentication and management API for VIA Logistics Platform

Authentication ​

Method: JWT Bearer Token

Header:

Authorization: Bearer <token>

Get Token:

POST /api/auth/login
{
  "email": "user@example.com",
  "password": "password"
}

Endpoints ​

/ ​

GET Health ​

Root

Responses:

  • 200: Successful Response

/api/auth/login ​

POST Authentication ​

Authenticate user and get tokens

Request Body:

Model: LoginRequest

Responses:

  • 200: Successful Response
  • 401: Unauthorized
  • 403: Forbidden
  • 422: Validation Error

/api/auth/logout ​

POST Authentication ​

Logout and revoke refresh token

Request Body:

Model: LogoutRequest

Responses:

  • 200: Successful Response
  • 401: Unauthorized
  • 422: Validation Error

/api/auth/me ​

GET Authentication ​

Get current authenticated user

Responses:

  • 200: Successful Response
  • 401: Unauthorized

/api/auth/refresh ​

POST Authentication ​

Refresh access token

Request Body:

Model: RefreshTokenRequest

Responses:

  • 200: Successful Response
  • 401: Unauthorized
  • 422: Validation Error

/api/auth/register ​

POST Authentication ​

Register a new user (admin only)

Request Body:

Model: RegisterRequest

Responses:

  • 200: Successful Response
  • 403: Forbidden
  • 409: Conflict
  • 422: Validation Error

/api/auth/reset-password ​

POST Authentication ​

Reset password with token

Request Body:

Model: PasswordResetConfirm

Responses:

  • 200: Successful Response
  • 400: Bad Request
  • 422: Validation Error

/api/auth/reset-password-request ​

POST Authentication ​

Request a password reset token

Request Body:

Model: PasswordResetRequest

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/auth/verify ​

GET Authentication ​

Verify JWT token (for nginx auth_request)

Responses:

  • 200: Successful Response

/api/companies ​

GET Companies ​

List Companies

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • status (query, string) (optional)
  • search (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

POST Companies ​

Create Company

Request Body:

Model: CompanyCreate

Responses:

  • 201: Successful Response
  • 422: Validation Error

/api/companies/{company_id} ​

DELETE Companies ​

Delete Company

Parameters:

  • company_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Companies ​

Get Company

Parameters:

  • company_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Companies ​

Update Company

Parameters:

  • company_id (path, string) (required)

Request Body:

Model: CompanyUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/convoys ​

GET convoys ​

List Convoys

Parameters:

  • status (query, string) (optional)
  • destination_patio_id (query, string) (optional)
  • limit (query, integer) (optional)
  • offset (query, integer) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/convoys/form ​

POST convoys ​

Form Convoys Endpoint

Request Body:

Model: ConvoyFormRequest

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/convoys/{convoy_id} ​

DELETE convoys ​

Cancel Convoy

Parameters:

  • convoy_id (path, integer) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET convoys ​

Get Convoy

Parameters:

  • convoy_id (path, integer) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH convoys ​

Update Convoy

Parameters:

  • convoy_id (path, integer) (required)

Request Body:

Model: ConvoyUpdateRequest

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/drivers ​

GET Drivers ​

List Drivers

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • company_id (query, string) (optional)
  • status (query, string) (optional)
  • search (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

POST Drivers ​

Create Driver

Request Body:

Model: DriverCreate

Responses:

  • 201: Successful Response
  • 422: Validation Error

/api/drivers/{driver_id} ​

DELETE Drivers ​

Delete Driver

Parameters:

  • driver_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Drivers ​

Get Driver

Parameters:

  • driver_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Drivers ​

Update Driver

Parameters:

  • driver_id (path, string) (required)

Request Body:

Model: DriverUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/health ​

GET Health ​

API health check

Responses:

  • 200: Successful Response

/api/patios ​

GET Patios ​

List Patios

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • zone (query, string) (optional)
  • status (query, string) (optional)
  • search (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

POST Patios ​

Create Patio

Request Body:

Model: PatioCreate

Responses:

  • 201: Successful Response
  • 422: Validation Error

/api/patios/{patio_id} ​

DELETE Patios ​

Delete Patio

Parameters:

  • patio_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Patios ​

Get Patio

Parameters:

  • patio_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Patios ​

Update Patio

Parameters:

  • patio_id (path, string) (required)

Request Body:

Model: PatioUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/terminals ​

GET Terminals ​

List Terminals

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • port (query, string) (optional)
  • status (query, string) (optional)
  • search (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

POST Terminals ​

Create Terminal

Request Body:

Model: TerminalCreate

Responses:

  • 201: Successful Response
  • 422: Validation Error

/api/terminals/{terminal_id} ​

DELETE Terminals ​

Delete Terminal

Parameters:

  • terminal_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Terminals ​

Get Terminal

Parameters:

  • terminal_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Terminals ​

Update Terminal

Parameters:

  • terminal_id (path, string) (required)

Request Body:

Model: TerminalUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/trucks ​

GET Trucks ​

List Trucks

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • company_id (query, string) (optional)
  • status (query, string) (optional)
  • truck_type (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

POST Trucks ​

Create Truck

Request Body:

Model: TruckCreate

Responses:

  • 201: Successful Response
  • 422: Validation Error

/api/trucks/{truck_id} ​

DELETE Trucks ​

Delete Truck

Parameters:

  • truck_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Trucks ​

Get Truck

Parameters:

  • truck_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Trucks ​

Update Truck

Parameters:

  • truck_id (path, string) (required)

Request Body:

Model: TruckUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/users ​

GET Users ​

List Users

Parameters:

  • limit (query, integer) (optional)
  • offset (query, integer) (optional)
  • role (query, string) (optional)
  • status (query, string) (optional)
  • search (query, string) (optional)
  • sort (query, string) (optional)
  • order (query, string) (optional)

Responses:

  • 200: Successful Response
  • 422: Validation Error

/api/users/{user_id} ​

DELETE Users ​

Delete User

Parameters:

  • user_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

GET Users ​

Get User

Parameters:

  • user_id (path, string) (required)

Responses:

  • 200: Successful Response
  • 422: Validation Error

PATCH Users ​

Update User

Parameters:

  • user_id (path, string) (required)

Request Body:

Model: UserUpdate

Responses:

  • 200: Successful Response
  • 422: Validation Error

Data Models ​

CompanyCreate ​

FieldTypeDescription
namestring
rfcany
contact_emailany
contact_phoneany
addressany
cityany
stateany
countryany

CompanyResponse ​

FieldTypeDescription
company_idstring
namestring
rfcany
statusstring
contact_emailany
contact_phoneany
addressany
cityany
stateany
countryany
fleet_sizeany
total_violationsany
compliance_scoreany
created_atstring
updated_atstring

CompanyUpdate ​

FieldTypeDescription
nameany
rfcany
contact_emailany
contact_phoneany
addressany
cityany
stateany
statusany

ConvoyCancelResponse ​

FieldTypeDescription
successboolean
messagestring
trucks_releasedinteger

ConvoyDetailResponse ​

FieldTypeDescription
convoy_idinteger
convoy_codestring
destination_patioany
leader_truckany
trucksarray
statusstring
truck_countinteger
container_countinteger
departure_timeany
etaany
distance_kmany
max_speed_kmhany
travel_time_minany
loading_time_minany
total_time_minany
current_speed_kmhany
throttle_activeboolean
notesany
created_atany
updated_atany

ConvoyFormRequest ​

FieldTypeDescription
terminal_idany
sequence_idany
auto_assignboolean
departure_timeany
traffic_factornumber
weather_factornumber

ConvoyFormResponse ​

FieldTypeDescription
successboolean
convoys_formedinteger
convoysarray
skipped_unitsinteger
messageany

ConvoyFormResultItem ​

FieldTypeDescription
convoy_idinteger
convoy_codestring
destination_patio_idinteger
destination_patio_nameany
truck_countinteger
container_countinteger
departure_timeany
etaany
distance_kmany
max_speed_kmhany
statusstring

ConvoyListItem ​

FieldTypeDescription
convoy_idinteger
convoy_codestring
destination_patioany
truck_countinteger
container_countinteger
departure_timeany
etaany
distance_kmany
max_speed_kmhany
statusstring
current_locationany
created_atany

ConvoyListResponse ​

FieldTypeDescription
totalinteger
convoysarray

ConvoyTruckResponse ​

FieldTypeDescription
truck_idinteger
platestring
unit_numberany
positioninteger
is_leaderboolean
driverany
containersarray
truck_typeany

ConvoyUpdateRequest ​

FieldTypeDescription
max_speed_kmhany
destination_patio_idany
etaany
statusany
departure_timeany
notesany

ConvoyUpdateResponse ​

FieldTypeDescription
successboolean
convoyany

DeleteResponse ​

FieldTypeDescription
successboolean
messagestring

DriverCreate ​

FieldTypeDescription
company_idstring
namestring
license_numberstring
phoneany
emailany

DriverUpdate ​

FieldTypeDescription
nameany
license_numberany
phoneany
emailany
statusany
total_tripsany
total_violationsany
safety_scoreany
speed_violationsany

ErrorResponse ​

FieldTypeDescription
detailstring

HTTPValidationError ​

FieldTypeDescription
detailarray

HealthResponse ​

FieldTypeDescription
statusstring
versionstring
databasestring

ListResponse ​

FieldTypeDescription
totalinteger
limitinteger
offsetinteger
dataarray

LoginRequest ​

FieldTypeDescription
emailstring
passwordstring

LoginResponse ​

FieldTypeDescription
access_tokenstring
refresh_tokenstring
token_typestring
userany

LogoutRequest ​

FieldTypeDescription
refresh_tokenstring

LogoutResponse ​

FieldTypeDescription
successboolean
messagestring

PasswordResetConfirm ​

FieldTypeDescription
reset_tokenstring
new_passwordstring

PasswordResetConfirmResponse ​

FieldTypeDescription
successboolean
messagestring

PasswordResetRequest ​

FieldTypeDescription
emailstring

PasswordResetRequestResponse ​

FieldTypeDescription
reset_tokenstring
messagestring
expires_in_minutesinteger

PatioCreate ​

FieldTypeDescription
namestring
zoneany
locationany
cityany
countryany
contact_emailany
contact_phoneany
total_capacityany
available_capacityany

PatioUpdate ​

FieldTypeDescription
nameany
zoneany
locationany
cityany
contact_emailany
contact_phoneany
total_capacityany
available_capacityany
statusany

RefreshResponse ​

FieldTypeDescription
access_tokenstring
token_typestring

RefreshTokenRequest ​

FieldTypeDescription
refresh_tokenstring

RegisterRequest ​

FieldTypeDescription
emailstring
passwordstring
namestring
rolestring
company_idany

RegisterResponse ​

FieldTypeDescription
userany
messagestring

SuccessResponse ​

FieldTypeDescription
successboolean
dataany
messageany

TerminalCreate ​

FieldTypeDescription
namestring
portany
locationany
cityany
countryany
contact_emailany
contact_phoneany
operating_hoursany

TerminalResponse ​

FieldTypeDescription
terminal_idstring
namestring
portany
statusstring
locationany
cityany
countryany
contact_emailany
contact_phoneany
operating_hoursany
recent_sequencesany
created_atstring
updated_atstring

TerminalUpdate ​

FieldTypeDescription
nameany
portany
locationany
cityany
contact_emailany
contact_phoneany
operating_hoursany
statusany

TruckCreate ​

FieldTypeDescription
company_idstring
registrationstring
truck_typestring
brandany
modelany
yearany
capacity_tonsany

TruckResponse ​

FieldTypeDescription
truck_idstring
company_idstring
registrationstring
truck_typestring
statusstring
brandany
modelany
yearany
current_driver_idany
current_locationany
capacity_tonsany
gps_statusany
created_atstring
updated_atstring

TruckUpdate ​

FieldTypeDescription
registrationany
truck_typeany
brandany
modelany
yearany
current_driver_idany
current_locationany
capacity_tonsany
gps_statusany
statusany

UserResponse ​

FieldTypeDescription
idstring
emailstring
namestring
rolestring
statusstring
company_idany
created_atstring

UserUpdate ​

FieldTypeDescription
nameany
roleany
company_idany
statusany

ValidationError ​

FieldTypeDescription
locarray
msgstring
typestring

app__convoy_schemas__DriverResponse ​

FieldTypeDescription
namestring
phoneany

app__convoy_schemas__PatioResponse ​

FieldTypeDescription
idinteger
codestring
namestring
latany
lngany

app__schemas__DriverResponse ​

FieldTypeDescription
driver_idstring
company_idstring
namestring
license_numberstring
statusstring
phoneany
emailany
total_tripsany
total_violationsany
safety_scoreany
speed_violationsany
created_atstring
updated_atstring

app__schemas__PatioResponse ​

FieldTypeDescription
patio_idstring
namestring
zoneany
statusstring
locationany
cityany
countryany
contact_emailany
contact_phoneany
total_capacityany
available_capacityany
capacity_historyany
created_atstring
updated_atstring

Last Updated: 2026-02-28 11:36:05 Auto-generated from OpenAPI specification

HandyManny Documentation System