> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vooma.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Location

<Warning>
  <strong>Beta Feature:</strong> This functionality is currently in beta. You
  may experience changes or limited support as we continue to improve it.
</Warning>


## OpenAPI

````yaml POST /locations
openapi: 3.1.0
info:
  title: api
  version: 0.1.0
  contact: {}
servers:
  - url: https://api.vooma.ai/v0
    description: Vooma API
security: []
paths:
  /locations:
    post:
      tags:
        - Locations
      operationId: CreateLocation
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLocationInput'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLocationPayload'
      security:
        - bearer: []
components:
  schemas:
    CreateLocationInput:
      properties:
        location:
          $ref: '#/components/schemas/LocationData'
      required:
        - location
      type: object
    CreateLocationPayload:
      anyOf:
        - $ref: '#/components/schemas/Location'
        - $ref: '#/components/schemas/DuplicatePayload'
    LocationData:
      properties:
        name:
          type: string
        contacts:
          items:
            $ref: '#/components/schemas/LocationContact'
          type: array
        hours:
          $ref: '#/components/schemas/FacilityHours'
        scheduling:
          $ref: '#/components/schemas/SchedulingDetails'
        geoCoordinates:
          $ref: '#/components/schemas/GeoCoordinates'
        address:
          $ref: '#/components/schemas/Address'
        externalIds:
          items:
            $ref: '#/components/schemas/LocationExternalIdentifier'
          type: array
      required:
        - address
        - externalIds
      type: object
    Location:
      $ref: '#/components/schemas/MayHaveID_LocationData_'
    DuplicatePayload:
      properties:
        customer:
          $ref: '#/components/schemas/Customer'
        error:
          type: string
          enum:
            - DUPLICATE
          nullable: false
      required:
        - customer
        - error
      type: object
    LocationContact:
      $ref: '#/components/schemas/V0Contact.LocationContact'
    FacilityHours:
      properties:
        sunday:
          $ref: '#/components/schemas/DayHours'
        saturday:
          $ref: '#/components/schemas/DayHours'
        friday:
          $ref: '#/components/schemas/DayHours'
        thursday:
          $ref: '#/components/schemas/DayHours'
        wednesday:
          $ref: '#/components/schemas/DayHours'
        tuesday:
          $ref: '#/components/schemas/DayHours'
        monday:
          $ref: '#/components/schemas/DayHours'
      type: object
    SchedulingDetails:
      $ref: '#/components/schemas/V0Schedule.SchedulingDetails'
    GeoCoordinates:
      properties:
        longitude:
          type: number
          format: double
        latitude:
          type: number
          format: double
      required:
        - longitude
        - latitude
      type: object
    Address:
      properties:
        country:
          type: string
        postalCode:
          type: string
        city:
          type: string
        state:
          type: string
        addressTwo:
          type: string
        addressOne:
          type: string
      type: object
    LocationExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/LocationExternalIdentifierType'
            - type: string
          description: |-
            Typically one of the LocationExternalIdentifierType enum values
            but subject to change
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    MayHaveID_LocationData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/LocationData'
    Customer:
      $ref: '#/components/schemas/WithId_CustomerData_'
    V0Contact.LocationContact:
      $ref: '#/components/schemas/MayHaveID_LocationContactData_'
    DayHours:
      properties:
        type:
          type: string
          enum:
            - FACILITY_HOURS
          nullable: false
        timezone:
          type: string
        endTime:
          type: string
        startTime:
          type: string
      required:
        - type
        - timezone
        - endTime
        - startTime
      type: object
      additionalProperties: false
    V0Schedule.SchedulingDetails:
      properties:
        maxDaysAhead:
          type: number
          format: double
        notes:
          type: string
        methods:
          items:
            $ref: '#/components/schemas/SchedulingMethod'
          type: array
      required:
        - methods
      type: object
    LocationExternalIdentifierType:
      enum:
        - CUSTOM
        - GOOGLE_PLACES
        - TURVO
      type: string
    WithId_CustomerData_:
      allOf:
        - properties:
            id:
              type: string
          required:
            - id
          type: object
        - $ref: '#/components/schemas/CustomerData'
    MayHaveID_LocationContactData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/LocationContactData'
    SchedulingMethod:
      anyOf:
        - $ref: '#/components/schemas/EmailSchedulingMethod'
        - $ref: '#/components/schemas/PhoneSchedulingMethod'
        - $ref: '#/components/schemas/PortalSchedulingMethod'
    CustomerData:
      properties:
        contacts:
          items:
            $ref: '#/components/schemas/Contact'
          type: array
        name:
          type: string
        externalIds:
          items:
            $ref: '#/components/schemas/CustomerExternalIdentifier'
          type: array
      required:
        - name
        - externalIds
      type: object
    LocationContactData:
      $ref: '#/components/schemas/BaseContactData'
    EmailSchedulingMethod:
      properties:
        contact:
          $ref: '#/components/schemas/LocationContact'
        type:
          type: string
          enum:
            - EMAIL
          nullable: false
      required:
        - contact
        - type
      type: object
    PhoneSchedulingMethod:
      properties:
        contact:
          $ref: '#/components/schemas/LocationContact'
        type:
          type: string
          enum:
            - PHONE
          nullable: false
      required:
        - contact
        - type
      type: object
    PortalSchedulingMethod:
      properties:
        details:
          $ref: '#/components/schemas/PortalSchedulingDetails'
        type:
          type: string
          enum:
            - PORTAL
          nullable: false
      required:
        - details
        - type
      type: object
    Contact:
      $ref: '#/components/schemas/V0Contact.Contact'
    CustomerExternalIdentifier:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/CustomerExternalIdentifierType'
            - type: string
          description: >-
            Typically one of the CustomerExternalIdentifierType enum values, but
            strings are also allowed
        value:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: false
    BaseContactData:
      properties:
        name:
          type: string
        phone:
          type: string
        email:
          type: string
        role:
          type: string
      type: object
    PortalSchedulingDetails:
      properties:
        portal:
          $ref: '#/components/schemas/Portal'
      required:
        - portal
      type: object
    V0Contact.Contact:
      $ref: '#/components/schemas/MayHaveID_ContactData_'
    CustomerExternalIdentifierType:
      enum:
        - ALJEX
        - AVRL
        - BITFREIGHTER_RATING
        - CUSTOM
        - DAT
        - GENLOGS
        - GREENSCREENS
        - HIGHWAY
        - HOSTED_MCLEOD
        - LEGACY_MERCURYGATE
        - MCLEOD
        - MCLEOD_HOSTED
        - MERCURYGATE
        - ORDERFUL
        - SONAR
        - SOFTMODAL
        - STEDI
        - STRATEGY_LIVE
        - TABI
        - TAI
        - TEST
        - THREE_PL
        - TRANSFIX_RATING
        - TURVO
        - TRUCKSTOP
        - VOOMA_PUBLIC_API
        - MICROSOFT
        - MICROSOFT_TEAMS
        - SLACK
      type: string
    Portal:
      type: string
      enum:
        - AMAZON_CARRIER_CENTRAL
        - BLUE_YONDER
        - COSTCO
        - DSDLINK
        - E2OPEN
        - LMCONNECT
        - MANHATTAN
        - NCR
        - OPENDOCK
        - RYDERSHARE
        - YARDVIEW
    MayHaveID_ContactData_:
      allOf:
        - properties:
            id:
              type: string
          type: object
        - $ref: '#/components/schemas/ContactData'
    ContactData:
      anyOf:
        - $ref: '#/components/schemas/CarrierContactData'
        - $ref: '#/components/schemas/CustomerContactData'
        - $ref: '#/components/schemas/LocationContactData'
    CarrierContactData:
      allOf:
        - $ref: '#/components/schemas/BaseContactData'
        - properties:
            carrierId:
              type: string
          required:
            - carrierId
          type: object
    CustomerContactData:
      allOf:
        - $ref: '#/components/schemas/BaseContactData'
        - properties:
            customerId:
              type: string
          required:
            - customerId
          type: object
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: API Key

````