PartsTech Session Cart API

Cart by Session

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/partstech-session-cart-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 email required.

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

OpenAPI Specification

partstech-session-cart-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.021.1
  title: PartsTech Session Cart API
  description: "\n# Rate Limiting\n\nRequests can be limited by user requests, by private partner requests and by all requests with partner's credentials.\nIt has several time intervals:\n  - *Per day* restricts count of requests made in one day.\n  - *Requests per second* restricts count of requests made in one second.\n  - *Concurrent requests* restricts count of parallel requests.\n  - *Sliding 15 minutes* restricts count of requests made in last 15 minutes.\n\n**Note**: Every method has own separate sets of the limits.\n\n## Headers\nUse the HTTP headers in order to understand where the application is at for a given rate limit, on the method that was just utilized.\nThe HTTP header is returned only for one general limit or for limit that user reached.\n\n\n*Headers*\n  - the rate limit ceiling for that given endpoint:\n  ```\n  x-rate-limit-limit: 1000\n  ```\n  - the number of requests left:\n  ```\n  x-rate-limit-remaining: 570\n  ```\n  - the remaining window before the rate limit resets, in UTC [epoch seconds](https://en.wikipedia.org/wiki/Unix_time):\n  ```\n  x-rate-limit-reset: 1552003200\n  ```\n\nWhen an application exceeds the rate limit for a given standard API endpoint,\nthe API will return a HTTP 429 “Too Many Requests” response code, and the following error will be returned in the response body:\n```\n{\n  \"error\": {\n    \"code\": \"TooManyRequests\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Pagination\n\nWhen you call an API method to retrieve information, it can be returned to you in portions.\nCheck out more detail below on pagination in API methods, including how to use them and which methods follow the pattern.\n\nAPI methods that supports pagination will return the `Link` header. It will include available urls of `first`, `last`, `previous` and `next` pages.\n\n```\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"first\"\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"previous\"\nLink: <https://api.partstech.com/purchases?page=3>; rel=\"next\"\nLink: <https://api.partstech.com/purchases?page=142>; rel=\"last\"\n```\n\n# MOTOR Compliance Requirements\n\nAll MOTOR-powered endpoints (Labor, Maintenance Schedules, Fluids, and Specifications) return a `Link` header\ncontaining the URL to MOTOR's OEM Compliance Requirements documentation.\n\nThe header follows the [RFC 8288 (Web Linking)](https://tools.ietf.org/html/rfc8288) format:\n\n```\nLink: <https://www.motor.com/oem-compliance-requirements/>; rel=\"compliance\"\n```\n\n# Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:\n\n```\n{\n  \"error\": {\n    \"code\": \"InternalErrorCode\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Error Responses\nSome default error responses used in the API.\n\nHttp Code  | Explanation | Content Type | Used error codes\n----------------|-------------|------------------|---------\n400 | Bad Request. The request was unacceptable. | `application/json` | `InvalidRequestSyntax`\n401 | Unauthorized. The request requires user or partner credentials or bearer token. Also used for invalid credentials or bearer token. | `application/json` | `InvalidToken`, `UserAuthenticationFailed`, `PartnerAuthenticationFailed`\n402 | Request Failed. The parameters were valid but the request failed. | `application/json` | Different codes, depend on method.\n403 | Forbidden. Also used for unauthorized requests such as improper credentials scopes or permissions issues. | `application/json` | `IncorrectMode`, `DisabledApiUsage`, `UserIsNotActivated`, `HaveNotPermission`, `NotAvailableMethod`\n404 | Some data in the request is not found. Or incorrect url was used. | `application/json`, `text/html`, no content | `NotFound`\n405 | Method not allowed. | `application/json`, `text/html`, no content |\n406 | Unacceptable content type. Client sent an accepts header for a content type which does not exist on the server. | No content |\n409 | Locked. One of the another operations that is in progress blocks this method call. | `application/json` | `LockedSession`\n429 | Too Many Requests | `application/json` | `TooManyRequests`\n432 | Integration Error | `application/json` |\n500 | Internal Server Error. (This is rare.) | `application/json` | `InternalError`\n501 | Not Implemented | `application/json` | `MethodNotImplemented`\n503 | The backend server is not available. (This is rare.) | No content |\n"
  x-logo:
    url: https://partstech.com/wp-content/uploads/2025/03/PartsTech_OEC-compnay_logo.svg
    altText: PartsTech logo
servers:
- url: https://api.partstech.com
  description: Production server
- url: https://api.beta.partstech.com
  description: Beta server
tags:
- name: session-cart
  description: Cart by Session
  x-displayName: Cart by Session
paths:
  /punchout/cart/submit:
    post:
      summary: Submit Cart
      description: 'Orders all of the parts in the cart for the provided punchout `sessionId`.


        Returns the orders that were placed.

        '
      operationId: submitCart
      x-operation-name: CommandPunchoutCartSubmit
      tags:
      - session-cart
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - sessionId
              properties:
                sessionId:
                  type: string
                  description: The unique identifier of a punchout session.
                  example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                orderParams:
                  type:
                  - array
                  - 'null'
                  description: To provide additional options for specific orders, such as `poNumber` and `notes`.
                  items:
                    type: object
                    required:
                    - storeId
                    properties:
                      storeId:
                        type: integer
                        description: PartsTech's ID for a supplier location. Identifies an order in the cart.
                      poNumber:
                        type:
                        - string
                        - 'null'
                        description: Optional. If a value is included here, any PO number provided earlier in the quoting process for the specified order will be overwritten.
                        deprecated: true
                      notes:
                        type:
                        - string
                        - 'null'
                        description: Optional. If a value is included here, any supplier notes provided earlier in the quoting process for the specified order will be overwritten.
                poNumber:
                  type:
                  - string
                  - 'null'
                  description: 'Optional.


                    If a value is included here, it will overwrite any previously provided PO numbers for all orders in the session.

                    '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PunchoutPurchasedCartResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestError'
                - $ref: '#/components/schemas/RequiredAdditionalParametersError'
                - $ref: '#/components/schemas/EmptyCartError'
        '402':
          description: Some orders are not available for purchasing
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/OrderAvailabilityError'
                - $ref: '#/components/schemas/OrderNotPlacedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                  example:
                    error:
                      code: NotFound
                      message: Session was not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LockedSessionError'
        '432':
          description: Integration Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationError'
  /punchout/cart/info:
    post:
      summary: Get Cart
      description: 'Gets the current cart information for the provided `sessionId`.


        **Note**: For desktop applications that lack the ability to use cart callback functionality, this method should be used to get cart information. In this case, our cart buttons cannot be used. The partner application will need to add a button on the PartsTech punchout for users to click when they are ready to transfer cart items to the partner application.

        '
      operationId: getCart
      x-operation-name: QueryPunchoutCartInfo
      tags:
      - session-cart
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - sessionId
              properties:
                sessionId:
                  type: string
                  example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                  description: The unique identifier of a punchout session.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PunchoutCartResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                  example:
                    error:
                      code: NotFound
                      message: Session was not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LockedSessionError'
  /punchout/cart/availability:
    post:
      summary: Check Cart Availability
      description: 'Gets real-time pricing and availability information directly from suppliers for each cart item of the provided `sessionId`. Pricing and availability can change from the time an item is quoted, to the time it is ordered. This method should be used before attempting to place an order, so users can be notified of any price changes or unavailable items.


        **Note**: While the PartsTech API is optimized to deliver quick responses, this endpoint depends on the response times of suppliers'' APIs, which may vary.


        If all items are available in the requested quantities, a successful response with a 200 HTTP status code will be returned. The response will include a list of orders with the current cost of each item. Make sure to check other pricing fields for any changes that would affect the total cost, such as `shippingPrice` or `fet` (if applicable).


        If there are pricing changes, it is recommended to update the necessary values in the work order and inform the user about the changes. The user can decide whether to proceed with the order at the updated total cost or not.


        When one or more items are unavailable for ordering, a response with a 402 HTTP status code will be returned. The response will contain details about the availability error, including which items were unavailable and errors fields specifying the reason for each item.


        In such cases, it is highly recommended to inform the user about the unavailable items and let them decide on the next steps. They may choose to proceed with ordering the available items and return later for the currently unavailable ones when they become available. Alternatively, they can punchout to PartsTech to explore alternative items that are currently available for immediate ordering.

        '
      operationId: checkCartAvailability
      x-operation-name: QueryPunchoutCartAvailability
      tags:
      - session-cart
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - sessionId
              properties:
                sessionId:
                  type: string
                  example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                  description: The unique identifier of a punchout session.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PunchoutCartResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestError'
                - $ref: '#/components/schemas/RequiredAdditionalParametersError'
        '402':
          description: Some orders are not available for purchasing
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/OrderAvailabilityError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    error:
                      $ref: '#/components/schemas/Error'
                  example:
                    error:
                      code: NotFound
                      message: Session was not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LockedSessionError'
        '432':
          description: Integration Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationError'
components:
  schemas:
    PartCategory:
      type:
      - string
      - 'null'
      enum:
      - Maintenance
      - Service
      - Consumable
    Rewards:
      type:
      - array
      - 'null'
      minItems: 0
      items:
        type: object
        properties:
          program:
            type:
            - string
            - 'null'
          points:
            type:
            - integer
            - 'null'
          bonusPoints:
            type:
            - integer
            - 'null'
    InvalidRequestError:
      description: Malformed request. The request body is not parse-able or with invalid content.
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
        validationErrors:
          type: array
          items:
            type: string
      example:
        error:
          code: InvalidRequestSyntax
          message: Cannot parse request. Invalid data format
        validationErrors:
        - credentials.user.key - This value should not be blank.
        - credentials.user.id - This value should be of type string.
        - credentials.partner - This value should not be blank.
    PunchoutPurchasedCartResponse:
      type: object
      required:
      - sessionId
      - orders
      properties:
        sessionId:
          type: string
          example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
          description: The unique identifier of a punchout session.
        orders:
          type: array
          items:
            $ref: '#/components/schemas/PunchoutPurchasedOrder'
        localInventoryItems:
          type: array
          items:
            $ref: '#/components/schemas/CartLocalInventoryItem'
        redirectUrl:
          type: string
          example: https://app.partstech.com/api-search/your_partnerId/your_test_userId/1ag3d2b5240e4jcbbe3ee9c49c929fe4/
        selectedLaborItems:
          type:
          - array
          - 'null'
          description: 'Labor items that were selected by user.


            Labor items may be attached to items and cart/punchout session.


            Selected labor items are not used (they will not be copied or returned) in next methods:

            - [Create Custom Cart](#operation/customCartCreate)

            - [Order Custom Cart](#operation/submitItems)

            - [Check Custom Cart Availability](#operation/checkItemsAvailability)

            '
          items:
            $ref: '#/components/schemas/PunchoutLaborItem'
    PunchoutPurchasedOrder:
      allOf:
      - type: object
        required:
        - id
        - orderUrl
        properties:
          id:
            description: The PartsTech ID for the order.
            type: integer
            example: 128577
          orderUrl:
            type: string
            example: https://app.partstech.com/some-invoice-url
            description: The URL of the PartsTech order details page.
      - $ref: '#/components/schemas/PunchoutOrder'
    ResponseTaxonomy:
      type:
      - object
      - 'null'
      description: "Part taxonomy has three levels of classification. \nCategory, subcategory, and part type. \nCategory is the most broad and each category contains subcategories.\nEach subcategory contains part types. \nPart type is the most specific classification for a part. \nFor example, the taxonomy for brake pads are the following\n\\- Category = Brake - Subcategory = Disc Pads and Brake Shoes - Part Type = Disc Brake Pad Set.\n"
      required:
      - partTypeId
      properties:
        partTypeId:
          type: integer
          example: 14216
          description: The ID of a part type from the Autocare Association's PCdb.
        partTypeName:
          type:
          - string
          - 'null'
          example: Air Filter Set
          description: The name of a part type.
        partTypeDescription:
          type:
          - string
          - 'null'
          example: Initial fill additive for turbochargers.
          description: The description of a part type.
        categoryId:
          type:
          - integer
          - 'null'
          example: 12
          description: The ID of a part category from the Autocare Association's PCdb. Category is the highest level of part taxonomy.
        categoryName:
          type:
          - string
          - 'null'
          example: Air and Fuel Delivery
          description: The name of a category.
        subCategoryId:
          type: integer
          example: 153
          description: The ID of a subcategory from the Autocare Association's PCdb.
        subCategoryName:
          type:
          - string
          - 'null'
          example: Filters
          description: The name of a subcategory.
      example:
        partTypeId: 8852
        partTypeName: Windshield Wiper Blade
        categoryId: 22
        categoryName: Wiper and Washer
        subCategoryId: 236
        subCategoryName: Windshield Wiper Arm, Blade, and Related Components
    DeliveryNote:
      type: object
      required:
      - label
      - text
      - date
      properties:
        label:
          type:
          - string
          - 'null'
        text:
          type:
          - string
          - 'null'
    OrderAvailabilityError:
      description: Some orders are not available for purchasing
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
        errorDetails:
          type: array
          items:
            type: object
            required:
            - supplier
            - store
            properties:
              supplier:
                $ref: '#/components/schemas/BriefSupplier'
              store:
                $ref: '#/components/schemas/BriefStore'
              errors:
                type: array
                items:
                  type: string
              parts:
                type: array
                items:
                  type: object
                  required:
                  - orderItemId
                  - partId
                  - quantity
                  properties:
                    orderItemId:
                      type: string
                      description: The unique identifier for an item added to a cart. This ID allows PartsTech to reference a specific item in a specific session and its cart details (e.g. PO number, supplier notes, delivery method).
                    partId:
                      type: string
                    quantity:
                      type: integer
                    errors:
                      type: array
                      items:
                        type: string
        localInventoryItemErrors:
          type: array
          items:
            type: object
            required:
            - itemId
            - inventoryUID
            - partId
            - quantity
            - errors
            properties:
              itemId:
                type: string
                example: 0ze4f01824764a61991b9d090fdc1813
                description: 'The unique identifier for an item added to a cart.

                  This ID allows PartsTech to reference a specific item in a specific session and its cart details (e.g. PO number, supplier notes, delivery method)."

                  '
              inventoryUID:
                type: string
                example: 123123123
                description: ID of item in local inventory.
              partId:
                type: string
                example: ABCD-12345
                description: PartsTech's ID for a part. Consists of `brandId`-`partNumber`.
              quantity:
                type: integer
                example: 2
                description: The requested quantity for a part.
              errors:
                type: array
                description: List of errors.
                items:
                  type: string
      example:
        error:
          code: OrderAvailabilityError
          message: Some orders are not available for purchasing
    PartPrice:
      type: object
      required:
      - cost
      - core
      - fet
      properties:
        list:
          type:
          - number
          - 'null'
          format: float
          example: 1.2
          description: Not all parts will have a list price. This property will contain the null value for parts without a list price.
        price:
          type: number
          format: float
          example: 1.6
          description: Total price charged to the user for an item, includes discounts and core charge if applicable.
        cost:
          type: number
          format: float
          example: 1.24
          description: Cost of an item for the user including any discounts. Excludes any core charges.
        core:
          type: number
          format: float
          example: 0.4
          description: A fee for certain part types that is returned to the purchaser when the old part that is being replaced is returned to the store.
        fet:
          type:
          - number
          - 'null'
          description: The Federal Excise Tax (FET) applies to tires used on the road with a maximum load capacity greater than 3500 pounds. This tax is charged to the purchaser of the tire from the tire supplier. Only 100% accurate FET values are sent through the PartsTech API.
          format: float
          example: 1.2
        retail:
          type:
          - number
          - 'null'
          description: The price to charge customers. PartsTech calculates this price by taking the ``cost`` and then applying the appropriate mark up from the user's retail pricing configuration. This property will be null if there is no applicable mark up to the item or if the user has not set up their retail pricing configuration.
          format: float
          example: 2
        discount:
          type:
          - number
          - 'null'
          description: The discount for an item. There can be a discount when an item is quoted or purchased as part of a bundled deal from participating suppliers.
          format: float
          example: 0.2
        map:
          type:
          - number
          - 'null'
          description: Minimum Advertised Price
          format: float
          example: 1.9
    PunchoutOrder:
      type: object
      required:
      - supplier
      - store
      - delivery
      - buyerShop
      - tax
      - totalPrice
      - totalDiscount
      - coreCharge
      - fet
      - shippingPrice
      - paymentType
      - parts
      properties:
        supplier:
          $ref: '#/components/schemas/CartSearchSupplier'
        store:
          oneOf:
          - $ref: '#/components/schemas/OrderStore'
          - $ref: '#/components/schemas/PaidOrderStore'
        delivery:
          description: Delivery details
          type: object
          required:
          - price
          properties:
            name:
              type:
              - string
              - 'null'
              example: hotshot
              description: Type of delivery
            price:
              type: number
              format: float
              example: 1.24
              description: Cost of delivery
        buyerShop:
          $ref: '#/components/schemas/Address'
        tax:
          type: number
          format: float
          example: 9.01
          description: Sales tax, if applicable. Typically shops are tax-exempt.
        totalPrice:
          type: number
          format: float
          example: 25
          description: Total price charged to the user for an order, includes discounts and core charge if applicable.
        totalDiscount:
          type: number
          format: float
          example: 5
          description: Total discounts for an order
        coreCharge:
          type: number
          format: float
          example: 12
          description: A fee for certain part types that is returned to the purchaser when the old part that is being replaced is returned to the store.
        fet:
          type: number
          description: The Federal Excise Tax (FET). The tax imposed by the federal government on tires used on the road with a maximum load capacity greater then 3500 pounds. Only 100% accurate FET values are present in this field.
          format: float
          example: 1.2
        shippingPrice:
          type: number
          format: float
          example: 1.24
          description: Cost of delivery.
        paymentType:
          type: string
          enum:
          - CreditCard
          - Wholesale
        parts:
          type: array
          items:
            $ref: '#/components/schemas/PunchoutOrderPart'
        poNumber:
          type:
          - string
          - 'null'
          example: 2743
          description: The purchase order number
        notes:
          type:
          - string
          - 'null'
          example: Notes
          description: Supplier notes
    BriefStore:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
          example: 1
          description: PartsTech's ID for a store.
        name:
          type: integer
          example: 5904 - Springfield, MA
          description: The name of a store
    RequiredAdditionalParametersError:
      description: Supplier requires additional parameters that should be filled in the cart.
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
        sessionId:
          type:
          - string
          - 'null'
          description: The identifier of a punchout session.
        redirectUrl:
          type:
          - string
          - 'null'
          format: url
      example:
        error:
          code: RequiredAdditionalParametersError
          message: Supplier requires additional parameters that should be filled in the cart.
        sessionId: Session id
        redirectUrl: http://localhost:80/redirect-url
    Error:
      title: Error Definition
      type: object
      required:
      - code
      - message
      properties:
        code:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
    CartSearchSupplier:
      allOf:
      - $ref: '#/components/schemas/BriefSupplier'
      - type: object
        required:
        - allowStoreSelect
        - availabilitySelect
        properties:
          allowStoreSelect:
            type: boolean
            description: If true for a supplier, users have the option to select a specfic store when sourcing parts.
          availabilitySelect:
            type: boolean
            description: If true for a supplier, users are required to select a specific store when sourcing parts.
          postOrderUpdates:
            type: boolean
            description: If true for a supplier, order can be updated after they placed.
    Brand:
      type: object
      description: Contains brand information about a part.
      required:
      - brandID
      - brandName
      properties:
        brandID:
          type: string
          example: BBCM
          description: The ID of a brand from the Autocare Association.
        brandName:
          type: string
          example: Alba
          description: The name of a brand.
        id:
          description: PartsTech's ID for a brand.
          type:
          - integer
          - 'null'
          example: 1
        displayName:
          type:
          - string
          - 'null'
          example: Alba
        lineCode:
          type:
          - string
          - 'null'
      example:
        brandID: BBHK
        brandName: Bosch
        id: 551
        displayName: Bosch
    CartLocalInventoryItem:
      type: object
      required:
      - itemId
      - inventoryUID
      - partId
      - quantity
      - price
      - partName
      - partNumber
      - availability
      - brand
      properties:
        itemId:
          type: string
          example: 0ze4f01824764a61991b9d090fdc1813
          description: 'The unique identifier for an item added to a cart.

            This ID allows PartsTech to reference a specific item in a specific session and its cart details (e.g. PO number, supplier notes, delivery method)."

            '
        inventoryUID:
          type: string
          example: 123123123
          description: ID of item in local inventory.
        partId:
          type: string
          example: ABCD-12345
          description: PartsTech's ID for a part. Consists of `brandId`-`partNumber`.
        quantity:
          type: integer
          example: 2
          description: The requested quantity for a part.
        price:
          $ref: '#/components/schemas/PartPrice'
        partName:
          type: string
          example: Motorcraft Engine Oil Filter
          description: The name of the part. Part name is typically the brand name + the part type name. For tires it is typically the brand name + model. There is a shop setting that can be enabled to remove the brand name from this field for all parts (tires excluded).
        partNumber:
          type: string
          example: 12345
          description: The manufacturer part number.
        imageUrl:
          type:
          - string
          - 'null'
          format: url
          description: The URL of the part image that PartsTech uses for the part.
     

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/partstech/refs/heads/main/openapi/partstech-session-cart-api-openapi.yml