---
title: "POST /locations"
method: POST
path: "/locations"
tags: ["locations"]
---

# POST /locations

`POST /locations`

## Request

- Base URL: `https://api.outdoorsy.com/v0`
- URL: `https://api.outdoorsy.com/v0/locations`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `API-Key`
- TypeScript: <https://skmtc.dev/outdoorsy/apis/outdoorsy-api-documentation/docs/locations/post.ts> (a function with typed inputs; its response is checked against the schema)

Create dealer location

## Request body

- Location
  - `archived` boolean
  - `availability` LocAvailability
    - `days` object
  - `city` string
  - `country` string
  - `county` string
  - `created` string
  - `custom_insurance_text` string, nullable
  - `dropoff_end_time` integer
  - `dropoff_start_time` integer
  - `eligible_for_system_tax_rates` boolean: Wheelbase only field
  - `employer_identification_number` string: EIN in the US, RCS in France
  - `id` integer
  - `lat` number, double
  - `lng` number, double
  - `locale` LocationLocale
    - `base_currency` string
  - `name` string
  - `opt_out_marketplace_taxes` boolean: these fields are stored in metadata
  - `owner_id` integer
  - `payment_processing_info_id` integer
  - `phone` string
  - `pickup_end_time` integer
  - `pickup_start_time` integer
  - `rental_count` integer
  - `special_hours` SpecialHour[]
    - `created` string
    - `created_from_id` integer
    - `dropoff` SpecialHourDropoff
      - `end_time` integer
      - `start_time` integer
      - `unavailable` boolean
    - `end_date` string
    - `id` integer
    - `location_id` integer, nullable
    - `name` string
    - `owner_id` integer
    - `pickup` SpecialHourPickup
      - `end_time` integer
      - `start_time` integer
      - `unavailable` boolean
    - `repeats` boolean
    - `start_date` string
    - `updated` string
    - `weekdays` string[]: DBStringSlice is a []string with database conversion methods
  - `state` string
  - `state_tax_id` string
  - `street` string
  - `street_etc` string
  - `tax_rate_id` TaxRate
    - `archived` boolean
    - `created` string
    - `description` string
    - `id` integer
    - `marketplace` boolean
    - `name` string
    - `owner_id` integer
    - `rate` number, double
    - `state` string: carry through to booking_tax_rates table from avalara
    - `updated` string
    - `zip_code` string
  - `tax_rate_ids` integer[]
  - `tax_split_eligible` boolean: find tax_rates.ShouldSplitTaxes()
  - `updated` string
  - `waived_insurance_text` string, nullable
  - `zip` string

## Response `200`

- Location
  - `archived` boolean
  - `availability` LocAvailability
    - `days` object
  - `city` string
  - `country` string
  - `county` string
  - `created` string
  - `custom_insurance_text` string, nullable
  - `dropoff_end_time` integer
  - `dropoff_start_time` integer
  - `eligible_for_system_tax_rates` boolean: Wheelbase only field
  - `employer_identification_number` string: EIN in the US, RCS in France
  - `id` integer
  - `lat` number, double
  - `lng` number, double
  - `locale` LocationLocale
    - `base_currency` string
  - `name` string
  - `opt_out_marketplace_taxes` boolean: these fields are stored in metadata
  - `owner_id` integer
  - `payment_processing_info_id` integer
  - `phone` string
  - `pickup_end_time` integer
  - `pickup_start_time` integer
  - `rental_count` integer
  - `special_hours` SpecialHour[]
    - `created` string
    - `created_from_id` integer
    - `dropoff` SpecialHourDropoff
      - `end_time` integer
      - `start_time` integer
      - `unavailable` boolean
    - `end_date` string
    - `id` integer
    - `location_id` integer, nullable
    - `name` string
    - `owner_id` integer
    - `pickup` SpecialHourPickup
      - `end_time` integer
      - `start_time` integer
      - `unavailable` boolean
    - `repeats` boolean
    - `start_date` string
    - `updated` string
    - `weekdays` string[]: DBStringSlice is a []string with database conversion methods
  - `state` string
  - `state_tax_id` string
  - `street` string
  - `street_etc` string
  - `tax_rate_id` TaxRate
    - `archived` boolean
    - `created` string
    - `description` string
    - `id` integer
    - `marketplace` boolean
    - `name` string
    - `owner_id` integer
    - `rate` number, double
    - `state` string: carry through to booking_tax_rates table from avalara
    - `updated` string
    - `zip_code` string
  - `tax_rate_ids` integer[]
  - `tax_split_eligible` boolean: find tax_rates.ShouldSplitTaxes()
  - `updated` string
  - `waived_insurance_text` string, nullable
  - `zip` string

## Other responses

- `400`: Invalid input or state means you're bad
- `401`: Unauthorized error
- `404`: Not found error

---

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