Avalara Contacts API

Manage company contacts

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /companies/{companyId}/contacts List a company's contacts · Avalara List Contacts for a Company #
Ask an LLM
“Who are the contacts on file for my company?”
“Can I see which contact is marked primary for a company?”
Tell an agent
List contacts for company {companyId}.
Show everyone listed as a contact at company {companyId}.
POST /companies/{companyId}/contacts Add a contact to a company · Avalara Create a Contact #
Ask an LLM
“Can I add a new person as a contact for my company?”
“Is it possible to set a new contact as the primary one?”
Tell an agent
Add {firstName} {lastName} ({email}) as a contact for company {companyId}.
Create a primary contact with email {email} for company {companyId}, primary flag {isPrimary}.
POST /api/v2/companies/{companyId}/contacts Create one or more AvaTax v2 contacts · Avalara CreateContacts #
Ask an LLM
“Can I add several tax filing contacts to a company in a single AvaTax call?”
“How do I designate a person to handle filing responsibilities for a company?”
Tell an agent
Create AvaTax v2 contacts for company {companyId}.
Add multiple tax filing contacts to company {companyId} at once.
GET /api/v2/companies/{companyId}/contacts List a company's AvaTax v2 contacts · Avalara ListContactsByCompany #
Ask an LLM
“Which tax filing contacts are assigned to a company in the AvaTax v2 API?”
“Can I filter and page AvaTax company contacts with OData?”
Tell an agent
List AvaTax v2 contacts for company {companyId}.
Show the tax filing contacts assigned to company {companyId} in AvaTax.
DELETE /api/v2/companies/{companyId}/contacts/{id} Delete a contact · Avalara DeleteContact #
Ask an LLM
“How do I remove a person who no longer handles our tax filings?”
“Can I delete a contact from a company?”
Tell an agent destructive · confirm first
Delete contact {id} from company {companyId}.
Mark contact {id} as deleted.
GET /api/v2/companies/{companyId}/contacts/{id} Retrieve a single contact · Avalara GetContact #
Ask an LLM
“Can I look up one company contact by ID?”
“What details are stored for a specific tax filing contact?”
Tell an agent
Get contact {id} for company {companyId}.
Show contact {id}.
PUT /api/v2/companies/{companyId}/contacts/{id} Update a contact · Avalara UpdateContact #
Ask an LLM
“How do I change a contact's email or phone number?”
“Does replacing a contact clear the fields I leave out?”
Tell an agent
Update contact {id} in company {companyId}.
Replace contact {id} with updated details.
GET /api/v2/contacts Search contacts across all companies · Avalara QueryContacts #
Ask an LLM
“Which contacts exist across every company in my account?”
“Can I query contacts without choosing a single company?”
Tell an agent
List contacts across all my companies.
Query every company's contacts in the account.

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-contacts-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-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Avalara Contacts API
  version: '1.0'
  description: 'Operations tagged Contacts across 2 of this provider''s published API definitions: avalara-shared-company-service-openapi.yml, avatax-apis-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.avalara.com/shared/v1
  description: Shared Company Service Production
- url: http://{{baseurl}}
tags:
- name: Contacts
  description: Manage company contacts
paths:
  /companies/{companyId}/contacts:
    get:
      operationId: listContacts
      summary: Avalara List Contacts for a Company
      tags:
      - Contacts
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of contacts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SharedContact'
      security:
      - bearerAuth: []
    post:
      operationId: createContact
      summary: Avalara Create a Contact
      tags:
      - Contacts
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharedContact'
      responses:
        '201':
          description: Contact created
      security:
      - bearerAuth: []
    servers:
    - url: https://api.avalara.com/shared/v1
      description: Shared Company Service Production
  /api/v2/companies/{companyId}/contacts:
    post:
      tags:
      - Contacts
      summary: Avalara CreateContacts
      description: 'Create one or more new contact objects.

        A ''contact'' is a person associated with a company who is designated to handle certain responsibilities of

        a tax collecting and filing entity.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, TechnicalSupportAdmin.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                id: 56789
                companyId: 12345
                contactCode: TestContactbdbc28ddc6a64e
                firstName: Bob
                lastName: McExample
                title: Owner
                line1: 2000 Main Street
                city: Irvine
                region: CA
                postalCode: '92614'
                country: US
                email: bob@example.org
                phone: 714 555-1212
      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
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: postApiV2CompaniesByCompanyIdContacts
      x-operation-id-source: derived
    get:
      tags:
      - Contacts
      summary: Avalara ListContactsByCompany
      description: 'List all contact objects assigned to this company.


        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, FirmAdmin, 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
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      security:
      - basicAuth: []
      operationId: getApiV2CompaniesByCompanyIdContacts
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/companies/{companyId}/contacts/{id}:
    delete:
      tags:
      - Contacts
      summary: Avalara DeleteContact
      description: 'Mark the existing contact object at this URL as deleted.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, 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: deleteApiV2CompaniesByCompanyIdContactsById
      x-operation-id-source: derived
    get:
      tags:
      - Contacts
      summary: Avalara GetContact
      description: 'Get the contact object identified by this URL.

        A ''contact'' is a person associated with a company who is designated to handle certain responsibilities of

        a tax collecting and filing entity.


        ### Security Policies


        * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, FirmAdmin, 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: getApiV2CompaniesByCompanyIdContactsById
      x-operation-id-source: derived
    put:
      tags:
      - Contacts
      summary: Avalara UpdateContact
      description: 'Replace the existing contact object at this URL with an updated object.

        A ''contact'' is a person associated with a company who is designated to handle certain responsibilities of

        a tax collecting and filing entity.

        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, CSPTester, FirmAdmin, SSTAdmin, TechnicalSupportAdmin.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                id: 56789
                companyId: 12345
                contactCode: TestContactbdbc28ddc6a64e
                firstName: Bob
                lastName: McExample
                title: Owner
                line1: 2000 Main Street
                city: Irvine
                region: CA
                postalCode: '92614'
                country: US
                email: bob@example.org
                phone: 714 555-1212
      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: putApiV2CompaniesByCompanyIdContactsById
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
  /api/v2/contacts:
    get:
      tags:
      - Contacts
      summary: Avalara QueryContacts
      description: 'Get multiple contact objects across all companies.

        A ''contact'' is a person associated with a company who is designated to handle certain responsibilities of

        a tax collecting and filing entity.


        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, FirmAdmin, 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: getApiV2Contacts
      x-operation-id-source: derived
    servers:
    - url: http://{{baseurl}}
components:
  schemas:
    SharedContact:
      type: object
      properties:
        contactId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        title:
          type: string
        isPrimary:
          type: boolean
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    basicAuth:
      type: http
      scheme: basic
externalDocs:
  description: Shared Company Service API Documentation
  url: https://developer.avalara.com/api-reference/sharedservice/sharedCompanyService/
x-refined-from:
- avalara-shared-company-service-openapi.yml
- avatax-apis-openapi.yml