Shop-Ware Canned Jobs API

The Canned Jobs API from Shop-Ware — 2 operation(s) for canned jobs.

OpenAPI Specification

shop-ware-canned-jobs-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: API V1 API Partners Canned Jobs API
  version: v1
  contact:
    name: API Support
    email: support@shop-ware.com
security:
- api_partner_id: []
  api_secret: []
tags:
- name: Canned Jobs
paths:
  /api/v1/tenants/{tenant_id}/canned_jobs:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    get:
      summary: Get a list of all canned jobs
      tags:
      - Canned Jobs
      parameters:
      - name: page
        in: query
        required: false
        example: '1'
        schema:
          type: integer
      - name: per_page
        in: query
        required: false
        example: '30'
        schema:
          type: integer
      - name: updated_after
        in: query
        required: false
        example: 2022-10-24T12%3A00%3A00%2B08%3A00
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    results:
                    - id: 1
                      created_at: '2026-06-09T14:21:46Z'
                      updated_at: '2026-06-09T14:21:46Z'
                      title: Fake Canned Job Name
                      all_vehicles: false
                      frequency: 3360
                      category_id: 4
                      auto_applied: false
                      shop_id: 2
                      fixed_price_cents: null
                      labor_rate_cents: 10000
                      is_fixed_price_service: false
                      optimizer_enabled: true
                      ai_parts_matrix_enabled: true
                      integrator_tags:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        taggable_type: CannedJob
                        taggable_id: 1
                        name: 987 zyx
                        value: abc 123
                      sublets:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        name: MFD Repair
                        price_cents: 70000
                        taxable: true
                      inspections:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        name: Confirm proper operation of instruments and warning lights
                      vehicles:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        year: '2006'
                        make: Toyota
                        model: Prius
                        engine: 1.5L L4 (1NZFXE) ELECTRIC/GAS FI
                      hazmats:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        name: Qt Motor Oil Recycling
                        fee_cents: 75
                        taxable: true
                        quantity: 4.0
                      parts:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        part_inventory_id: 1
                        taxable: true
                        quoted_price_cents: 10000
                        msrp_cents: 10000
                        quantity: 4.0
                      labors:
                      - id: 1
                        created_at: '2026-06-09T14:21:46Z'
                        updated_at: '2026-06-09T14:21:46Z'
                        name: Drain and fill engine oil
                        taxable: true
                        hours: 0.1
                    limit: 1
                    limited: false
                    total_count: 1
                    current_page: 1
                    total_pages: 1
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Unique identifier of this record.
                        title:
                          type: string
                          description: Labor title.
                        category_id:
                          type: integer
                          description: A foreign key that points to the Category that this CannedJob belongs to.
                        frequency:
                          type: number
                          description: The popularity of this canned job. The most used canned jobs will have the highest frequency.
                        all_vehicles:
                          type: boolean
                          description: True if this canned job applies to all vehicles (rather than only specific vehicles), false otherwise.
                        auto_applied:
                          type: boolean
                          description: True if this canned job should be applied to every new estimate automatically, false otherwise.
                        optimizer_enabled:
                          type: boolean
                          description: True if the AI Parts Matrix should be used when pricing parts on this canned job, false otherwise.
                          deprecated: true
                        ai_parts_matrix_enabled:
                          type: boolean
                          description: True if the AI Parts Matrix should be used when pricing parts on this canned job, false otherwise.
                        shop_id:
                          type: integer
                          description: A foreign key that points to the Shop that this CannedJob belongs to
                        labor_rate_cents:
                          type: integer
                          description: Labor rate in cents
                          nullable: true
                        fixed_price_cents:
                          type: integer
                          description: The price in cents that this service will be charged at.
                          nullable: true
                        is_fixed_price_service:
                          type: boolean
                          description: Determines if this service has a fixed price.
                        sublets:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The sublet primary key.
                              name:
                                type: string
                                description: The name of this sublet as it will appear on the RO.
                              price_cents:
                                type: integer
                                description: The price in cents of sublet being sold to customer.
                              taxable:
                                type: boolean
                                description: Determines if sublet tax rate will be applied to this sublet.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when sublet was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when sublet was last updated.
                        hazmats:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The hazmat primary key.
                              name:
                                type: string
                                description: The name of this hazmat as it will appear on the RO.
                              fee_cents:
                                type: integer
                                description: The price of this fee or hazmat in cents per unit.
                              quantity:
                                type: number
                                description: The number of units.
                              taxable:
                                type: boolean
                                description: Determines if hazmat tax rate will be applied to this hazmat.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when hazmat was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when hazmat was last updated.
                        parts:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The part primary key.
                              part_inventory_id:
                                type: integer
                                description: A foreign key which points to an Inventory.id. Represents the associated inventory and quantity information for this part.
                              quantity:
                                type: number
                                description: The number of units this part line item represents.
                              quoted_price_cents:
                                type: integer
                                description: MSRP in cents.
                                nullable: true
                                deprecated: true
                              msrp_cents:
                                type: integer
                                description: MSRP in cents.
                                nullable: true
                              taxable:
                                type: boolean
                                description: Determines if part tax rate will be applied to this part.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when part was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when part was last updated.
                        integrator_tags:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The tag primary key.
                              taggable_type:
                                type: string
                                description: Entity type the tag attached to.
                              taggable_id:
                                type: integer
                                description: Entity identifier the tag attached to.
                              name:
                                type: string
                                description: Tag Name.
                              value:
                                type: string
                                description: Tag Value.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when tag was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when tag was last updated.
                        inspections:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The inspection primary key.
                              name:
                                type: string
                                description: The name of this inspection as it will appear on the RO.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when inspection was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when inspection was last updated.
                        labors:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The labor primary key.
                              name:
                                type: string
                                description: The name of this labor as it will appear on the RO.
                              taxable:
                                type: boolean
                                description: Determines if labor tax rate will be applied to this labor.
                              hours:
                                type: number
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when labor was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when labor was last updated.
                        vehicles:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: The vehicle primary key.
                              year:
                                type: string
                                description: Vehicle year.
                              make:
                                type: string
                                description: Vehicle make.
                              model:
                                type: string
                                description: Vehicle model.
                              engine:
                                type: string
                                description: Vehicle engine.
                              created_at:
                                type: string
                                format: date-time
                                description: The date and time when vehicle was created.
                              updated_at:
                                type: string
                                format: date-time
                                description: The date and time when vehicle was last updated.
                        created_at:
                          type: string
                          format: date-time
                          description: Date and time when record was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: Date and time when record was last updated.
                  limit:
                    type: integer
                  limited:
                    type: boolean
                  total_count:
                    type: integer
                  current_page:
                    type: integer
                  total_pages:
                    type: integer
  /api/v1/tenants/{tenant_id}/canned_jobs/{id}:
    parameters:
    - name: tenant_id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    - name: id
      in: path
      required: true
      example: '1'
      schema:
        type: integer
    get:
      summary: Get a specific canned job by ID
      tags:
      - Canned Jobs
      responses:
        '200':
          description: successful
          content:
            application/json:
              examples:
                successful:
                  value:
                    id: 1
                    created_at: '2026-06-09T14:21:49Z'
                    updated_at: '2026-06-09T14:21:49Z'
                    title: Fake Canned Job Name
                    all_vehicles: false
                    frequency: 3360
                    category_id: 4
                    auto_applied: false
                    shop_id: 2
                    fixed_price_cents: null
                    labor_rate_cents: 10000
                    is_fixed_price_service: false
                    optimizer_enabled: true
                    ai_parts_matrix_enabled: true
                    integrator_tags:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      taggable_type: CannedJob
                      taggable_id: 1
                      name: 987 zyx
                      value: abc 123
                    sublets:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      name: MFD Repair
                      price_cents: 70000
                      taxable: true
                    inspections:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      name: Confirm proper operation of instruments and warning lights
                    vehicles:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      year: '2006'
                      make: Toyota
                      model: Prius
                      engine: 1.5L L4 (1NZFXE) ELECTRIC/GAS FI
                    hazmats:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      name: Qt Motor Oil Recycling
                      fee_cents: 75
                      taxable: true
                      quantity: 4.0
                    parts:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      part_inventory_id: 1
                      taxable: true
                      quoted_price_cents: 10000
                      msrp_cents: 10000
                      quantity: 4.0
                    labors:
                    - id: 1
                      created_at: '2026-06-09T14:21:49Z'
                      updated_at: '2026-06-09T14:21:49Z'
                      name: Drain and fill engine oil
                      taxable: true
                      hours: 0.1
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: Unique identifier of this record.
                  title:
                    type: string
                    description: Labor title.
                  category_id:
                    type: integer
                    description: A foreign key that points to the Category that this CannedJob belongs to.
                  frequency:
                    type: number
                    description: The popularity of this canned job. The most used canned jobs will have the highest frequency.
                  all_vehicles:
                    type: boolean
                    description: True if this canned job applies to all vehicles (rather than only specific vehicles), false otherwise.
                  auto_applied:
                    type: boolean
                    description: True if this canned job should be applied to every new estimate automatically, false otherwise.
                  optimizer_enabled:
                    type: boolean
                    description: True if the AI Parts Matrix should be used when pricing parts on this canned job, false otherwise.
                    deprecated: true
                  ai_parts_matrix_enabled:
                    type: boolean
                    description: True if the AI Parts Matrix should be used when pricing parts on this canned job, false otherwise.
                  shop_id:
                    type: integer
                    description: A foreign key that points to the Shop that this CannedJob belongs to
                  labor_rate_cents:
                    type: integer
                    description: Labor rate in cents
                    nullable: true
                  fixed_price_cents:
                    type: integer
                    description: The price in cents that this service will be charged at.
                    nullable: true
                  is_fixed_price_service:
                    type: boolean
                    description: Determines if this service has a fixed price.
                  sublets:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The sublet primary key.
                        name:
                          type: string
                          description: The name of this sublet as it will appear on the RO.
                        price_cents:
                          type: integer
                          description: The price in cents of sublet being sold to customer.
                        taxable:
                          type: boolean
                          description: Determines if sublet tax rate will be applied to this sublet.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when sublet was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when sublet was last updated.
                  hazmats:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The hazmat primary key.
                        name:
                          type: string
                          description: The name of this hazmat as it will appear on the RO.
                        fee_cents:
                          type: integer
                          description: The price of this fee or hazmat in cents per unit.
                        quantity:
                          type: number
                          description: The number of units.
                        taxable:
                          type: boolean
                          description: Determines if hazmat tax rate will be applied to this hazmat.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when hazmat was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when hazmat was last updated.
                  parts:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The part primary key.
                        part_inventory_id:
                          type: integer
                          description: A foreign key which points to an Inventory.id. Represents the associated inventory and quantity information for this part.
                        quantity:
                          type: number
                          description: The number of units this part line item represents.
                        quoted_price_cents:
                          type: integer
                          description: MSRP in cents.
                          nullable: true
                          deprecated: true
                        msrp_cents:
                          type: integer
                          description: MSRP in cents.
                          nullable: true
                        taxable:
                          type: boolean
                          description: Determines if part tax rate will be applied to this part.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when part was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when part was last updated.
                  integrator_tags:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The tag primary key.
                        taggable_type:
                          type: string
                          description: Entity type the tag attached to.
                        taggable_id:
                          type: integer
                          description: Entity identifier the tag attached to.
                        name:
                          type: string
                          description: Tag Name.
                        value:
                          type: string
                          description: Tag Value.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when tag was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when tag was last updated.
                  inspections:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The inspection primary key.
                        name:
                          type: string
                          description: The name of this inspection as it will appear on the RO.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when inspection was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when inspection was last updated.
                  labors:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The labor primary key.
                        name:
                          type: string
                          description: The name of this labor as it will appear on the RO.
                        taxable:
                          type: boolean
                          description: Determines if labor tax rate will be applied to this labor.
                        hours:
                          type: number
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when labor was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when labor was last updated.
                  vehicles:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: The vehicle primary key.
                        year:
                          type: string
                          description: Vehicle year.
                        make:
                          type: string
                          description: Vehicle make.
                        model:
                          type: string
                          description: Vehicle model.
                        engine:
                          type: string
                          description: Vehicle engine.
                        created_at:
                          type: string
                          format: date-time
                          description: The date and time when vehicle was created.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when vehicle was last updated.
                  created_at:
                    type: string
                    format: date-time
                    description: Date and time when record was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Date and time when record was last updated.
components:
  securitySchemes:
    api_partner_id:
      type: apiKey
      name: X-Api-Partner-Id
      in: header
    api_secret:
      type: apiKey
      name: X-Api-Secret
      in: header