---
title: "Create Issue"
method: POST
path: "/issues"
tags: ["Issues"]
---

# Create Issue

`POST /issues`

## Request

- Base URL: `https://secure.fleetio.com/api`
- URL: `https://secure.fleetio.com/api/issues`
- Auth: API key in header `Authorization` and API key in header `Account-Token`
- TypeScript: <https://skmtc.dev/fleetio/apis/fleetio-developer-api/docs/issues/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new Issue

## Request body

- object
  - `asset_id` integer, required: The ID of the asset associated with the Issue.
  - `asset_type` 'Vehicle' | 'Equipment', required: The type of the asset associated with the Issue.
  - `summary` string, required: A short summary of the Issue.
  - `description` string: A longer description of the Issue.
  - `reported_by_id` integer: The id of the `Contact` who reported this Issue.
  - `reported_at` string, date-time, required: The date and time this Issue is reported. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `issue_priority_id` integer: The id of the associated `IssuePriority` for this Issue.
  - `number` integer: A unique identifier for the Issue.
  - `due_date` string, date-time: The date on which this Issue should be resolved by. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `due_meter_value` number, float: The meter value at which this Issue should be resolved by.
  - `due_secondary_meter_value` number, float: The secondary meter value at which this Issue should be resolved by.
  - `fault_id` integer: The id of the `Fault` associated with this Issue.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `meter_entry_attributes` object: An Issue may be associated with a [Meter Entry](/docs/api/meter-entries).
    - `value` number, float: The value is the actual number on the meter that increments over time. The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
    - `void` boolean: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
  - `secondary_meter_entry_attributes` object: An Issue may be associated with a secondary [Meter Entry](/docs/api/meter-entries).
    - `value` number, float: The value is the actual number on the meter that increments over time. The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
    - `void` boolean: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
  - `comments_attributes` CommentsAttributes[]
    - `title` string: The title of the comment.
    - `comment` string: The comment text.
  - `documents_attributes` object[]: An array of one or more document objects to add to the record. Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide to upload to our third party storage provider in order to obtain `file_url`.
    - `name` string: The name to give the file which will be shown in the UI.
    - `file_url` string: The URL obtained from our storage provider that points to the file.
    - `file_mime_type` string: The MIME type of the file. For example, `application/pdf`.
    - `file_name` string: The name of the file.
    - `file_size` integer: The size of the file in bytes.
  - `images_attributes` object[]: An array of one or more image objects to add to the record. Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide to upload to our third party storage provider in order to obtain `file_url`.
    - `name` string: The name to give the image which will be shown in the UI.
    - `file_url` string: The URL obtained from our storage provider that points to the image.
    - `file_mime_type` string: The MIME type of the image. For example, `image/png`.
    - `file_name` string: The name of the image.
    - `file_size` integer: The size of the image file in bytes.
  - `assigned_contact_ids` integer[]: An array of ids of assigned `Contacts` related to the Issue.
  - `label_ids` integer[]

## Response `201`

OK

- IssueV2, nullable: An Issue
  - `id` integer, required
  - `created_at` string, date-time: The date and time at which this record was created.
  - `updated_at` string, date-time: The date and time at which this record was most recently updated.
  - `number` integer, required: A unique identifier for the Issue.
  - `summary` string, required: A summary of the Issue.
  - `description` string, nullable, required: A longer description of the Issue.
  - `state` 'open' | 'closed' | 'resolved', required: The Issue's current state.
  - `reported_at` string, date-time, nullable, required: The date and time at which this Issue was reported.
  - `reported_by` object, nullable, required: The `Contact` ID of the `User` who reported this Issue.
    - `id` integer
  - `resolvable_type` 'ServiceEntry' | 'WorkOrder', nullable, required: The type of the object which can resolve this Issue.
  - `resolved_at` string, date-time, nullable, required: The date and time at which this Issue was resolved.
  - `resolved_by` object, nullable, required: The `Contact` ID of the `User` that resolved this Issue.
    - `id` integer
  - `resolved_note` string, required: Any notes associated with resolving this Issue.
  - `closed_at` string, date-time, nullable, required: The date and time at which this Issue was closed.
  - `closed_by` object, nullable, required: The `Contact` ID of the `User` that closed this Issue.
    - `id` integer
  - `closed_note` string, required: Any notes associated with closing this Issue.
  - `due_date` string, date, nullable, required: The date on which this Issue should be resolved by. Formatted according to ISO-8601 in `User`'s local time zone.
  - `due_meter_value` number, float, nullable, required: The meter value at which this Issue should be resolved by.
  - `due_secondary_meter_value` number, float, nullable, required: The secondary meter value at which this Issue should be resolved by.
  - `is_overdue` boolean, required: Indicates whether the Issue is overdue.
  - `issue_priority` IssuePriority: An Issue Priority represents the priority level of an Issue.
    - `id` integer
    - `created_at` string, date-time: The date and time at which this record was created.
    - `updated_at` string, date-time: The date and time at which this record was most recently updated.
    - `account_id` integer
    - `alias` string, nullable: Can be used to replace the default priority name provided. Changes how the Issue is displayed throughout Fleetio.
    - `name` string: The name of the Issue Priority.
    - `slug` string: Indicates which icon will be shown for the Issue Priority.
    - `description` string: A description providing more details about the Issue Priority.
    - `default` boolean: Indicates whether this Issue Priority will be set as default for new `Issues`.
    - `enabled` boolean: Indicates whether this Issue Priority is currently enabled.
    - `position` integer: The position or order of the Issue Priority in a list or hierarchy.
  - `resolvable` object, nullable, required: The ID of the object which can resolve this Issue.
    - `id` integer
  - `creation_type` 'manual' | 'workflow', required: Indicates if this Issue was created manually or by a workflow.
  - `attachment_permissions` AttachmentPermissions, nullable, required
    - `read_photos` boolean: Indicates whether the user has read permission for photos.
    - `manage_photos` boolean: Indicates whether the user has permission to manage (eg. upload, delete) photos.
    - `read_documents` boolean: Indicates whether the user has read permission for documents.
    - `manage_documents` boolean: Indicates whether the user has permission to manage (eg. upload, delete) documents.
  - `asset` object, required
    - `id` integer
    - `name` string: The name of the asset associated with the Issue.
    - `image_url_medium` string, nullable: The URL to a medium-sized image of the asset associated with the Issue.
    - `current_job` object, nullable: The current job for the asset associated with the Issue, if any.
      - `name` string: The name of the job.
      - `number` string: The number of the job.
  - `asset_type` 'Vehicle' | 'Equipment', required: The asset type that has the Issue.
  - `submitted_inspection_form` object, nullable, required
    - `id` integer
  - `fault` object, nullable, required
    - `id` integer
  - `watchers_count` integer: The count of watchers associated with the Issue.
  - `comments_count` integer: The count of `Comments` associated with the Issue.
  - `images_count` integer: The count of images associated with the Issue.
  - `documents_count` integer: The count of documents associated with the Issue.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `labels` object[]: An array of labels associated with the Issue. Can be included in the response by passing `labels` in the `includes` query parameter.
    - `id` integer
    - `name` string: The name of the label.
    - `color` string: The color of the label.

## Other responses

- `401`: Request could not be authenticated
- `403`: Insufficient permission to perform this operation
- `422`: Unprocessable Entity
- `500`: Something unexpected happened

## Changes

- **2026-11-06** `49558d744bd7`: 2 warning
  - the `comments_attributes/items/comment` request property's maxLength was set to `100000`
  - the `description` request property's maxLength was set to `100000`
- **2026-06-16** `4098a1c81821`: 1 info
  - added the optional property `allOf[subschema #2]/asset/current_job` to the response with the `201` status

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/issues/post.md)

---

[API](https://skmtc.dev/fleetio/apis/fleetio-developer-api.md) - [All operations](https://skmtc.dev/fleetio/apis/fleetio-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fleetio/apis/fleetio-developer-api/revisions/49558d744bd7?raw)
