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

# List Product Tax codes

> Returns the tax codes you can assign to your products, sorted alphabetically by code. Assigning a product tax code tells Taxwire what a product is so it can be taxed correctly wherever you owe tax. The default page holds up to 1000 codes. To paginate, pass `starting_after` set to the `code` of the last item you received; `has_more` is true while more codes remain. Each page carries a strong `ETag`; send it back as `If-None-Match` to get `304 Not Modified` when that page has not changed.



## OpenAPI

````yaml GET /product-tax-codes
openapi: 3.1.0
info:
  title: Taxwire Public API
  version: 0.1.0
servers: []
security: []
paths:
  /product-tax-codes:
    get:
      tags:
        - Product Tax Codes
      summary: List Product Tax Codes
      description: >-
        Returns the tax codes you can assign to your products, sorted
        alphabetically by code. Assigning a product tax code tells Taxwire what
        a product is so it can be taxed correctly wherever you owe tax. The
        default page holds up to 1000 codes. To paginate, pass `starting_after`
        set to the `code` of the last item you received; `has_more` is true
        while more codes remain. Each page carries a strong `ETag`; send it back
        as `If-None-Match` to get `304 Not Modified` when that page has not
        changed.
      operationId: list_product_tax_codes_product_tax_codes_get
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            description: Page size, between 1 and 1000. Defaults to 1000.
            default: 1000
            title: Limit
          description: Page size, between 1 and 1000. Defaults to 1000.
        - name: starting_after
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Return codes after this one. Pass the `code` of the last item from
              the previous page to fetch the next page.
            title: Starting After
          description: >-
            Return codes after this one. Pass the `code` of the last item from
            the previous page to fetch the next page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductTaxCodesListResponse'
        '304':
          description: Not Modified — the page matches the client's If-None-Match ETag.
        '422':
          description: Validation Error - Invalid input data
          content:
            application/json:
              schema:
                properties:
                  detail:
                    items:
                      properties:
                        type:
                          type: string
                        loc:
                          items:
                            type: string
                          type: array
                        msg:
                          type: string
                        input:
                          oneOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: 'null'
                      type: object
                    type: array
                type: object
              example:
                detail:
                  - type: string_type
                    loc:
                      - body
                      - line_items
                      - 0
                      - quantity
                    msg: Input should be a valid string
                    input: 1
        '429':
          description: Rate limit exceeded. Try again later.
          headers:
            Retry-After:
              schema:
                type: string
              description: Time in seconds until the rate limit resets
            X-RateLimit-Limit:
              schema:
                type: string
              description: The rate limit ceiling for the given request
            X-RateLimit-Remaining:
              schema:
                type: string
              description: The number of requests remaining in the time window
          content:
            application/json:
              schema:
                properties:
                  detail:
                    type: string
                    example: Rate limit exceeded
                type: object
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
              example: Internal Server Error
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    ProductTaxCodesListResponse:
      properties:
        object:
          type: string
          title: Object
          default: list
        url:
          type: string
          title: Url
          default: /product-tax-codes
        has_more:
          type: boolean
          title: Has More
          description: More results available
          examples:
            - true
            - false
        data:
          items:
            $ref: '#/components/schemas/ProductTaxCodeItem'
          type: array
          title: Data
          description: A page of the tax codes you can assign to your products.
      type: object
      required:
        - has_more
      title: ProductTaxCodesListResponse
      description: List envelope for GET /product-tax-codes, cursor-paged by code.
    ProductTaxCodeItem:
      properties:
        code:
          type: string
          title: Code
          description: >-
            The tax code. Assign one or more of these to a product's `tax_codes`
            to tell Taxwire how that product should be taxed. The code captures
            what the product is (for example, physical goods, software, or a
            digital service); Taxwire applies the correct rate and rules for it
            in every jurisdiction where you owe tax.
          examples:
            - TANGIBLE_PERSONAL_PROPERTY
            - DIGITAL_SERVICES.SOFTWARE_AS_A_SERVICE
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            A short, human-readable summary of what the code covers. May be null
            when no summary is available.
          examples:
            - Downloadable or cloud-hosted software sold as a service.
      additionalProperties: false
      type: object
      required:
        - code
      title: ProductTaxCodeItem
      description: A tax code you can assign to a product to control how it is taxed.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer

````