Paperless Parts Orders API

Endpoints for identifying newly placed orders and pulling all information related to a particular order. Also, a new order can be created via open API to turn an existing quote into order.

Operations 4

GET /orders/public/new List new order numbers #
GET /orders/public/{orderNumber} Get order details #
PATCH /orders/public/{orderNumber} Update fields on an Order #
POST /orders/public/facilitate_order Create an order from a quote

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-orders-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-orders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Paperless Parts Orders 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 Orders 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: Orders
  description: Endpoints for identifying newly placed orders and pulling all information related to a particular order. Also, a new order can be created via open API to turn an existing quote into order.
paths:
  /orders/public/new:
    get:
      summary: List new order numbers
      description: List the numbers of new orders that have been created. If the number of the last known order is supplied, this endpoint will return a list of the numbers of the orders created after the specified order. If no number is provided, this endpoint will return a list of all available order numbers.
      operationId: NewOrderNumbers
      parameters:
      - $ref: '#/components/parameters/last_order'
      tags:
      - Orders
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderNumberArray'
        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: v1
  /orders/public/{orderNumber}:
    get:
      summary: Get order details
      description: Get the details for a specific order.
      operationId: OrderDetails
      parameters:
      - $ref: '#/components/parameters/orderNumber'
      tags:
      - Orders
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        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 Order
      description: Update fields on an Order.
      operationId: UpdateOrder
      parameters:
      - $ref: '#/components/parameters/orderNumber'
      tags:
      - Orders
      responses:
        200:
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                erp_code:
                  type:
                  - string
                  - 'null'
                  description: The unique identifier of the corresponding order 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
  /orders/public/facilitate_order:
    post:
      summary: Create an order from a quote
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FacilitateOrderBody'
      tags:
      - Orders
      responses:
        200:
          description: Successful response
        404:
          description: Not found response
    servers:
    - url: '{url}/{version}'
      variables:
        url:
          default: https://api.paperlessparts.com
        version:
          default: v1
components:
  schemas:
    Order:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        billing_info:
          $ref: '#/components/schemas/AddressInfo'
        created:
          type: string
          format: date-time
        contact:
          $ref: '#/components/schemas/OrderContact'
        customer:
          $ref: '#/components/schemas/OrderCustomer'
        deliver_by:
          type:
          - string
          - 'null'
          format: date-time
        erp_code:
          type:
          - string
          - 'null'
        estimator:
          $ref: '#/components/schemas/OrderUser'
        number:
          $ref: '#/components/schemas/OrderNumber'
        order_items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        payment_details:
          $ref: '#/components/schemas/OrderPaymentDetails'
        private_notes:
          type:
          - string
          - 'null'
        purchase_order_file_url:
          type:
          - string
          - 'null'
          format: uri
        quote_erp_code:
          type:
          - string
          - 'null'
        quote_number:
          type: integer
        quote_rfq_number:
          type:
          - string
          - 'null'
        quote_revision_number:
          type: integer
        sales_person:
          deprecated: true
          $ref: '#/components/schemas/OrderUser'
        salesperson:
          $ref: '#/components/schemas/OrderUser'
        send_from_facility:
          $ref: '#/components/schemas/Facility'
        shipments:
          type: array
          items:
            $ref: '#/components/schemas/OrderShipment'
        shipping_info:
          $ref: '#/components/schemas/AddressInfo'
        shipping_option:
          $ref: '#/components/schemas/OrderShippingOption'
        ships_on:
          type: string
          format: date
        status:
          type: string
          enum:
          - pending
          - confirmed
          - on_hold
          - in_process
          - completed
          - cancelled
    PurchasedComponentProperty:
      type: object
      properties:
        name:
          type: string
          description: Name of corresponding purchased component column in table display
        code_name:
          type: string
          description: Name used to access property within pricing formulas via 'dot' operator
        value_type:
          type: string
          enum:
          - string
          - boolean
          - numeric
        value:
          anyOf:
          - type: string
          - type: number
          - type: boolean
          description: Value of property, None or of type corresponding to value_type
    OrderCompany:
      type: object
      properties:
        business_name:
          type: string
        erp_code:
          type: string
    SalesPerson:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        erp_code:
          type: string
    OrderAddOn:
      type: object
      properties:
        is_required:
          type: boolean
        name:
          type: string
        erp_code:
          type: string
        notes:
          type: string
        price:
          type: number
          format: float
        quantity:
          type: integer
        costing_variables:
          type: array
          items:
            $ref: '#/components/schemas/OrderCostingVariable'
    OrderNumberArray:
      type: array
      items:
        $ref: '#/components/schemas/OrderNumber'
      description: An array of Order numbers
      example:
      - 38
      - 39
      - 40
    ComponentChild:
      type: object
      properties:
        child_id:
          type: integer
          description: ID of the child component
        quantity:
          type: integer
          description: The number of child component instances belonging to this parent. Note, the total number of instances of this child component in this assembly tree may be larger if this child appears in multiple places in the tree.
    OrderCostingVariable:
      type: object
      description: A CostingVariable is a piece of a Paperless Parts Programming Language (P3L) formula that determines the price and timing for an operation. CostingVariables are essentially Python variables and can represent several data types. An OrderCostingVariable represents the value a variable holds for the ordered quantity.
      properties:
        label:
          type: string
        variable_class:
          type: string
          enum:
          - basic
          - drop_down
          - table
        value_type:
          type: string
          enum:
          - string
          - number
          - currency
          - boolean
        value:
          anyOf:
          - type: string
          - type: number
          - type: integer
          - type: boolean
          description: This will be indicated by the value_type field.
        row:
          type:
          - object
          - 'null'
          description: An object representing a row from a custom table. This object will have arbitrary key-value pairs based on custom table schema it was pulled from. The row field will only be non-null when the variable_class field is 'table'.
        options:
          type:
          - array
          - 'null'
          items:
            anyOf:
            - type: number
            - type: string
          description: A list of the options for a drop down variable. Can be strings, floats, or integers indicated by value_type. The options field will only be non-null when the variable_class field is 'drop_down'.
        type:
          type: string
          description: To Be Deprecated
          deprecated: false
    QuotePurchasedComponent:
      allOf:
      - $ref: '#/components/schemas/AbstractPurchasedComponent'
      - type: object
        properties:
          id:
            type: string
          properties:
            type: array
            items:
              $ref: '#/components/schemas/PurchasedComponentProperty'
    AbstractPurchasedComponent:
      type: object
      properties:
        oem_part_number:
          type: string
          description: Unique identifier for purchased component within a supplier account
          example: 064-1235
        internal_part_number:
          type:
          - string
          - 'null'
          example: a
        description:
          type:
          - string
          - 'null'
          example: any text you want
        piece_price:
          type: number
          format: decimal
          description: Cost per piece to 4 decimal places
          example: 2.0
    OrderNumber:
      type: integer
      description: A unique identifier for an Order
      example: 47
    OrderContact:
      type: object
      properties:
        account:
          type: object
          properties:
            erp_code:
              type:
              - string
              - 'null'
            id:
              type: number
              format: int
            notes:
              type:
              - string
              - 'null'
            name:
              type: string
            payment_terms:
              type:
              - string
              - 'null'
            payment_terms_period:
              type:
              - string
              - 'null'
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        last_name:
          type: string
        notes:
          type:
          - string
          - 'null'
        phone:
          type:
          - string
          - 'null'
        phone_ext:
          type:
          - string
          - 'null'
    FacilitateOrderBody:
      type: object
      description: "Data representing a Quote that will be used to generate an Order. This endpoint provides an alternative to the checkout flow in the app. For each quote item you'd like to check out for, specify the quantity and unit price. Note that you may submit an arbitrary quantity and arbitrary unit price; you are not restricted to the options on the quote. \n\n NOTE: shipping_info, billing_info and shipping_option are optional. "
      properties:
        number:
          type: integer
        quantity_data:
          type: array
          items:
            type: object
            properties:
              quote_item_id:
                type: integer
              quantity:
                type: integer
              unit_price:
                type: number
                format: float
              add_ons:
                type: array
                description: If you'd like to apply add-ons, specify the ID of the AddOn you'd like to apply (not the ID of the AddOnQuantity). If you've selected an existing quantity and unit price for this quote item, the corresponding existing AddOnQuantity will be used. If you've specified a nonexistent quantity and/or unit price, a new AddOnQuantity will be created with the supplied manual_price.
                items:
                  type: object
                  properties:
                    add_on_id:
                      type: integer
                    manual_price:
                      type:
                      - number
                      - 'null'
                      format: float
                      description: There is no need to supply this field if you have selected an existing quantity and unit_price for this quote item.
              expedite_id:
                type:
                - integer
                - 'null'
                description: ''
        shipping_info:
          type:
          - object
          - 'null'
          properties:
            business_name:
              type: string
            first_name:
              type: string
            last_name:
              type: string
            phone:
              type: string
            phone_ext:
              type: string
            address:
              type: object
              properties:
                address1:
                  type: string
                address2:
                  type: string
                postal_code:
                  type: string
                city:
                  type: string
                state:
                  type: object
                  properties:
                    abbr:
                      type: string
                country:
                  type: object
                  properties:
                    abbr:
                      type: string
        billing_info:
          type:
          - object
          - 'null'
          properties:
            business_name:
              type: string
            first_name:
              type: string
            last_name:
              type: string
            phone:
              type: string
            phone_ext:
              type: string
            address:
              type: object
              properties:
                address1:
                  type: string
                address2:
                  type: string
                postal_code:
                  type: string
                city:
                  type: string
                state:
                  type: object
                  properties:
                    abbr:
                      type: string
                country:
                  type: object
                  properties:
                    abbr:
                      type: string
        shipping_option:
          type:
          - object
          - 'null'
          properties:
            type:
              type: string
              enum:
              - pickup
              - customers_shipping_account
              - suppliers_shipping_account
            shipping_method:
              type: string
              enum:
              - early_am_overnight
              - next_day_air
              - second_day_air
              - ground
            ship_when:
              type: string
              enum:
              - when_ready
              - all_at_once
    OrderPaymentDetails:
      type: object
      properties:
        card_brand:
          type:
          - string
          - 'null'
        card_last4:
          type:
          - string
          - 'null'
        net_payout:
          type:
          - number
          - 'null'
          format: float
        payment_type:
          type:
          - string
          - 'null'
          enum:
          - credit_card
          - purchase_order
        purchase_order_number:
          type: string
        purchasing_dept_contact_email:
          type:
          - string
          - 'null'
          format: email
        purchasing_dept_contact_name:
          type:
          - string
          - 'null'
        shipping_cost:
          type: number
          format: float
        subtotal:
          type: number
          format: float
        tax_cost:
          type: number
          format: float
        tax_rate:
          type: number
          format: float
        payment_terms:
          type:
          - string
          - 'null'
        total_price:
          type: number
          format: float
    OrderUser:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        avatar_color:
          type: string
    OperationQuantity:
      type: object
      properties:
        price:
          type: number
          format: float
        manual_price:
          type:
          - number
          - 'null'
          format: float
        lead_time:
          type:
          - integer
          - 'null'
        manual_lead_time:
          type:
          - integer
          - 'null'
        quantity:
          type: integer
    AddressInfo:
      type:
      - object
      - 'null'
      properties:
        id:
          type: integer
          example: 55123
        address1:
          type: string
          example: 1 City Hall Sq.
        address2:
          type:
          - string
          - 'null'
          example: null
        attention:
          type: string
          example: Gordon Moore
        business_name:
          type: string
          example: Paperless Parts, Inc.
        city:
          type: string
          example: Boston
        country:
          type: string
          example: USA
        facility_name:
          type:
          - string
          - 'null'
          example: Boston Office
        phone:
          type: string
          example: '6176354500'
        phone_ext:
          type:
          - string
          - 'null'
          example: null
        postal_code:
          type: string
          example: 1153
        state:
          type: string
          example: MA
        erp_code:
          type:
          - string
          - 'null'
    OrderItem:
      type: object
      properties:
        id:
          type: integer
        components:
          type: array
          items:
            $ref: '#/components/schemas/OrderComponent'
        description:
          type:
          - string
          - 'null'
        expedite_revenue:
          type:
          - number
          - 'null'
          format: float
        export_controlled:
          type: boolean
          description: Whether or not this order item contains data that is export controlled (ITAR) by the US Government.
        filename:
          type: string
        lead_days:
          type: integer
        markup_1_price:
          type: number
          format: float
        markup_1_name:
          type: string
        markup_2_price:
          type: number
          format: float
        markup_2_name:
          type: string
        private_notes:
          type:
          - string
          - 'null'
        public_notes:
          type:
          - string
          - 'null'
        quantity:
          type: integer
        quantity_outstanding:
          type: integer
        quote_item_id:
          type: integer
        quote_item_type:
          type: string
          enum:
          - automatic
          - manual
          description: Indicates whether the quote item is associated with a part (automatic pricing), or not (manual pricing).
        root_component_id:
          type: integer
        ships_on:
          type: string
          format: date
        total_price:
          type: number
          format: float
        unit_price:
          type: number
          format: float
        base_price:
          type: number
          format: float
        add_on_fees:
          type:
          - number
          - 'null'
          format: float
        ordered_add_ons:
          type: array
          items:
            $ref: '#/components/schemas/OrderAddOn'
        pricing_items:
          type: array
          items:
            type: object
        unit_price_before_discounts:
          type:
          - number
          - 'null'
          format: float
    OrderShipmentItem:
      type: object
      properties:
        id:
          type: integer
        order_item_id:
          type: integer
        quantity:
          type: integer
    Address:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        address1:
          type: string
          maxLength: 250
          example: 1 City Hall Sq.
          description: (Required)
        address2:
          type:
          - string
          - 'null'
          maxLength: 250
          example: null
          description: (Required)
        city:
          type: string
          maxLength: 100
          example: Boston
          description: (Required)
        state:
          type: string
          description: (Required) State/Province must be specified as standard postal abbreviation
          example: MA
        postal_code:
          type: string
          example: '02114'
          description: (Required) US postal codes may optionally contain 4-digit extension, e.g., `'02114-1234'`
        country:
          type: string
          maxLength: 3
          description: (Required) Country must be ISO 3166-1 alpha-3 code. Currently allowed values are `'USA'`, `'CAN'`.
          example: USA
        erp_code:
          type: string
          maxLength: 50
          description: The unique identifier for this address record in the ERP
          example: B1234
    Facility:
      type:
      - object
      - 'null'
      properties:
        account_id:
          type: integer
          example: 55123
        address:
          $ref: '#/components/schemas/Address'
        attention:
          type: string
          example: Gordon Moore
        id:
          type: integer
          example: 12
        name:
          type: string
          example: Boston Office
        salesperson:
          $ref: '#/components/schemas/SalesPerson'
    OrderCustomer:
      type: object
      description: Deprecated! Will be removed soon.
      properties:
        company:
          $ref: '#/components/schemas/OrderCompany'
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
        phone_ext:
          type: string
    OrderProcess:
      type: object
      properties:
        id:
          type: integer
        external_name:
          type: string
        name:
          type: string
    OrderMaterial:
      type: object
      description: This can also be null
      properties:
        id:
          type: integer
        display_name:
          type: string
        family:
          type: string
        material_class:
          type: string
        name:
          type: string
    OrderShipment:
      type: object
      properties:
        id:
          type: integer
        pickup_recipient:
          type:
          - string
          - 'null'
        shipment_date:
          type: string
          format: date-time
        shipment_items:
          type: array
          items:
            $ref: '#/components/schemas/OrderShipmentItem'
        shipping_cost:
          type: number
          format: float
        tracking_number:
          type: string
    OrderOperation:
      type: object
      properties:
        id:
          type: integer
        category:
          type: string
          enum:
          - material
          - operation
        cost:
          type: number
          format: float
        costing_variables:
          type: array
          items:
            $ref: '#/components/schemas/OrderCostingVariable'
        quantities:
          type: array
          items:
            $ref: '#/components/schemas/OperationQuantity'
        is_finish:
          type: boolean
        is_outside_service:
          type: boolean
        name:
          type: string
        erp_code:
          type: string
        operation_definition_name:
          type: string
        notes:
          type:
          - string
          - 'null'
        position:
          type: integer
          description: The position of the order operation in the order display, indexed from 1. Note that the position applies across both material operations and order operations. TODO - this shows up as 0 if there is only one operation on the order?
        runtime:
          type:
          - number
          - 'null'
          format: float
        setup_time:
          type:
          - number
          - 'null'
          format: float
    OrderShippingOption:
      type: object
      properties:
        customers_account_number:
          type:
          - string
          - 'null'
        customers_carrier:
          type:
          - string
          - 'null'
          enum:
          - ups
          - fedex
        shipping_method:
          type:
          - string
          - 'null'
          enum:
          - early_am_overnight
          - ground
          - next_day_air
          - second_day_air
        type:
          type: string
          enum:
          - pickup
          - customers_shipping_account
          - suppliers_shipping_account
    OrderSupportingFile:
      type: object
      properties:
        filename:
          type: string
        url:
          type: string
          format: url
    OrderComponent:
      type: object
      properties:
        id:
          type: string
        child_ids:
          type: array
          items:
            type: integer
        children:
          type: array
          items:
            $ref: '#/components/schemas/ComponentChild'
        deliver_quantity:
          type: integer
          description: The quantity of this component that must be delivered (innate quantity * root component quantity).
        description:
          type:
          - string
          - 'null'
        export_controlled:
          type: boolean
          description: Whether or not this order component contains data that is export controlled (ITAR) by the US Government.
        finishes:
          type: array
          items:
            type: string
          description: 'Note: this field is deprecated. Finishes now show up as Operations.'
        innate_quantity:
          type: integer
          description: The quantity of this subcomponent that must be produced to make one top-level component.
        is_root_component:
          type: boolean
        make_quantity:
          type: integer
          description: The quantity of this component that must be made to satisfy the quantity specified by the customer as well as the yield specified for this component (innate quantity * root component quantity / yield).
        material:
          $ref: '#/components/schemas/OrderMaterial'
        material_operations:
          type: array
          items:
            $ref: '#/components/schemas/OrderOperation'
        parent_ids:
          type: array
          items:
            type: integer
        part_name:
          type: string
        part_number:
          type:
          - string
          - 'null'
        part_url:
          type: string
          format: url
        part_uuid:
          type: string
        process:
          $ref: '#/components/schemas/OrderProcess'
        purchased_component:
          description: Reference to a purchased component object within the supplier account. Will be not null when type == 'purchased'
          $ref: '#/components/schemas/QuotePurchasedComponent'
        revision:
          type:
          - string
          - 'null'
        shop_operations:
          type: array
          items:
            $ref: '#/components/schemas/OrderOperation'
        supporting_files:
          type: array
          items:
            $ref: '#/components/schemas/OrderSupportingFile'
        thumbnail_url:
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - assembled
          - manufactured
          - purchased
    Order_2:
      type: object
      properties:
        billing_info:
          $ref: '#/components/schemas/AddressInfo_2'
        created:
          type: string
          format: date-time
        contact:
          $ref: '#/components/schemas/OrderContact_2'
        customer:
          $ref: '#/components/schemas/OrderCustomer'
        deliver_by:
          type:
          - string
          - 'null'
          format: date-time
        erp_code:
          type:
          - string
          - 'null'
        estimator:
          $ref: '#/components/schemas/SalesPerson_2'
        number:
          $ref: '#/components/schemas/OrderNumber'
        order_items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem_2'
        payment_details:
          $ref: '#/components/schemas/OrderPaymentDetails'
        private_notes:
          type:
          - string
          - 'null'
        purchase_order_file_url:
          type:
          - string
          - 'null'
          format: url
        quote_erp_code:
          type:
          - string
          - 'null'
        quote_number:
          type: integer
        quote_revision_number:
          type: integer
        salesperson:
          $ref: '#/components/schemas/SalesPerson_2'
        shipments:
          type: array
          items:
            $ref: '#/components/schemas/OrderShipment'
        shipping_info:
          $ref: '#/components/schemas/AddressInfo_2'
        shipping_option:
          $ref: '#/components/schemas/OrderShippingOption_2'
        ships_on:
          type: string
          format: date
        status:
          type: string
          enum:
          - pending
          - confirmed
          - on_hold
          - in_process
          - completed
          - cancelled
    SalesPerson_2:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        erp_code:
          type: string
    OrderPricingItem:
      type: object
      properties:
        uuid:
          type: string
          description: The UUID of the pricing item.
          example: f0f5bd9d-62a1-4e59-bc0e-4dbaa55d1ef9
        category:
          type: string
          enum:
          - general
          - purchased_component
          - material
          - outside
          - inside
        calculation_type:
          type: string
          enum:
          - markup
          - margin
        name:
          type: string
          description: The name of the pricing item.
        notes:
          type:
          - string
          - 'null'
        quantity:
          type: integer
        costing_variables:
          type: array
          items:
            $ref: '#/components/schemas/OrderCostingVariable'
        calculated_profit:
          type: number
          format: float
        calculated_percentage:
          type: number
        manual_profit:
          type: number
          format: float
        manual_percentage:
 

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