---
title: "Create Availability"
method: POST
path: "/v2/tms/carriers/{carrier_id}/availabilities"
tags: ["v2", "tms", "availabilities"]
---

# Create Availability

`POST /v2/tms/carriers/{carrier_id}/availabilities`

## Request

- Base URL: `https://api.mentium.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mentium.io/v2/tms/carriers/{carrier_id}/availabilities`
- Auth: HTTP bearer

Create a new carrier defined availability. Duplicate configuration returns 200 with created=false.

## Path parameters

- `carrier_id` string, required

## Query parameters

- `integration_connection_id` string, required

## Headers

- `mentium-workspace-id` string, nullable

## Request body

- CreateAvailabilityRequest
  - `source` union
    - MentiumTmsLocation: Represents a single geographic point within a country, defined by exactly one of five valid combinations: city/state/country/lat/lon/radius, state/country, postal-code/country, postal-code-prefix/country, or lat/lon/radius/country. Use this when a carrier's lane/availability is described precisely ("from Chicago, IL to Austin, TX") rather than across a broad multi-state area. - Exactly one of the five field combinations must be satisfied - All fields are normalized and validated; hash is deterministic
      - `kind` 'LOCATION'
      - `location_hash` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `postal_code` string, nullable
      - `postal_code_prefix` string, nullable
      - `country` string, required
      - `latitude` number, nullable
      - `longitude` number, nullable
      - `radius_miles` number, nullable
    - MentiumTmsArea: Represents a broad geographic area within a single country, defined by exactly one of: states, postal codes, or postal code prefixes. Use this when a carrier's lane/availability is described coarsely ("we run from Kansas City to TX, OK, FL, GA") rather than against a single point. - Exactly one of `states`, `postal_codes`, or `postal_code_prefixes` must be non-empty - All entries are normalized and de-duplicated; hash is deterministic
      - `kind` 'AREA'
      - `area_hash` string, nullable
      - `states` string[]
      - `postal_codes` string[]
      - `postal_code_prefixes` string[]
      - `country` string, required
  - `destination` union
    - MentiumTmsLocation: Represents a single geographic point within a country, defined by exactly one of five valid combinations: city/state/country/lat/lon/radius, state/country, postal-code/country, postal-code-prefix/country, or lat/lon/radius/country. Use this when a carrier's lane/availability is described precisely ("from Chicago, IL to Austin, TX") rather than across a broad multi-state area. - Exactly one of the five field combinations must be satisfied - All fields are normalized and validated; hash is deterministic
      - `kind` 'LOCATION'
      - `location_hash` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `postal_code` string, nullable
      - `postal_code_prefix` string, nullable
      - `country` string, required
      - `latitude` number, nullable
      - `longitude` number, nullable
      - `radius_miles` number, nullable
    - MentiumTmsArea: Represents a broad geographic area within a single country, defined by exactly one of: states, postal codes, or postal code prefixes. Use this when a carrier's lane/availability is described coarsely ("we run from Kansas City to TX, OK, FL, GA") rather than against a single point. - Exactly one of `states`, `postal_codes`, or `postal_code_prefixes` must be non-empty - All entries are normalized and de-duplicated; hash is deterministic
      - `kind` 'AREA'
      - `area_hash` string, nullable
      - `states` string[]
      - `postal_codes` string[]
      - `postal_code_prefixes` string[]
      - `country` string, required
  - `shipping_method` 'FTL' | 'PTL' | 'LTL' | 'MENTIUM_UNKNOWN_VALUE'
  - `equipment_type` 'DRY_VAN' | 'REEFER' | 'FLATBED' | 'FLATBED_CONESTOGA' | 'STEPDECK' | 'STEPDECK_CONESTOGA' | 'LOWBOY' | 'REMOVABLE_GOOSENECK' | 'BULK_DRY_HOPPER' | 'BULK_DRY_PNEUMATIC' | 'BULK_DRY_DUMP' | 'TANKER' | 'INTERMODAL' | 'STRAIGHT' | 'SPRINTER' | 'HOTSHOT' | 'POWER_ONLY' | 'MENTIUM_UNKNOWN_VALUE'
  - `recurrence_frequency` 'ONCE' | 'DAILY' | 'WEEKLY_BY_DAY_OF_WEEK' | 'MONTHLY_BY_DAY_OF_MONTH' | 'MONTHLY_BY_DAY_OF_WEEK_MONTHLY_OCCURRENCE', required
  - `recurrence_interval` integer, nullable
  - `recurrence_start_at` string, date-time, required
  - `recurrence_end_at` string, date-time, nullable
  - `days_of_week` MentiumTmsAvailabilityDayOfWeek[]
  - `days_of_week_monthly_occurrences` MentiumTmsAvailabilityDayOfWeekMonthlyOccurrence[]
  - `days_of_month` integer[]
  - `notes` string, nullable

## Response `200`

Identical availability already exists; existing record returned (deduplicated).

- CreateAvailabilityResult: Response for POST availabilities: new row or existing row when duplicate hash.
  - `availability` MentiumTmsCarrierDefinedAvailability, required
    - `id` string, uuid, nullable
    - `organization_id` string, uuid, required
    - `integration_connection_id` string, uuid, required
    - `carrier_id` string, uuid, nullable
    - `availability_hash` string, nullable
    - `source` union
      - MentiumTmsLocation: Represents a single geographic point within a country, defined by exactly one of five valid combinations: city/state/country/lat/lon/radius, state/country, postal-code/country, postal-code-prefix/country, or lat/lon/radius/country. Use this when a carrier's lane/availability is described precisely ("from Chicago, IL to Austin, TX") rather than across a broad multi-state area. - Exactly one of the five field combinations must be satisfied - All fields are normalized and validated; hash is deterministic
        - `kind` 'LOCATION'
        - `location_hash` string, nullable
        - `city` string, nullable
        - `state` string, nullable
        - `postal_code` string, nullable
        - `postal_code_prefix` string, nullable
        - `country` string, required
        - `latitude` number, nullable
        - `longitude` number, nullable
        - `radius_miles` number, nullable
      - MentiumTmsArea: Represents a broad geographic area within a single country, defined by exactly one of: states, postal codes, or postal code prefixes. Use this when a carrier's lane/availability is described coarsely ("we run from Kansas City to TX, OK, FL, GA") rather than against a single point. - Exactly one of `states`, `postal_codes`, or `postal_code_prefixes` must be non-empty - All entries are normalized and de-duplicated; hash is deterministic
        - `kind` 'AREA'
        - `area_hash` string, nullable
        - `states` string[]
        - `postal_codes` string[]
        - `postal_code_prefixes` string[]
        - `country` string, required
    - `destination` union
      - MentiumTmsLocation: Represents a single geographic point within a country, defined by exactly one of five valid combinations: city/state/country/lat/lon/radius, state/country, postal-code/country, postal-code-prefix/country, or lat/lon/radius/country. Use this when a carrier's lane/availability is described precisely ("from Chicago, IL to Austin, TX") rather than across a broad multi-state area. - Exactly one of the five field combinations must be satisfied - All fields are normalized and validated; hash is deterministic
        - `kind` 'LOCATION'
        - `location_hash` string, nullable
        - `city` string, nullable
        - `state` string, nullable
        - `postal_code` string, nullable
        - `postal_code_prefix` string, nullable
        - `country` string, required
        - `latitude` number, nullable
        - `longitude` number, nullable
        - `radius_miles` number, nullable
      - MentiumTmsArea: Represents a broad geographic area within a single country, defined by exactly one of: states, postal codes, or postal code prefixes. Use this when a carrier's lane/availability is described coarsely ("we run from Kansas City to TX, OK, FL, GA") rather than against a single point. - Exactly one of `states`, `postal_codes`, or `postal_code_prefixes` must be non-empty - All entries are normalized and de-duplicated; hash is deterministic
        - `kind` 'AREA'
        - `area_hash` string, nullable
        - `states` string[]
        - `postal_codes` string[]
        - `postal_code_prefixes` string[]
        - `country` string, required
    - `shipping_method` 'FTL' | 'PTL' | 'LTL' | 'MENTIUM_UNKNOWN_VALUE'
    - `equipment_type` 'DRY_VAN' | 'REEFER' | 'FLATBED' | 'FLATBED_CONESTOGA' | 'STEPDECK' | 'STEPDECK_CONESTOGA' | 'LOWBOY' | 'REMOVABLE_GOOSENECK' | 'BULK_DRY_HOPPER' | 'BULK_DRY_PNEUMATIC' | 'BULK_DRY_DUMP' | 'TANKER' | 'INTERMODAL' | 'STRAIGHT' | 'SPRINTER' | 'HOTSHOT' | 'POWER_ONLY' | 'MENTIUM_UNKNOWN_VALUE'
    - `recurrence_frequency` 'ONCE' | 'DAILY' | 'WEEKLY_BY_DAY_OF_WEEK' | 'MONTHLY_BY_DAY_OF_MONTH' | 'MONTHLY_BY_DAY_OF_WEEK_MONTHLY_OCCURRENCE', required
    - `recurrence_interval` integer, nullable
    - `recurrence_start_at` string, date-time, required
    - `recurrence_end_at` string, date-time, nullable
    - `days_of_week` MentiumTmsAvailabilityDayOfWeek[]
    - `days_of_month` integer[]
    - `days_of_week_monthly_occurrences` MentiumTmsAvailabilityDayOfWeekMonthlyOccurrence[]
    - `notes` string, nullable
    - `data_origins` MentiumTmsDataOrigin[]
    - `created_by_kind` 'USER' | 'SYSTEM'
    - `created_by_user_id` string, uuid, nullable
    - `created_by_first_name` string, nullable
    - `created_by_last_name` string, nullable
    - `created_by_email` string, nullable
  - `created` boolean, required: False when an identical availability already existed (same dedupe hash); no new row was inserted.

## Other responses

- `201`: New availability created.
- `422`: Validation Error

## Changes

- **2026-11-04** `b4ed8e59432e`: 32 breaking, 52 info
  - removed the enum value `BULK_DRY_DUMP` of the request property `equipment_type`
  - removed the enum value `BULK_DRY_HOPPER` of the request property `equipment_type`
  - removed the enum value `BULK_DRY_PNEUMATIC` of the request property `equipment_type`
  - removed the enum value `DRY_VAN` of the request property `equipment_type`
  - …80 more

[Operation history](https://skmtc.dev/mentium/apis/mentium-api/changes/v2/tms/carriers/:carrier_id/availabilities/post.md)

---

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