Avalara Locations API

Manage company locations and jurisdictions

Operations 14

GET /api/v2/companies/{companyId}/locations Avalara List Locations for a Company #
POST /api/v2/companies/{companyId}/locations Avalara Create Locations for a Company #
GET /Locations Avalara List Locations #
POST /Locations Avalara Create a Location #
POST /api/v2/companies/{companyId}/locations/{locationId}/parameters Avalara CreateLocationParameters #
GET /api/v2/companies/{companyId}/locations/{locationId}/parameters Avalara ListLocationParameters #
DELETE /api/v2/companies/{companyId}/locations/{id} Avalara DeleteLocation #
GET /api/v2/companies/{companyId}/locations/{id} Avalara GetLocation #
PUT /api/v2/companies/{companyId}/locations/{id} Avalara UpdateLocation #
DELETE /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id} Avalara DeleteLocationParameter #
GET /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id} Avalara GetLocationParameter #
PUT /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id} Avalara UpdateLocationParameter #
GET /api/v2/locations Avalara QueryLocations #
GET /api/v2/companies/{companyId}/locations/{id}/validate Avalara ValidateLocation #

Documentation

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/avalara-locations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

avalara-locations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Avalara Locations API
  version: '1.0'
  description: 'Operations tagged Locations across 3 of this provider''s published API definitions: avalara-avatax-rest-openapi.yml, avalara-excise-openapi.yml, avatax-apis-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://rest.avatax.com
  description: AvaTax Production
- url: https://sandbox-rest.avatax.com
  description: AvaTax Sandbox
- url: https://exciseapi.avalara.com/api/v1
  description: Excise API Production
- url: http://{{baseurl}}
tags:
- name: Locations
  description: Manage company locations and jurisdictions
paths:
  /api/v2/companies/{companyId}/locations:
    get:
      operationId: queryLocations
      summary: Avalara List Locations for a Company
      tags:
      - Locations
      parameters:
      - $ref: '#/components/parameters/companyId'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/top'
      - $ref: '#/components/parameters/skip'
      responses:
        '200':
          description: List of locations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchResult_LocationModel'
      security:
      - basicAuth: []
      - bearerAuth: []
    post:
      operationId: createLocations
      summary: Avalara Create Locations for a Company
      tags:
      - Locations
      parameters:
      - $ref: '#/components/parameters/companyId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/LocationModel'
      responses:
        '201':
          description: Locations created
      security:
      - basicAuth: []
      - bearerAuth: []
    servers:
    - url: https://rest.avatax.com
      description: AvaTax Production
    - url: https://sandbox-rest.avatax.com
      description: AvaTax Sandbox
  /Locations:
    get:
      operationId: listLocations
      summary: Avalara List Locations
      tags:
      - Locations
      responses:
        '200':
          description: List of locations
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExciseLocation'
      security:
      - bearerAuth: []
    post:
      operationId: createLocation
      summary: Avalara Create a Location
      tags:
      - Locations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExciseLocation'
      responses:
        '201':
          description: Location created
      security:
      - bearerAuth: []
    servers:
    - url: https://exciseapi.avalara.com/api/v1
      description: Excise API Production
  /api/v2/companies/{companyId}/locations/{locationId}/parameters:
    post:
      tags:
      - Locations
      summary: Avalara CreateLocationParameters
      description: 'Add parameters to a location.


        Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".


        A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.


        A parameter specified on a transaction line will override a location parameter if they share the same parameter name.


        To see available parameters for this location, call `/api/v2/definitions/parameters?$filter=attributeType eq Company`


        Some parameters are only available for use if you have subscribed to specific AvaTax services. To see which parameters you are able to use, add the query parameter "$showSubscribed=true" to the parameter definition call above.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                id: 0
                name: NumberOfUnitsForRent
                unit: Count
                value: '10'
                locationId: 12345
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: locationId
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: postApiV2CompaniesByCompanyIdLocationsByLocationIdParameters
      x-operation-id-source: derived
    get:
      tags:
      - Locations
      summary: Avalara ListLocationParameters
      description: 'List parameters for a location.


        Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".


        A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.


        A parameter specified on a transaction line will override a location parameter if they share the same parameter name.


        Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on Filtering in REST .

        Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: locationId
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2CompaniesByCompanyIdLocationsByLocationIdParameters
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/companies/{companyId}/locations/{id}:
    delete:
      tags:
      - Locations
      summary: Avalara DeleteLocation
      description: 'Mark the location object at this URL as deleted.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: deleteApiV2CompaniesByCompanyIdLocationsById
      x-operation-id-source: derived
    get:
      tags:
      - Locations
      summary: Avalara GetLocation
      description: 'Get the location object identified by this URL.

        An ''Location'' represents a physical address where a company does business.

        Many taxing authorities require that you define a list of all locations where your company does business.

        These locations may require additional custom configuration or tax registration with these authorities.

        For more information on metadata requirements, see the ''/api/v2/definitions/locationquestions'' API.


        You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:


        * LocationSettings

        * parameters


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2CompaniesByCompanyIdLocationsById
      x-operation-id-source: derived
    put:
      tags:
      - Locations
      summary: Avalara UpdateLocation
      description: 'Replace the existing location object at this URL with an updated object.

        All data from the existing object will be replaced with data in the object you PUT.

        To set a field''s value to null, you may either set its value to null or omit that field from the object you post.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                id: 56789
                companyId: 12345
                locationCode: DEFAULT
                description: Bob's Artisan Pottery
                addressTypeId: Location
                addressCategoryId: MainOffice
                isMarketplaceOutsideUsa: false
                line1: 2000 Main Street
                city: Irvine
                county: Orange
                region: CA
                postalCode: '92614'
                country: US
                isDefault: true
                isRegistered: true
                dbaName: Bob's Artisan Pottery
                outletName: Main Office
                registeredDate: '2015-01-01T00:00:00'
                settings:
                - questionId: 17
                  value: abcdefghij
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: putApiV2CompaniesByCompanyIdLocationsById
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id}:
    delete:
      tags:
      - Locations
      summary: Avalara DeleteLocationParameter
      description: 'Delete a single location parameter.


        Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".


        A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.


        A parameter specified on a transaction line will override a location parameter if they share the same parameter name.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: locationId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: deleteApiV2CompaniesByCompanyIdLocationsByLocationIdParametersById
      x-operation-id-source: derived
    get:
      tags:
      - Locations
      summary: Avalara GetLocationParameter
      description: 'Retrieve a single location parameter.


        Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".


        A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.


        A parameter specified on a transaction line will override a location parameter if they share the same parameter name.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: locationId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2CompaniesByCompanyIdLocationsByLocationIdParametersById
      x-operation-id-source: derived
    put:
      tags:
      - Locations
      summary: Avalara UpdateLocationParameter
      description: 'Update a location parameter.


        Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".


        A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.


        A parameter specified on a transaction line will override a location parameter if they share the same parameter name.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                id: 0
                name: NumberOfUnitsForRent
                unit: Count
                value: '10'
                locationId: 12345
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: locationId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: putApiV2CompaniesByCompanyIdLocationsByLocationIdParametersById
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/locations:
    get:
      tags:
      - Locations
      summary: Avalara QueryLocations
      description: 'Get multiple location objects across all companies.

        An ''Location'' represents a physical address where a company does business.

        Many taxing authorities require that you define a list of all locations where your company does business.

        These locations may require additional custom configuration or tax registration with these authorities.

        For more information on metadata requirements, see the ''/api/v2/definitions/locationquestions'' API.


        Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on Filtering in REST .

        Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.


        You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:


        * LocationSettings

        * parameters


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2Locations
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/companies/{companyId}/locations/{id}/validate:
    get:
      tags:
      - Locations
      summary: Avalara ValidateLocation
      description: 'Returns validation information for this location.

        This API call is intended to compare this location against the currently known taxing authority rules and regulations,

        and provide information about what additional work is required to completely setup this location.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.'
      parameters:
      - name: X-Avalara-Client
        in: header
        schema:
          type: string
        description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/).
        example: AvaTax Postman Collection
      - name: companyId
        in: path
        schema:
          type: string
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2CompaniesByCompanyIdLocationsByIdValidate
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
components:
  schemas:
    FetchResult_LocationModel:
      type: object
      properties:
        '@recordsetCount':
          type: integer
        value:
          type: array
          items:
            $ref: '#/components/schemas/LocationModel'
    LocationModel:
      type: object
      properties:
        id:
          type: integer
        companyId:
          type: integer
        locationCode:
          type: string
        description:
          type: string
        addressTypeId:
          type: string
          enum:
          - Firm
          - Location
          - Salesperson
        addressCategoryId:
          type: string
          enum:
          - Storefront
          - MainOffice
          - Warehouse
          - Salesperson
          - Other
        line1:
          type: string
        city:
          type: string
        region:
          type: string
        postalCode:
          type: string
        country:
          type: string
    ExciseLocation:
      type: object
      properties:
        locationId:
          type: string
        locationName:
          type: string
        locationType:
          type: string
          enum:
          - Terminal
          - Warehouse
          - BulkPlant
          - Retail
          - Blender
          - Refinery
        address:
          $ref: '#/components/schemas/ExciseAddress'
        irsTerminalCode:
          type: string
    ExciseAddress:
      type: object
      properties:
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        region:
          type: string
          description: State or province code
        postalCode:
          type: string
        country:
          type: string
          description: ISO 3166 country code
  parameters:
    companyId:
      name: companyId
      in: path
      required: true
      schema:
        type: integer
      description: The numeric ID of the company
    skip:
      name: $skip
      in: query
      schema:
        type: integer
        default: 0
      description: Number of results to skip for pagination
    filter:
      name: $filter
      in: query
      schema:
        type: string
      description: OData filter expression for result filtering
    top:
      name: $top
      in: query
      schema:
        type: integer
        default: 1000
      description: Maximum number of results to return
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Use your AvaTax username/password or accountId/licenseKey as basic auth credentials
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token
x-refined-from:
- avalara-avatax-rest-openapi.yml
- avalara-excise-openapi.yml
- avatax-apis-openapi.yml