OpenAPI Specification
openapi: 3.0.3
info:
title: Toro Horizon360 Crews Equipment API
description: Toro Horizon360 is an all-in-one business management software for landscape contractors. The API provides endpoints for managing crews, schedules, jobs, customers, invoices, equipment, and payments for landscaping businesses.
version: 1.0.0
contact:
name: Toro Company
url: https://horizon360.toro.com/
x-logo:
url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
servers:
- url: https://api.horizon360.toro.com/v1
description: Horizon360 Production API
security:
- bearerAuth: []
tags:
- name: Equipment
description: Track and manage landscaping equipment
paths:
/equipment:
get:
operationId: listEquipment
summary: List Equipment
description: Returns a paginated list of equipment in the fleet.
tags:
- Equipment
parameters:
- name: status
in: query
schema:
type: string
enum:
- active
- maintenance
- retired
- name: type
in: query
schema:
type: string
description: Filter by equipment type
- name: page
in: query
schema:
type: integer
default: 1
- name: limit
in: query
schema:
type: integer
default: 25
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/EquipmentList'
post:
operationId: addEquipment
summary: Add Equipment
description: Add a new piece of equipment to the fleet.
tags:
- Equipment
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EquipmentInput'
responses:
'201':
description: Equipment added
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment'
/equipment/{equipmentId}:
get:
operationId: getEquipment
summary: Get Equipment
description: Retrieve details for a specific piece of equipment.
tags:
- Equipment
parameters:
- name: equipmentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment'
'404':
$ref: '#/components/responses/NotFound'
/equipment/{equipmentId}/location:
get:
operationId: getEquipmentLocation
summary: Get Equipment Location
description: Returns the current GPS location of a specific piece of equipment.
tags:
- Equipment
parameters:
- name: equipmentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/EquipmentLocation'
components:
schemas:
EquipmentList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Equipment'
total:
type: integer
page:
type: integer
limit:
type: integer
EquipmentLocation:
type: object
properties:
equipmentId:
type: string
location:
$ref: '#/components/schemas/GeoLocation'
speed:
type: number
description: Current speed in mph
heading:
type: integer
description: Heading in degrees
timestamp:
type: string
format: date-time
EquipmentInput:
type: object
required:
- name
- type
properties:
name:
type: string
type:
type: string
brand:
type: string
model:
type: string
serialNumber:
type: string
purchaseDate:
type: string
format: date
Error:
type: object
properties:
code:
type: string
message:
type: string
GeoLocation:
type: object
properties:
latitude:
type: number
format: double
longitude:
type: number
format: double
altitude:
type: number
Equipment:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
brand:
type: string
model:
type: string
serialNumber:
type: string
status:
type: string
enum:
- active
- maintenance
- retired
purchaseDate:
type: string
format: date
lastServiceDate:
type: string
format: date
nextServiceDate:
type: string
format: date
hoursUsed:
type: number
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT