openapi: 3.2.0 info: title: FinditParts Reseller Variants API version: 2.0.1 description: 'REST surface of the FinditParts Reseller API — the partner/reseller integration for FinditParts, an online marketplace for heavy-duty truck, trailer, fleet and industrial replacement parts. It covers catalog search and part-number lookup, variant pricing and availability, shipping-method quoting, hosted customer setup and order sessions, cart/checkout, and order history. DERIVED, NOT PUBLISHED BY THE PROVIDER. FinditParts publishes no OpenAPI document. This spec was mechanically derived by API Evangelist from the first-party public Postman collection "FinditParts Reseller API 2.0.1", published by FinditParts at https://api-docs.finditparts.com/ and saved verbatim in this repo at postman/finditparts-reseller-api-postman.json. Every path, method, parameter, request body, example response and description below is carried over from that collection; nothing was invented. Response schemas are derived from the collection''s example payloads, whose /// placeholders are Postman''s rendering of the provider''s own declared types. Each operation records its original collection URL template in x-postman-request. Authentication is a short-lived HS256 JWT signed with the Reseller Client Secret (iss = Reseller Client ID, exp required, sub = Customer Reference when acting on behalf of a customer), or an issued API key of the form api-XYZ123 — both presented as an Authorization: Bearer credential. See authentication/finditparts-authentication.yml.' contact: name: FinditParts Support email: support@finditparts.com url: https://www.finditparts.com/developers termsOfService: https://www.finditparts.com/terms-of-use x-generated-by: API Evangelist enrichment pipeline (derived from first-party Postman collection) x-source: postman/finditparts-reseller-api-postman.json x-source-url: https://api-docs.finditparts.com/ servers: - url: https://finditparts.com/api/v1 description: Production. This is the baseUrl collection variable published in the FinditParts Reseller API Postman collection; FinditParts documents no separate sandbox host. security: - resellerJWT: [] - apiKey: [] tags: - name: Variants description: Variant-level price, quantity, cutoff and core lookups. paths: /variants/{variant_ids}: get: operationId: variantLookup summary: Variant Lookup tags: - Variants description: "Returns the matching variants by ID\n\nRequires a JWT in the Authorization header with intent 'PRODUCT_SEARCH' and on behalf of a 'Customer Reference' (See Workflow section in /reseller_customer_sessions endpoint).\n\nUse a customer referenced JWT with intent PRODUCT_SEARCH to return account specific pricing or a Generic JWT token (no customer reference) to return list price.\n\nJWT payload for product search\nExample JWT payload (with customer reference sub to return account_price):\n\nJWT.sign({\n sub: \"CUSTOMER_123\",\n iss: \"acme-corp-sandbox\",\n exp: 1600903066,\n data: {\n intent: \"PRODUCT_SEARCH\",\n }\n}, 'RESELLER_CLIENT_SECRET')\n=> \"JWT.TOKEN.HERE\"\nExample generic JWT payload (no customer reference sub to return generic list price of products):\n\nJWT.sign({\n iss: \"acme-corp-sandbox\",\n exp: 1600903066,\n}, 'RESELLER_CLIENT_SECRET')\n=> \"JWT.TOKEN.HERE\"" parameters: - name: variant_ids in: path required: true schema: type: string responses: '200': description: 'Variant Lookup Response: A list of matching variants' content: application/json: schema: type: object properties: variants: type: array items: type: object properties: variant_id: type: integer price: type: string quantity: type: integer pack_quantity: type: integer minimum: type: integer verified: type: boolean location: type: string timezone: type: string cutoff: type: string format: date-time past_cutoff: type: boolean core_price: type: string estimated_business_days_to_ship: type: integer estimated_ship_date: type: string format: date-time estimated_days_to_deliver: type: integer estimated_delivery_date_ground: type: string format: date-time account_price: type: string minimum_order: type: string minimum_order_fee: type: string errno: type: integer example: variants: - variant_id: price: quantity: pack_quantity: minimum: verified: location: timezone: cutoff: past_cutoff: core_price: estimated_business_days_to_ship: estimated_ship_date: estimated_days_to_deliver: estimated_delivery_date_ground: account_price: minimum_order: minimum_order_fee: - variant_id: price: quantity: pack_quantity: minimum: verified: location: timezone: cutoff: past_cutoff: core_price: estimated_business_days_to_ship: estimated_ship_date: estimated_days_to_deliver: estimated_delivery_date_ground: account_price: minimum_order: minimum_order_fee: errno: '500': description: API error content: application/json: schema: type: object properties: errno: type: integer message: type: string example: errno: message: x-postman-request: https://finditparts.com/api/v1/variants/:variant_ids components: securitySchemes: resellerJWT: type: http scheme: bearer bearerFormat: JWT description: 'A short-lived JWT signed with your Reseller Client Secret using HS256. Required claims: iss (your Reseller Client ID) and exp (kept as short as reasonable to prevent replay). Add sub (the Customer Reference) and a data.intent claim (PRODUCT_SEARCH, SHIPPING_METHODS, USER_SETUP, NEW_ORDER) on the endpoints that act on behalf of a specific customer. Presented as: Authorization: Bearer JWT.TOKEN.HERE' apiKey: type: http scheme: bearer description: 'An issued FinditParts API key in the form api-XYZ123, for client-side apps that cannot hold a JWT secret (mobile apps, single-buyer partner applications). Grants the non-user-specific surface (product search, create session, create user); user-specific calls require exchanging user credentials for a user-specific JWT via createSession first. Presented as: Authorization: Bearer api-XYZ123'