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