openapi: 3.0.3 info: title: Tekmetric Appointments Canned Jobs 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: Canned Jobs description: Pre-built menu services bundling standard labor and parts. paths: /canned-jobs: get: operationId: listCannedJobs tags: - Canned Jobs summary: List canned jobs description: Lists a shop's canned jobs - pre-built menu services bundling standard labor and parts - available to apply to estimates. parameters: - $ref: '#/components/parameters/Shop' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' responses: '200': description: A page of canned jobs. content: application/json: schema: $ref: '#/components/schemas/CannedJobPage' '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 CannedJobPage: allOf: - $ref: '#/components/schemas/Page' - type: object properties: content: type: array items: $ref: '#/components/schemas/CannedJob' CannedJob: type: object properties: id: type: integer name: type: string description: type: string smart: type: boolean description: Whether this is a "smart" canned job that adapts to vehicle fitment. 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: {}