openapi: 3.0.3 info: title: Tekmetric Appointments Inventory API description: Tekmetric is a cloud-based auto repair shop management platform. Its REST API is partner-gated - access requires requesting credentials at api.tekmetric.com and Tekmetric's approval (reported at roughly 2-3 weeks); there is no self-serve signup or public API reference. The endpoints, parameters, and response envelope documented here are sourced from beetlebugorg/tekmetric-mcp, an independent open-source client that holds approved credentials and calls the live API - not from an official Tekmetric API reference document. Only read (GET) endpoints are documented because that is all the reference client implements; write endpoints may exist but are not evidenced in any public source. version: v1 contact: name: Tekmetric url: https://www.tekmetric.com/ x-source-note: Endpoint shapes confirmed via github.com/beetlebugorg/tekmetric-mcp (pkg/tekmetric/*.go), an unofficial, independently maintained client, not an official Tekmetric-published specification. servers: - url: https://shop.tekmetric.com/api/v1 description: Production - url: https://sandbox.tekmetric.com/api/v1 description: Sandbox security: - oauth2: [] tags: - name: Inventory description: Parts and tire inventory. paths: /inventory: get: operationId: listInventory tags: - Inventory summary: List inventory parts description: Lists a shop's parts inventory, filterable by part type and tire attributes (ratio, diameter). parameters: - $ref: '#/components/parameters/Shop' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' - name: partTypeId in: query required: false schema: type: integer - name: ratio in: query required: false description: Tire aspect ratio, when filtering tire inventory. schema: type: number - name: diameter in: query required: false description: Tire diameter, when filtering tire inventory. schema: type: number responses: '200': description: A page of inventory parts. content: application/json: schema: $ref: '#/components/schemas/InventoryPartPage' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Page: type: object description: Spring Data Page envelope used by all list endpoints. properties: totalPages: type: integer totalElements: type: integer first: type: boolean last: type: boolean size: type: integer number: type: integer numberOfElements: type: integer InventoryPart: type: object properties: id: type: integer partTypeId: type: integer partNumber: type: string description: type: string quantityOnHand: type: number ratio: type: number nullable: true diameter: type: number nullable: true InventoryPartPage: allOf: - $ref: '#/components/schemas/Page' - type: object properties: content: type: array items: $ref: '#/components/schemas/InventoryPart' parameters: Shop: name: shop in: query required: false description: The shop ID to scope the request to. schema: type: integer Page: name: page in: query required: false description: Zero-based page number. schema: type: integer default: 0 Size: name: size in: query required: false description: Page size. schema: type: integer default: 20 responses: Unauthorized: description: Missing, invalid, or revoked access token. securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 client credentials grant. Requires an approved Client ID/Secret issued by Tekmetric after a manual request-access review (reported at roughly 2-3 weeks). flows: clientCredentials: tokenUrl: https://shop.tekmetric.com/api/v1/oauth/token scopes: {}