---
title: "Create Contact"
method: POST
path: "/contacts"
tags: ["Contacts"]
---

# Create Contact

`POST /contacts`

## Request

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

Creates a new contact.

:::info
`account_membership_attributes` are only available to Fleetio partners with an Organization Token or Partner Token.
:::

## Headers

- `Partner-Token` string: Used by Fleetio Partners to manage integrations.
- `Organization-Token` string: Used by organizations to manage multiple accounts.

## Request body

- object
  - `first_name` string, required: This Contact's first name.
  - `middle_name` string: This Contact's middle name.
  - `last_name` string: This Contact's last name.
  - `birth_date` string, date: This Contact's birth date. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `group_hierarchy` string, nullable: If this Contact belongs to a [Group](/docs/api/groups), this will be a pipe delimited string representing the Group hierarchy. Each Group in the list is the parent of the `Groups` which follow.
  - `email` string: This Contact's email address.
  - `mobile_phone_number` string: This Contact's mobile phone number.
  - `home_phone_number` string: This Contact's home phone number.
  - `work_phone_number` string: This Contact's work phone number.
  - `other_phone_number` string: Any other phone number for this Contact.
  - `street_address` string: The street address of this Contact.
  - `street_address_line_2` string: The second line of this Contact's street address.
  - `city` string: The city of this Contact's address.
  - `region` string: The region, state, province, or territory of this Contact's address.
  - `postal_code` string: The postal code for this Contact's address.
  - `country` string: The country where this Contact resides.
  - `employee_number` string: This Contact's employee number. Must be unique.
  - `job_title` string: This Contact's job title.
  - `start_date` string, date: The date at which this Contact started, or is expected to start. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `leave_date` string, date: The date at which this Contact left, or is expected to leave. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `vehicle_operator` boolean: Whether this Contact is a Vehicle Operator.
  - `license_number` string: The license number of this Contact.
  - `license_class` string: The class of this Contact's license.
  - `license_state` string: The state, province, region, or territory of this Contact's license.
  - `hourly_labor_rate` number, float: The hourly labor rate for this Contact.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `group_id` integer
  - `license_expiration` string, date: The date and time at which this Contact's license expires. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `employee` boolean: Whether this Contact is an Employee.
  - `technician` boolean: Whether this Contact is a Technician.
  - `user_access` boolean: Whether this Contact has User Access. This must be set to true if using `account_membership_attributes`.
  - `account_membership_attributes` object: These attributes require an Organization Token or Partner Token to be present in the request. Any role or record set attributes will be ignored if `user_type` is `admin`. `admin_role_attributes` will be ignored if `user_type` is not `admin`.
    - `user_type` 'admin' | 'regular': Any role or record set attributes will be ignored if this is set to `admin`.
    - `role_id` integer: The ID of the `Role` assigned to the `User`.
    - `vehicles_record_set_id` integer: The ID of the `Vehicles` record set the `User` has access to.
    - `contacts_record_set_id` integer: The ID of the `Contacts` record set the `User` has access to.
    - `equipments_record_set_id` integer: The ID of the `Equipment` record set the `User` has access to.
    - `inspection_forms_record_set_id` integer: The ID of the `Inspection Forms` record set the `User` has access to.
    - `parts_record_set_id` integer: The ID of the `Parts` record set the `User` has access to.
    - `role_name` string: The name of the `Role` to be assigned to the `User`. Must be an exact match of an existing `Role`.
    - `vehicles_record_set_name` string: The name of the `Vehicles` record set the `User` has access to. Must be an exact match of an existing record set.
    - `contacts_record_set_name` string: The name of the `Contacts` record set the `User` has access to. Must be an exact match of an existing record set.
    - `equipments_record_set_name` string: The name of the `Equipment` record set the `User` has access to. Must be an exact match of an existing record set.
    - `inspection_forms_record_set_name` string: The name of the `Inspection Forms` record set the `User` has access to. Must be an exact match of an existing record set.
    - `parts_record_set_name` string: The name of the `Parts` record set the `User` has access to. Must be an exact match of an existing record set.
    - `admin_role_attributes` object: Permissions for the `User` if the `user_type` is `admin`. :::info required if `user_type` is `admin` :::
      - `administration_access` 'full' | 'some' | 'none': The level of access for the administration section. When setting as full all administration management permissions will be granted. This value and the `manage_*` administration permissions are capped at the API key owner's own `administration_access` and permissions. A request above that level still succeeds, with the lower grant applied.
      - `manage_account_settings` boolean: Whether this `User` can manage account settings.
      - `manage_subscription` boolean: Whether this `User` can manage subscriptions belonging to the `Account`.
      - `export_account_data` boolean: Whether this `User` can export account data.
      - `manage_groups` boolean: Whether this `User` can manage `Groups`.
      - `manage_custom_object_templates` boolean: Whether this `User` can manage `Custom Records`.
      - `manage_workflows` boolean: Whether this `User` can manage `Automations`.
      - `manage_webhooks` boolean: Whether this `User` can manage `Webhooks`.
      - `manage_integrations` boolean: Whether this `User` can manage `Integrations`.
      - `manage_integration_links` boolean: Whether this `User` can manage `Integration Links`.
      - `manage_saml_connectors` boolean: Whether this `User` can manage `SAML Connectors`.
      - `manage_security_settings` boolean: Whether this `User` can manage Security Settings.
      - `user_management_access` 'full' | 'some' | 'none': The level of access for the user management section. When setting as full all user management permissions will be granted. This value is capped at the API key owner's own `user_management_access`. A request above that level still succeeds, with the lower grant applied.
      - `manage_users` boolean: Whether this `User` can manage other `Users`.
    - `user_attributes` object
      - `email` string: The email address of the `User`.
      - `username` string: The username of the `User`.
      - `password` string: The password of the `User`.
  - `default_image_attributes` object
    - `file_url` string: The URL pointing to the default image of the Contact.
    - `default` boolean: Whether the image should be set as the default image of the Contact.

## Response `201`

OK

- ContactV2, nullable: A Contact
  - `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.
  - `name` string, nullable, required: The Contact's full name.
  - `first_name` string, nullable, required: The Contact's first name.
  - `middle_name` string, nullable, required: The Contact's middle name.
  - `group_id` integer, nullable, required: If this Contact belongs to a [Group](/docs/api/groups), this will be the Fleetio ID of that Group.
  - `group_name` string, nullable, required: If this Contact belongs to a [Group](/docs/api/groups), this will be the Group's name.
  - `last_name` string, nullable, required: The Contact's last name.
  - `images_count` integer, required: The number of images associated with this Contact.
  - `documents_count` integer, required: The number of documents associated with this Contact.
  - `comments_count` integer, required: The number of `Comments` associated with this Contact.
  - `email` string, nullable: The Contact's email address.
  - `technician` boolean, nullable: Whether this Contact is a Technician.
  - `vehicle_operator` boolean, nullable: Whether this Contact is a Vehicle Operator.
  - `employee` boolean, nullable: Whether this Contact is an Employee.
  - `birth_date` string, date, nullable: The Contact's birth date.
  - `street_address` string, nullable: The Contact's street address.
  - `street_address_line_2` string, nullable: The second line of the Contact's street address.
  - `city` string, nullable: The Contact's city.
  - `region` string, nullable: The Contact's region.
  - `postal_code` string, nullable: The Contact's postal code.
  - `country` string, nullable: The Contact's country.
  - `employee_number` string, nullable: The Contact's employee number.
  - `job_title` string, nullable: The Contact's job title.
  - `license_class` string, nullable: The Contact's license class.
  - `license_number` string, nullable: The Contact's license number.
  - `license_state` string, nullable: The state which issued the Contact's license.
  - `license_expiration` string, date, nullable: The Contact's driver's license expiration date.
  - `home_phone_number` string, nullable: The Contact's home phone number.
  - `mobile_phone_number` string, nullable: The Contact's mobile phone number.
  - `work_phone_number` string, nullable: The Contact's work phone number.
  - `other_phone_number` string, nullable: Any other mobile phone number belonging to this Contact.
  - `start_date` string, date, nullable: The Contact's start date.
  - `leave_date` string, date, nullable: The Contact's leave date.
  - `hourly_labor_rate` number, float, nullable: The Contact's hourly rate.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `default_image_url` string, nullable, required: The URL pointing to the default image for this Contact.
  - `account_membership_id` integer, nullable
  - `archived_at` string, date-time, nullable: The date and time at which this Contact was archived, if applicable. `null` if this Contact is not archived.
  - `user` object, nullable, required
    - `id` integer, nullable
    - `email` string, nullable: The email address associated with this `User`.
    - `username` string, nullable: The username of this `User`.
    - `time_zone` string, nullable: The timezone set for this `User`.
    - `user_type` 'admin' | 'regular' | 'owner', nullable: This `User`'s type.
    - `archived_at` string, date-time, nullable: The date and time at which the User was archived (deactivated). If `null`, the User is not deactivated.
    - `role` object: Basic information about this `User`'s `Role`, if applicable.
      - `id` integer, nullable
      - `name` string, nullable
    - `vehicles_record_set` object
      - `id` integer, nullable
      - `name` string, nullable
    - `equipments_record_set` object
      - `id` integer, nullable
      - `name` string, nullable
    - `contacts_record_set` object
      - `id` integer, nullable
      - `name` string, nullable
    - `parts_record_set` object
      - `id` integer, nullable
      - `name` string, nullable
    - `inspection_forms_record_set` object
      - `id` integer, nullable
      - `name` string, nullable

## Other responses

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

## Changes

- **2026-06-16** `4098a1c81821`: 3 breaking, 4 warning, 1 info
  - removed the enum value `false` of the request property `user_access`
  - removed the enum value `true` of the request property `user_access`
  - the `user_access` request property type changed from `string` to `boolean`
  - removed the request property `account_membership_attributes/enable_user`
  - …4 more

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/contacts/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)
