Paperless Parts Quotes API

Endpoints for identifying newly sent quotes, pulling all information related to a particular quote, and updating a quote's status.

Business capability
Quote & Configuration Management BC-410.40

Operations 30

GET /quotes/public/new List new quote numbers and revisions #
GET /quotes/public/{quoteNumber} Get quote details #
PATCH /quotes/public/{quoteNumber} Update fields on a Quote #
PATCH /quotes/public/{quoteNumber}/status_change Update a quote's status #
GET /quotes/public/{quoteNumber}/files Get a quote's supporting files #
POST /quotes/public Create a new quote #
GET /quotes/public List quote headers #
GET /quotes/public/header/{quoteUuid} Get the details for a quote header #
PATCH /quotes/public/header/{quoteUuid} Update the details for a quote header #
POST /quotes/public/items Create a new quote item #
PATCH /quotes/public/items/{quoteItemUuid} Update fields on a QuoteItem. #
GET /quotes/public/items/{quoteItemUuid} Get details for a QuoteItem. #
DELETE /quotes/public/items/{quoteItemUuid} Delete a QuoteItem. #
PATCH /quotes/public/items/{quoteItemUuid}/bulk_update_operations Bulk update a QuoteItem's operations. #
POST /quotes/public/operations Create a new operation for a quote item #
GET /quotes/public/operations/{operationUuid} Get details for an Operation. #
PATCH /quotes/public/operations/{operationUuid} Update fields on an Operation. #
DELETE /quotes/public/operations/{operationUuid} Delete an Operation. #
GET /quotes/public/add_ons/{addOnUuid} Get details for an Add-On. #
PATCH /quotes/public/add_ons/{addOnUuid} Update details for an Add-On. #
POST /quotes/public/discounts Create a new Discount for a quote item #
GET /quotes/public/discounts/{discountUuid} Get details for an Discount. #
PATCH /quotes/public/discounts/{discountUuid} Update fields on a Discount. #
DELETE /quotes/public/discounts/{discountUuid} Delete a Discount. #
GET /quotes/public/pricing_items/{pricingItemUuid} Get details for a Pricing Item. #
POST /quotes/public/{quoteUuid}/files Create quote file #
GET /quotes/public/{quoteUuid}/files/{fileUuid} Get quote file details #
DELETE /quotes/public/{quoteUuid}/files/{fileUuid} Delete quote file #
GET /quotes/public/pricing_item_quantities/{uuid} Get a pricing item quantity #
PATCH /quotes/public/pricing_item_quantities/{uuid} Update a pricing item quantity #

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/paperless-parts-quotes-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

paperless-parts-quotes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Paperless Parts Quotes API
  contact:
    name: Paperless Parts
    url: https://www.paperlessparts.com
    email: support@paperlessparts.com
  termsOfService: https://www.paperlessparts.com/web-service-agreement/
  version: '1.0'
  description: 'Operations tagged Quotes across 2 of this provider''s published API definitions: paperless-parts-v1-openapi.yml, paperless-parts-v2-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: '{url}/{version}'
  variables:
    url:
      default: https://api.paperlessparts.com
    version:
      default: v1
security:
- app_id: []
tags:
- name: Quotes
  description: Endpoints for identifying newly sent quotes, pulling all information related to a particular quote, and updating a quote's status.
paths:
  /quotes/public/new:
    get:
      summary: List new quote numbers and revisions
      description: List the numbers and revisions of new quotes that have been sent. If the number and (optional) revision of the last known sent quote is supplied, this endpoint will return a list of the numbers and revisions of the quotes sent after the specified quote. If no number is provided, this endpoint will return a list of the numbers and revisions of all sent quotes. Note that the quote numbers will be returned in the order the quotes were sent, not necessarily in ascending numerical order.
      operationId: NewQuoteNumbers
      parameters:
      - $ref: '#/components/parameters/last_quote'
      - $ref: '#/components/parameters/revision'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteNumberArray'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v1
  /quotes/public/{quoteNumber}:
    get:
      summary: Get quote details
      description: Get the details for a specific quote.
      operationId: QuoteDetails
      parameters:
      - $ref: '#/components/parameters/quoteNumber'
      - $ref: '#/components/parameters/revisionNumber'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    patch:
      summary: Update fields on a Quote
      description: Update fields on a Quote.
      operationId: UpdateQuote
      parameters:
      - $ref: '#/components/parameters/quoteNumber'
      - $ref: '#/components/parameters/revisionNumber'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                erp_code:
                  type:
                  - string
                  - 'null'
                  description: The unique identifier of the corresponding quote record in the ERP system, cast to a string.
                  example: '1234'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v1
  /quotes/public/{quoteNumber}/status_change:
    patch:
      summary: Update a quote's status
      description: Update a specific quote's status.
      operationId: SetQuoteStatus
      parameters:
      - $ref: '#/components/parameters/quoteNumber'
      - $ref: '#/components/parameters/revisionNumber'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type:
                  - string
                  - 'null'
                  description: the status of the quote. Available statuses are "oustanding", "cancelled", "lost", and "trash"
                  example: outstanding
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v1
  /quotes/public/{quoteNumber}/files:
    get:
      summary: Get a quote's supporting files
      description: Get a list of supporting files on a quote.
      operationId: GetQuoteFiles
      parameters:
      - $ref: '#/components/parameters/quoteNumber'
      - $ref: '#/components/parameters/revisionNumber'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: url
                  previous:
                    type:
                    - string
                    - 'null'
                    format: url
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/QuoteFile'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v1
  /quotes/public:
    post:
      summary: Create a new quote
      description: Creates a new quote object
      operationId: CreateQuote
      tags:
      - Quotes
      responses:
        201:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_id:
                  type:
                  - integer
                  - 'null'
                  description: The ID of the associated Contact
                metadata:
                  $ref: '#/components/schemas/Metadata'
                manual_rfq_received_date:
                  type: string
                  format: date-time
                rfq_number:
                  type:
                  - string
                  - 'null'
                expired_date:
                  type: string
                  format: date-time
                estimator:
                  type:
                  - string
                  - 'null'
                  example: 335c5770-8cd4-46d3-98a1-7c0e12251124
                  description: The uuid for the estimator assigned to this quote
                salesperson:
                  type:
                  - string
                  - 'null'
                  example: 335c5770-8cd4-46d3-98a1-7c0e12251124
                  description: The uuid for the salesperson assigned to this quote
                due_date:
                  type:
                  - string
                  - 'null'
                  format: date-time
                  description: The due date of the quote
                private_notes:
                  type:
                  - string
                  - 'null'
                  description: Internal notes regarding the quote
                quote_notes:
                  type:
                  - string
                  - 'null'
                  description: Customer-facing notes regarding the quote
                erp_code:
                  type:
                  - string
                  - 'null'
                tax_rate:
                  type: number
                  format: float
                priority:
                  type: integer
    get:
      summary: List quote headers
      operationId: ListQuoteHeaders
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: The total number of records matching the supplied query parameters
                  next:
                    type:
                    - string
                    - 'null'
                    description: The URL of the next page of results. Null if this is the last page
                  previous:
                    type:
                    - string
                    - 'null'
                    description: The URL of the previous page of results. Null if this is the first page
                  results:
                    $ref: '#/components/schemas/QuoteHeader'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/header/{quoteUuid}:
    get:
      summary: Get the details for a quote header
      operationId: GetQuoteHeaderDetails
      tags:
      - Quotes
      parameters:
      - $ref: '#/components/parameters/quoteUuid'
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteHeader'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Order not found
                type: string
                example: 'Error: Not Found'
    patch:
      summary: Update the details for a quote header
      operationId: UpdateQuoteHeaderDetails
      tags:
      - Quotes
      parameters:
      - $ref: '#/components/parameters/quoteUuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                erp_code:
                  type:
                  - string
                  - 'null'
                metadata:
                  $ref: '#/components/schemas/Metadata'
                manual_rfq_received_date:
                  type: string
                  format: date-time
                rfq_number:
                  type:
                  - string
                  - 'null'
                expired_date:
                  type: string
                  format: date-time
                status:
                  type:
                  - string
                  - 'null'
                  description: the status of the quote. Available statuses are "oustanding", "cancelled", "lost", and "trash"
                  example: outstanding
                estimator:
                  type:
                  - string
                  - 'null'
                  example: 335c5770-8cd4-46d3-98a1-7c0e12251124
                  description: The uuid for the estimator assigned to this quote
                salesperson:
                  type:
                  - string
                  - 'null'
                  example: 335c5770-8cd4-46d3-98a1-7c0e12251124
                  description: The uuid for the salesperson assigned to this quote
                due_date:
                  type:
                  - string
                  - 'null'
                  format: date-time
                  description: The due date of the quote
                private_notes:
                  type:
                  - string
                  - 'null'
                  description: Internal notes regarding the quote
                quote_notes:
                  type:
                  - string
                  - 'null'
                  description: Customer-facing notes regarding the quote
                tax_rate:
                  type: number
                  format: float
                priority:
                  type: integer
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteHeader'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Order not found
                type: string
                example: 'Error: Not Found'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/items:
    post:
      summary: Create a new quote item
      description: Attach a new QuoteItem to a Quote
      operationId: CreateQuoteItem
      tags:
      - Quotes
      responses:
        201:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLine'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quote:
                  type: string
                  description: The UUID of the quote to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                material:
                  type: string
                  description: The UUID of the material to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                part:
                  type: string
                  description: The UUID of the part to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                process:
                  type: string
                  description: The UUID of the process to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                quantities:
                  type: array
                  description: Array of the requested quantities
                  items:
                    type: integer
                  example:
                  - 1
                  - 5
                  - 10
                public_notes:
                  type: string
                private_notes:
                  type: string
                metadata:
                  $ref: '#/components/schemas/Metadata'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/items/{quoteItemUuid}:
    patch:
      summary: Update fields on a QuoteItem.
      description: Update field on a QuoteItem.
      operationId: updateQuoteItem
      parameters:
      - $ref: '#/components/parameters/quoteItemUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLine'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                material:
                  type: string
                  description: The UUID of the material to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                process:
                  type: string
                  description: The UUID of the process to tie the quote item to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                public_notes:
                  type: string
                private_notes:
                  type: string
                metadata:
                  $ref: '#/components/schemas/Metadata'
                workflow_status:
                  type: string
                  enum:
                  - not_started
                  - in_progress
                  - on_hold
                  - completed
                  - no_quote
                  example: in_progress
    get:
      summary: Get details for a QuoteItem.
      description: Get details for a QuoteItem.
      operationId: getQuoteItem
      parameters:
      - $ref: '#/components/parameters/quoteItemUuid'
      - in: query
        name: expand
        schema:
          type: string
        required: false
        description: 'Expand a fields that provides UUID(s) to provide the full object(s) instead. Valid choices are: ''add_ons'', ''discounts'', material'', ''operations'', ''part'', ''pricing_items'', ''process'', ''quantities'''
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLine'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    delete:
      summary: Delete a QuoteItem.
      operationId: deleteQuoteItem
      parameters:
      - $ref: '#/components/parameters/quoteItemUuid'
      tags:
      - Quotes
      responses:
        204:
          description: Successful response
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/items/{quoteItemUuid}/bulk_update_operations:
    patch:
      summary: Bulk update a QuoteItem's operations.
      description: Bulk updates specific operations on a QuoteItem.
      operationId: bulkUpdateOperations
      parameters:
      - $ref: '#/components/parameters/quoteItemUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                example: []
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/QuoteLineOperation'
                type: object
                properties:
                  uuid:
                    type: string
                    example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                    description: The UUID of the operation you want to apply these updates to
                  name:
                    type:
                    - string
                    - 'null'
                    example: Name
                    description: The name of the operation
                  notes:
                    type:
                    - string
                    - 'null'
                    example: notes
                    description: The operation's notes
                  is_finish:
                    type:
                    - boolean
                    - 'null'
                    example: false
                    description: Whether the operation is a finish
                  is_outside_service:
                    type:
                    - boolean
                    - 'null'
                    example: true
                    description: Whether the operation is an outside service
                  costing_variable_overrides:
                    $ref: '#/components/schemas/CostingVariableOverrides'
                  position:
                    type:
                    - integer
                    - 'null'
                    example: 0
                    description: The position of the operation
                  runtime_display_units:
                    type:
                    - string
                    - 'null'
                    example: hr
                    description: The runtime display units for the operation
                  setup_time_display_units:
                    type:
                    - string
                    - 'null'
                    example: min
                    description: The setup time display units for the operation
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/operations:
    post:
      summary: Create a new operation for a quote item
      description: Attach a new Operation to a QuoteItem
      operationId: CreateOperation
      tags:
      - Quotes
      responses:
        201:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineOperation'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quote_item:
                  type: string
                  description: The UUID of the quote item to tie the operation to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                operation_definition:
                  type: string
                  description: The UUID of the operation definition to generate the operation from.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                is_finish:
                  type: boolean
                  default: false
                is_outside_service:
                  type: boolean
                  default: false
                name:
                  type: string
                notes:
                  type: string
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/operations/{operationUuid}:
    get:
      summary: Get details for an Operation.
      description: Get details for an Operation.
      operationId: getOperation
      parameters:
      - $ref: '#/components/parameters/operationUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineOperation'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    patch:
      summary: Update fields on an Operation.
      description: Update field on an Operation.
      operationId: updateOperation
      parameters:
      - $ref: '#/components/parameters/operationUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineOperation'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_finish:
                  type: boolean
                  default: false
                is_outside_service:
                  type: boolean
                  default: false
                name:
                  type: string
                notes:
                  type: string
                costing_variable_overrides:
                  $ref: '#/components/schemas/CostingVariableOverrides'
    delete:
      summary: Delete an Operation.
      operationId: deleteOperation
      parameters:
      - $ref: '#/components/parameters/operationUuid'
      tags:
      - Quotes
      responses:
        204:
          description: Successful response
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/add_ons/{addOnUuid}:
    get:
      summary: Get details for an Add-On.
      description: Get details for an Add-On.
      operationId: getAddOn
      parameters:
      - $ref: '#/components/parameters/addOnUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineAddOn'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    patch:
      summary: Update details for an Add-On.
      description: Update details for an Add-On.
      operationId: updateAddOn
      parameters:
      - $ref: '#/components/parameters/addOnUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineAddOn'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_required:
                  type: boolean
                  description: Indicates whether or not this add-on is required.
                name:
                  type: string
                  description: The name of the add-on.
                notes:
                  type: string
                  description: Notes for this add-on.
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/discounts:
    post:
      summary: Create a new Discount for a quote item
      description: Attach a new Discount to a QuoteItem
      operationId: CreateDiscount
      tags:
      - Quotes
      responses:
        201:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineDiscount'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quote_item:
                  type: string
                  description: (Required) The UUID of the quote item to tie the add-on to.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                discount_definition:
                  type: string
                  description: The UUID of the Discount definition to generate the Discount from.
                  example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
                name:
                  type: string
                  description: The name of the Discount. Don't provide this value if using a Discount definition.
                notes:
                  type: string
                  description: Notes for this Discount.
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/discounts/{discountUuid}:
    get:
      summary: Get details for an Discount.
      description: Get details for a Discount.
      operationId: getDiscount
      parameters:
      - $ref: '#/components/parameters/discountUuid'
      - in: query
        name: expand
        schema:
          type: string
        required: false
        description: 'Expand fields that provides UUID(s) to provide the full object(s) instead. Valid choices are: ''discount_quantities''.'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineDiscount'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Discount not found
                type: string
                example: 'Error: Not Found'
    patch:
      summary: Update fields on a Discount.
      description: Update field on a Discount.
      operationId: updateDiscount
      parameters:
      - $ref: '#/components/parameters/discountUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLineDiscount'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Discount not found
                type: string
                example: 'Error: Not Found'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Discount. The name can only be updated if the Discount was not added via a definiton.
                notes:
                  type: string
                  description: Notes for this Discount.
                costing_variable_overrides:
                  $ref: '#/components/schemas/CostingVariableOverrides'
    delete:
      summary: Delete a Discount.
      operationId: deleteDiscount
      parameters:
      - $ref: '#/components/parameters/discountUuid'
      tags:
      - Quotes
      responses:
        204:
          description: Successful response
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/pricing_items/{pricingItemUuid}:
    get:
      summary: Get details for a Pricing Item.
      description: Get details for a Pricing Item.
      operationId: getPricingItem
      parameters:
      - $ref: '#/components/parameters/pricingItemUuid'
      tags:
      - Quotes
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteLinePricingItem'
        404:
          description: Not found response
          content:
            text/plain:
              schema:
                title: Quote not found
                type: string
                example: 'Error: Not Found'
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v2
  /quotes/public/{quoteUuid}/files:
    post:
      summary: Create quote file
      description: Upload a supporting file to a quote.
      operationId: createQuoteFile
      parameters:
      - $ref: '#/components/parameters/quote

# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paperless-parts/refs/heads/main/openapi/paperless-parts-quotes-api-openapi.yml