Fleetio Fuel Entries API
Record and retrieve fuel purchases per vehicle, including volume, cost, fuel economy, meter readings, and vendor, for fuel and cost tracking.
Record and retrieve fuel purchases per vehicle, including volume, cost, fuel economy, meter readings, and vendor, for fuel and cost tracking.
openapi: 3.0.1
info:
title: Fleetio Developer API
description: >-
JSON REST API for the Fleetio fleet management platform. Manage vehicles,
contacts, fuel entries, service entries, work orders, service reminders,
parts and inventory, inspections, and issues, and register webhooks for
event notifications. All access is over HTTPS and all data is sent and
received as JSON.
termsOfService: https://www.fleetio.com/legal/terms
contact:
name: Fleetio Developer Support
url: https://developer.fleetio.com/
version: '2025-05-05'
servers:
- url: https://secure.fleetio.com/api
description: Fleetio production API
security:
- AuthorizationToken: []
AccountToken: []
tags:
- name: Vehicles
- name: Contacts
- name: Fuel Entries
- name: Service Entries
- name: Work Orders
- name: Service Reminders
- name: Parts
- name: Inventory Journal Entries
- name: Inspections
- name: Issues
- name: Webhooks
paths:
/v1/vehicles:
get:
operationId: listVehicles
tags:
- Vehicles
summary: List vehicles
description: Returns a paginated array of all vehicles in the account.
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of vehicles.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Vehicle'
post:
operationId: createVehicle
tags:
- Vehicles
summary: Create a vehicle
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
responses:
'201':
description: The created vehicle.
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
/v1/vehicles/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getVehicle
tags:
- Vehicles
summary: Get a vehicle
responses:
'200':
description: The requested vehicle.
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
patch:
operationId: updateVehicle
tags:
- Vehicles
summary: Update a vehicle
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
responses:
'200':
description: The updated vehicle.
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
delete:
operationId: deleteVehicle
tags:
- Vehicles
summary: Delete a vehicle
responses:
'204':
description: The vehicle was deleted.
/v1/contacts:
get:
operationId: listContacts
tags:
- Contacts
summary: List contacts
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of contacts.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Contact'
post:
operationId: createContact
tags:
- Contacts
summary: Create a contact
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'201':
description: The created contact.
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
/v1/contacts/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getContact
tags:
- Contacts
summary: Get a contact
responses:
'200':
description: The requested contact.
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
patch:
operationId: updateContact
tags:
- Contacts
summary: Update a contact
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'200':
description: The updated contact.
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
delete:
operationId: deleteContact
tags:
- Contacts
summary: Delete a contact
responses:
'204':
description: The contact was deleted.
/v1/fuel_entries:
get:
operationId: listFuelEntries
tags:
- Fuel Entries
summary: List fuel entries
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of fuel entries.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FuelEntry'
post:
operationId: createFuelEntry
tags:
- Fuel Entries
summary: Create a fuel entry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FuelEntry'
responses:
'201':
description: The created fuel entry.
content:
application/json:
schema:
$ref: '#/components/schemas/FuelEntry'
/v1/fuel_entries/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getFuelEntry
tags:
- Fuel Entries
summary: Get a fuel entry
responses:
'200':
description: The requested fuel entry.
content:
application/json:
schema:
$ref: '#/components/schemas/FuelEntry'
patch:
operationId: updateFuelEntry
tags:
- Fuel Entries
summary: Update a fuel entry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FuelEntry'
responses:
'200':
description: The updated fuel entry.
content:
application/json:
schema:
$ref: '#/components/schemas/FuelEntry'
delete:
operationId: deleteFuelEntry
tags:
- Fuel Entries
summary: Delete a fuel entry
responses:
'204':
description: The fuel entry was deleted.
/v1/service_entries:
get:
operationId: listServiceEntries
tags:
- Service Entries
summary: List service entries
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of service entries.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceEntry'
post:
operationId: createServiceEntry
tags:
- Service Entries
summary: Create a service entry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceEntry'
responses:
'201':
description: The created service entry.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceEntry'
/v1/service_entries/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getServiceEntry
tags:
- Service Entries
summary: Get a service entry
responses:
'200':
description: The requested service entry.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceEntry'
patch:
operationId: updateServiceEntry
tags:
- Service Entries
summary: Update a service entry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceEntry'
responses:
'200':
description: The updated service entry.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceEntry'
/v1/service_reminders:
get:
operationId: listServiceReminders
tags:
- Service Reminders
summary: List service reminders
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of service reminders.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceReminder'
/v1/service_reminders/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getServiceReminder
tags:
- Service Reminders
summary: Get a service reminder
responses:
'200':
description: The requested service reminder.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceReminder'
/v1/work_orders:
get:
operationId: listWorkOrders
tags:
- Work Orders
summary: List work orders
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of work orders.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WorkOrder'
post:
operationId: createWorkOrder
tags:
- Work Orders
summary: Create a work order
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WorkOrder'
responses:
'201':
description: The created work order.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkOrder'
/v1/work_orders/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getWorkOrder
tags:
- Work Orders
summary: Get a work order
responses:
'200':
description: The requested work order.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkOrder'
patch:
operationId: updateWorkOrder
tags:
- Work Orders
summary: Update a work order
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WorkOrder'
responses:
'200':
description: The updated work order.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkOrder'
/v1/parts:
get:
operationId: listParts
tags:
- Parts
summary: List parts
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of parts.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Part'
post:
operationId: createPart
tags:
- Parts
summary: Create a part
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Part'
responses:
'201':
description: The created part.
content:
application/json:
schema:
$ref: '#/components/schemas/Part'
/v1/parts/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getPart
tags:
- Parts
summary: Get a part
responses:
'200':
description: The requested part.
content:
application/json:
schema:
$ref: '#/components/schemas/Part'
patch:
operationId: updatePart
tags:
- Parts
summary: Update a part
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Part'
responses:
'200':
description: The updated part.
content:
application/json:
schema:
$ref: '#/components/schemas/Part'
/v1/inventory_journal_entries:
get:
operationId: listInventoryJournalEntries
tags:
- Inventory Journal Entries
summary: List inventory journal entries
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of inventory journal entries.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InventoryJournalEntry'
/v1/inspection_forms:
get:
operationId: listInspectionForms
tags:
- Inspections
summary: List inspection forms
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of inspection forms.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InspectionForm'
/v1/submitted_inspection_forms:
get:
operationId: listSubmittedInspectionForms
tags:
- Inspections
summary: List submitted inspection forms
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of submitted inspection forms.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SubmittedInspectionForm'
/v1/issues:
get:
operationId: listIssues
tags:
- Issues
summary: List issues
parameters:
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/StartCursor'
responses:
'200':
description: A list of issues.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Issue'
post:
operationId: createIssue
tags:
- Issues
summary: Create an issue
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
responses:
'201':
description: The created issue.
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
/v1/issues/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getIssue
tags:
- Issues
summary: Get an issue
responses:
'200':
description: The requested issue.
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
patch:
operationId: updateIssue
tags:
- Issues
summary: Update an issue
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
responses:
'200':
description: The updated issue.
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
/v1/webhooks:
get:
operationId: listWebhooks
tags:
- Webhooks
summary: List webhooks
responses:
'200':
description: A list of registered webhooks.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Webhook'
post:
operationId: createWebhook
tags:
- Webhooks
summary: Create a webhook
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
responses:
'201':
description: The created webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
/v1/webhooks/{id}:
parameters:
- $ref: '#/components/parameters/ResourceId'
get:
operationId: getWebhook
tags:
- Webhooks
summary: Get a webhook
responses:
'200':
description: The requested webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
delete:
operationId: deleteWebhook
tags:
- Webhooks
summary: Delete a webhook
responses:
'204':
description: The webhook was deleted.
components:
securitySchemes:
AuthorizationToken:
type: apiKey
in: header
name: Authorization
description: >-
API key associated with a Fleetio user, prefixed with the word "Token"
(e.g. "Authorization: Token YOUR_API_KEY"). Generate keys at
https://secure.fleetio.com/api_keys.
AccountToken:
type: apiKey
in: header
name: Account-Token
description: Account token identifying the Fleetio account.
parameters:
ResourceId:
name: id
in: path
required: true
description: The unique identifier of the resource.
schema:
type: integer
format: int64
PerPage:
name: per_page
in: query
required: false
description: Number of records to return per page.
schema:
type: integer
default: 50
maximum: 100
StartCursor:
name: start_cursor
in: query
required: false
description: Cursor for cursor-based pagination of list results.
schema:
type: string
schemas:
Vehicle:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
account_id:
type: integer
format: int64
readOnly: true
name:
type: string
vehicle_make:
type: string
vehicle_model:
type: string
vehicle_year:
type: integer
vin:
type: string
license_plate:
type: string
group_id:
type: integer
format: int64
vehicle_status_name:
type: string
vehicle_type_name:
type: string
primary_meter_value:
type: number
primary_meter_unit:
type: string
archived_at:
type: string
format: date-time
nullable: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
Contact:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
account_id:
type: integer
format: int64
readOnly: true
name:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
format: email
group_id:
type: integer
format: int64
technician:
type: boolean
vehicle_operator:
type: boolean
employee:
type: boolean
license_number:
type: string
mobile_phone_number:
type: string
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
FuelEntry:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
vehicle_id:
type: integer
format: int64
date:
type: string
format: date-time
us_gallons:
type: number
cost:
type: number
price_per_volume_unit:
type: number
total_amount:
type: number
usage_in_mi:
type: number
meter_value:
type: number
is_full:
type: boolean
personal:
type: boolean
vendor_id:
type: integer
format: int64
nullable: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
ServiceEntry:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
vehicle_id:
type: integer
format: int64
completed_at:
type: string
format: date-time
started_at:
type: string
format: date-time
nullable: true
meter_value:
type: number
total_amount:
type: number
labor_subtotal:
type: number
parts_subtotal:
type: number
vendor_id:
type: integer
format: int64
nullable: true
is_sample:
type: boolean
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
ServiceReminder:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
vehicle_id:
type: integer
format: int64
service_task_id:
type: integer
format: int64
service_task_name:
type: string
due_soon_threshold:
type: number
time_due_date:
type: string
format: date
nullable: true
meter_due_value:
type: number
nullable: true
next_due_status:
type: string
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
WorkOrder:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
number:
type: string
vehicle_id:
type: integer
format: int64
work_order_status_id:
type: integer
format: int64
work_order_status_name:
type: string
issued_at:
type: string
format: date-time
nullable: true
completed_at:
type: string
format: date-time
nullable: true
scheduled_at:
type: string
format: date-time
nullable: true
meter_value:
type: number
total_amount:
type: number
labor_subtotal:
type: number
parts_subtotal:
type: number
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
Part:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
number:
type: string
description:
type: string
manufacturer_part_number:
type: string
upc:
type: string
unit_cost:
type: number
measurement_unit_name:
type: string
part_category_name:
type: string
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
InventoryJournalEntry:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
part_id:
type: integer
format: int64
part_location_id:
type: integer
format: int64
nullable: true
quantity:
type: number
unit_cost:
type: number
journal_type:
type: string
description:
type: string
performed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
readOnly: true
InspectionForm:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
title:
type: string
description:
type: string
archived_at:
type: string
format: date-time
nullable: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
SubmittedInspectionForm:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
inspection_form_id:
type: integer
format: int64
vehicle_id:
type: integer
format: int64
submitted_at:
type: string
format: date-time
contact_id:
type: integer
format: int64
nullable: true
failed_items_count:
type: integer
passed:
type: boolean
created_at:
type: string
format: date-time
readOnly: true
Issue:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
number:
type: integer
vehicle_id:
type: integer
format: int64
name:
type: string
description:
type: string
state:
type: string
description: Issue state, e.g. open, resolved, or closed.
reported_at:
type: string
format: date-time
resolved_at:
type: string
format: date-time
nullable: true
reported_by_id:
type: integer
format: int64
nullable: true
assigned_contact_id:
type: integer
format: int64
nullable: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
Webhook:
type: object
properties:
id:
type: integer
format: int64
readOnly: true
url:
type: string
format: uri
description: The HTTPS endpoint that receives event payloads.
event:
type: string
description: The event type the webhook subscribes to, e.g. vehicle.created.
enabled:
type: boolean
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true