Beacon External Rest Service (all_api)

The combined Beacon Rest Services document — 145 operations spanning the V1, V2, V3 and V4 tags plus the Integrations and Beacon Stack surfaces. It is the ONLY Beacon document that assigns operationIds (V1Controller_*, V2Controller_*, V3Controller_*, V4Controller_*), which makes it the document any SDK generator, tool crosswalk or workflow definition has to bind to. It also carries the API Site ID resolution rules, the uniform response envelope, the numeric message-code registry and the field glossary inside its info.description.

Operations 145

POST /login Logs user into system #
POST /logout Logs user out of system #
GET /getLoginDeclaration Returns Terms and Conditions for persistent login #
GET /accounts Lists available accounts for a user #
POST /switchAccount Changes account for a user #
GET /branchlist Lists all available branches #
GET /jobs Lists available job names for an account #
GET /items Returns item details #
GET /getCurrentUserInfo Returns user details #
GET /orderhistory Returns orders listed by order id #
GET /orderdetail Returns order details by order Id #
GET /itemlist Get list of items #
GET /getProductInfo Returns list of accounts by Product Id #
GET /getSkuUom Returns Unit of Measures (UoM) for an item number #
GET /pricing Returns price and unit of measure for item number(s) #
GET /cartItems Retrieves items from cart #
POST /submitOrder Submits order #
POST /addMultipleItemsToOrder Adds multiple items to the cart #
GET /template Lists templates and template details for current user #
POST /hoverExplicitLogin Hover explicit login #
POST /saveCurrentUserInfo Saves current user details #
GET /getCurrentUserPermission Returns current user permissions #
GET /getAddressBook Returns address book for current user #
POST /createAddressBook Creates new address in the address book #
POST /updateAddressBook Updates address in the address book #
POST /deleteAddressBook Deletes address in the address book #
POST /changePassword Change password #
POST /setPassword Sets password for new user #
POST /resetPassword Resets password for current user #
POST /forgotPassword Sends forgot password email #
POST /user Returns a list of users for an account #
GET /getUserDetail Returns user details by profile id. #
POST /createUser Creates a new user account #
POST /updateUser Updates user information #
GET /organization Returns list of organizations for current user #
GET /role Returns role and permissions for current user #
POST /permissionTemplateList Returns list of permissions templates #
POST /getPermissionTemplateDetail Returns details for permissions templates #
POST /createPermissionTemplate Creates permissions template #
POST /updatePermissionTemplate Updates permissions template #
POST /deletePermissionTemplate Removes permissions template #
GET /orderhistory_v2 Returns orders listed by order id #
GET /downloadOrderDetailAsPDF Returns order detail in PDF #
GET /getDTOrderDetail Returns delivery tracking order information by order Id #
GET /typeAhead Returns like products in search #
GET /itemDetails Get items details #
GET /getProductVariation Returns product variations by product Id #
GET /getQuoteProductVariation Returns product variation for quote #
POST /getMultipleProductVariation Returns product variation by product Id #
POST /getMultipleQuoteProductVariation Returns product variation for quote #
GET /getFavoriteProducts Returns favorite products #
GET /categories Returns all categories and placement in hierarchy #
GET /getProductBranchOrRegionAvailability Returns product availability for a branch #
GET /getSKUBranchOrRegionAvailability Returns product availability for a branch #
POST /updateOrderAlert Updates order alert #
POST /uploadOrderRelatedDocuments Uploads order related documents #
POST /deleteOrderRelatedDocuments Removes order related documents #
GET /downloadOrderDocument Downloads order related document #
GET /getGenericBrands Returns list of brands #
GET /orderSummary Returns order total for current items in cart #
POST /clearCart Clears items in the current cart #
POST /removeItemFromCart Removes a single item from cart #
POST /updateCart Updates quantities for items in a cart #
POST /proceedToCheckout Proceeds to check out page #
POST /updateCurrentOrderJobNumber Updates job number for current order #
GET /getOrderShippingInfo Returns current order shipping information #
POST /addOrderShippingInfo Updates or adds shipping info for current order #
GET /getCurrentOrderReview Returns order information #
POST /submitCurrentOrder Submits current order #
POST /getSubmitOrderResult Returns order results #
GET /validateOrderByLocation Validates inventory at pick up location #
GET /getTemplateDetail Returns template details for a given template #
POST /createTemplate Creates template for current user #
POST /updateTemplate Updates template #
POST /deleteTemplate Deletes template #
POST /copyTemplate Copies template #
POST /validateTemplateItems Validates template items #
POST /saveOrder Creates new saved order and saves cart items to this order #
POST /getOrderApprovalList Returns list of all saved or pending orders #
GET /getOrderApprovalDetail Returns saved or pending order details and makes order confirmation page for submitter #
POST /rejectSavedOrder Allows approver to reject pending order #
POST /deleteSavedOrder Deletes saved order #
POST /updateSavedOrderItems Updates saved or pending order items #
POST /getSavedOrderShippingInfo Returns saved or pending order shipping information #
POST /updateSavedOrderShippingInfo Returns saved or pending order shipping information #
POST /getSavedOrderReviewInfo Returns saved or pending order review information #
POST /submitSavedOrder Submits or revises saved order #
POST /approveSavedOrder Approves saved or pending order #
POST /getSavedOrderConfirmationInfo Returns saved or pending order confirmation information #
GET /saveOrderValidate Validates the saved or pending order #
GET /approver Returns list of approvers for current user #
POST /updateStatusChange Updates delivery tracking status for current user #
GET /getStatusChange Returns delivery status change for an order #
GET /quote Returns list of quotes for current user #
POST /getQuoteDetail Returns quote details for given quote #
POST /getMincronQuoteDetail Returns quote details for specific quote Id #
GET /getAtgQuoteDetail Returns Atg quote details for given quote #
POST /createQuote Creates quote for current user #
POST /updateQuote Updates quote information #
POST /deleteQuote Removes quotes for current user #
POST /submitQuote Submits quote #
POST /submitQuoteForm Submits quote form #
POST /approveQuote Approves quote #
POST /reviseQuote Revises quote #
POST /rejectQuote Rejects quote #
GET /downloadQuoteAsPDF Downloads quote in PDF #
GET /rebateLanding Returns rebate landing page #
GET /getRebateRedeemedSummaryItems Returns redeemed rebate information for current user #
POST /getRebateRedeemedItemDetail Returns redeemed rebate details #
GET /getRebateForm Returns rebate form #
POST /submitRebate Submits rebate request #
GET /suggestiveSelling Returns suggestive selling information #
GET /getHoverJobList Returns Hover job addresses #
GET /getHoverJobListImage Returns the Hover job image #
GET /getHoverJobDetail Returns detailed information for a Hover job #
GET /getHoverJobDetailImage Returns Hover job image #
GET /downloadBeacon3DplusApp Sends SMS to end user #
GET /getUserRegisterToken Returns token for registered user #
POST /validateUserByEmail Validates user by email #
POST /validateUserByAccount Validates user by account information #
POST /register Registers user #
POST /queryQuoteStatus Returns quote status #
POST /convertQuoteOrder Converts quote to quote order #
GET /getQuoteOrderDetail Returns order details for a quote #
POST /updateQuoteOrder Updates quote draft #
POST /updateQuoteOrderShippingInfo Updates quote order shipping information #
GET /getQuoteOrderPrice Returns quote order pricing #
POST /placeQuoteOrder Submits the quote into an order #
POST /submitQuoteOrderForApproval Converts quote order to a saved order and sends saved order for approval #
GET /getCurrentUserLastSelectedJobInfo Returns last selected job information for current user #
POST /placeEagleViewOrder Creates an Eagle View order #
POST /placeEagleViewUpgradeOrder Upgrades a report to a premium report #
GET /getEagleViewOrderReport Returns information for an Eagle View report #
GET /getEagleViewOrderUpgradeProducts Returns product upgrades for an Eagle View report #
GET /getEagleViewOrderReportV3 Returns information for an Eagle View report #
GET /getOktaEagleViewLoginUrl Generates current user okta eagle view redirect URL #
GET /exchangeOktaEagleViewAuthorizationCode Returns access token by authorization code #
GET /unlinkEVAccount Unlinks current user’s Eagleview account #
GET /downloadCatalogItemData Downloads catalog item data #
GET /mincronMapping Returns Mincron mapping products #
GET /V4/healthCheck Check if becn.com and mincron are up and running #
POST /api/address-validation/getaddress #
POST /api/address-validation/getstreetwildsearch #
GET /api/integrations/itemlist #
POST /api/integrations/submitOrder #

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/beacon-rest-all-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

beacon-roofing-supply-all-api-openapi.yml Raw ↑
servers:
  - url: https://beaconproplus.com
    description: >-
      Production. Added by API Evangelist; the harvested document carried no servers[].
      Source: info.description of this spec: '[ BASE URL: https://beaconproplus.com ]' — this combined document mixes /v1, /v2, /v3 and /v4 paths, so the host is the base and the version prefix is carried per tag
openapi: 3.0.0
paths:
  "/login":
    post:
      operationId: V1Controller_login
      summary: " Logs user into system"
      description:
        Logs user into system with email as username and unique password.
        Log in session lasts 1 hour. To extend login session to 7 days, use the “RememberMe”
        flag. The `siteId` will always be `homeSite`.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/login"
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/loginResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/logout":
    post:
      operationId: V1Controller_logout
      summary: Logs user out of system
      description: Logs user out of system and ends current session.
      parameters: []
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/logoutResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/getLoginDeclaration":
    get:
      operationId: V1Controller_getLoginDeclaration
      summary: Returns Terms and Conditions for persistent login
      description:
        If user clicks on “keep me signed in” on the login page, user will
        need to agree to the terms and conditions to remain logged into PRO+.
      parameters:
        - name: siteId
          required: false
          in: path
          description: Default is `homeSite`, should be one of `homeSite`, `dealersChoice`
          schema:
            type: string
        - name: persistentLoginType
          required: false
          in: path
          description: Default is `RememberMe`, should be one of `RememberMe`, `RememberPassword`
          schema:
            type: string
        - name: userAgent
          required: false
          in: path
          description: Default is `desktop`, should be one of `desktop`, `tablet`, `mobile`
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/getLoginDeclarationResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/accounts":
    get:
      operationId: V1Controller_accounts
      summary: Lists available accounts for a user
      description:
        Returns available accounts for a user using the profile Id from
        GET/getCurrentUserInfo.
      parameters:
        - name: profileId
          required: true
          in: path
          description: User profile Id
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/accountResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/switchAccount":
    post:
      operationId: V1Controller_switchAccount
      summary: Changes account for a user
      description:
        Allows Beacon customer to change from one customer account to another
        account associated with that user profile.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/switchAccountBody"
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/switchAccountResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/branchlist":
    get:
      operationId: V1Controller_branchlist
      summary: Lists all available branches
      description: Returns available branches within a zip code or city.
      parameters:
        - name: zipCode
          required: false
          in: path
          description: Branch postal code
          schema:
            type: string
        - name: city
          required: false
          in: path
          description: Branch city
          schema:
            type: string
        - name: pageSize
          required: false
          in: path
          description: Default page size is 21
          schema:
            type: number
        - name: pageNo
          required: false
          in: path
          description: Default page number is 1, the first page
          schema:
            type: number
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/branchListResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/jobs":
    get:
      operationId: V1Controller_jobs
      summary: Lists available job names for an account
      description: Returns available job names and job numbers for an account.
      parameters:
        - name: accountId
          required: true
          in: path
          description: Account Id
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/jobsResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/items":
    get:
      operationId: V1Controller_items
      summary: Returns item details
      description: Returns item details based on product Id or item Id.
      parameters:
        - name: productId
          required: false
          in: path
          description: Product Id
          schema:
            type: string
        - name: itemNumber
          required: false
          in: path
          description: Item number(SKU ID)
          schema:
            type: string
        - name: accountId
          required: false
          in: path
          description: Account Id
          schema:
            type: string
        - name: jobNumber
          required: false
          in: path
          description: Job Number
          schema:
            type: string
        - name: uom
          required: false
          in: path
          description: Unit of Measure
          schema:
            type: string
        - name: showHoverAttrs
          required: false
          in: path
          description: if "true", display hover attributes
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/getItemsResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/getCurrentUserInfo":
    get:
      operationId: V2Controller_getCurrentUserInfo
      summary: Returns user details
      description:
        This service returns details for a logged in user. In this response,
        dtAccount is the deliveryTrackingSettings of current user with last selected
        account and roleType is one of "Master Admin","Admin", or "Site User".
      parameters: []
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/getCurrentUserInfoResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2

  "/orderhistory":
    get:
      operationId: V2Controller_orderhistory
      summary: Returns orders listed by order id
      description:
        Returns order information for each order including order totals,
        selling branch, special instructions, and shipping information.
      parameters:
        - name: accountId
          required: true
          in: path
          description: Account Id
          schema:
            type: number
        - name: pageSize
          required: false
          in: path
          description: Default page size is 0
          schema:
            type: number
        - name: pageNo
          required: false
          in: path
          description: Default page no is 0
          schema:
            type: number
        - name: filter
          required: false
          in: path
          description:
            '<h4>Notice</h4><p>The filter value should be URL encoded to
            avoid special characters issues(e.g. % with numbers)</p><h4>filter enumeration</h4><ul><li>UPPER(OrderNumber)
            like UPPER("%XX%")</li><li>ShippingAddress1 like "%XXX%" or UPPER(ShippingAddress2)
            like UPPER("%XXX%")</li><li>UPPER(PurchaseOrderNumber) like UPPER("%XX%")</li><li>UPPER(JobName)
            like UPPER("%XX%")</li><li>UPPER(Ordered) > "YYYY-MM-DD" and UPPER(Ordered)
            < "YYYY-MM-DD"</li><li>UPPER(OrderStatusCode) in ("C", "K")</li><li>UPPER(OrderStatusCode)
            in ("I")</li><li>UPPER(OrderStatusCode) in ("O")</li><li>UPPER(OrderStatusCode)
            in ("N")</li><li>UPPER(OrderStatusCode) in ("P", "R")</li><li>UPPER(ItemOrProductDescription)
            like UPPER("%XXX%") or ItemNumber like "%XXX%"</li><li>UPPER(SourceOfSale)
            like UPPER("C") or UPPER(SourceOfSale) like UPPER("E")</li><li>UPPER(SourceOfSale)
            in ("C") or UPPER(SourceOfSale) in ("E")</li><li>UPPER(SourceOfSale) = "C"
            or UPPER(SourceOfSale) = "E"</ul></li><h4>OrderStatusCode mapping</h4><ul><li>C,
            K: Processing</li><li>I: Invoiced</li><li>O: Ready Delivery / Pick up</li><li>N:
            Pending</li><li>P, R: Delivered</li></ul><h4>SourceOfSale mapping</h4><ul><li>C:
            In - Store</li><li>E: Online</li></ul>'
          schema:
            type: string
        - name: orderBy
          required: false
          in: path
          description:
            "<h4>orderBy enumeration</h4><ul><li>OrderNumber ASC/ DESC</li><li>ShippingAddress1
            ASC / DESC</li><li>Total ASC / DESC</li><li>OrderStatusCode ASC / DESC</li><li>SourceOfSale
            ASC / DESC</li></ul>"
          schema:
            type: string
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/orderhistoryResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2
  "/orderdetail":
    get:
      operationId: V2Controller_orderdetail
      summary: Returns order details by order Id
      description:
        Returns order details by order Id. If OAuth is enabled, token is
        passed in header. Order status codes include (I) Invoiced, (R) Reviewed, (P)
        Priced, (C) Changed, (O) Open, (K) Reserved, (N) Pending. For eagleView order,
        specialInstruction field in response will be replaced with report address.
      parameters:
        - name: orderId
          required: true
          in: path
          description: Order Id
          schema:
            type: string
        - name: accountId
          required: true
          in: path
          description: Account Id
          schema:
            type: string
        - name: accountToken
          required: true
          in: path
          description: Account Token
          schema:
            type: string
        - name: showDT
          required: false
          in: path
          description: Flag to show/hide DT order status info, default is true.
          schema:
            type: string
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/orderdetailResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2
  "/itemlist":
    get:
      operationId: V3Controller_itemlist
      summary: Get list of items
      description:
        This service will list all the products for selected account, based
        on availability.
      parameters:
        - name: accountId
          required: false
          in: query
          description: Account Id
          schema:
            type: string
        - name: pageSize
          required: false
          in: query
          description:
            Default page size is 21. Max Page Size can be configured in BCC,
            maxPageSize default value is 30. If pageSize exceeds maxPageSize, the amount
            of maxPageSize items return.
          schema:
            type: number
        - name: pageNo
          required: false
          in: query
          description: Default page no is 1, the first page
          schema:
            type: number
        - name: filter
          required: false
          in: query
          description:
            'Search terms<br><br>This parameter also support the following
            syntax:<br><blockquote>&#9679;`productId:ID1,ID2...IDn`<blockquote>&#9675;Filter
            by given product Id list, separated by comma. Example: "productId:C-010001,C-010002,C-010003"</blockquote></blockquote>'
          schema:
            type: string
        - name: cateFilter
          required: false
          in: query
          description: Category search terms
          schema:
            type: string
        - name: facetsFilter
          required: false
          in: query
          description:
            'Filter syntax:<br><br><blockquote>&#9679;Facets search IDs,
            separated by comma<blockquote>&#9675; Example: "4294965847,4294965836"</blockquote></blockquote><blockquote>&#9679;Indicate
            which dimension to search, < facet type >: <facet name >, separated by comma,
            case insensitive, ignore white space<blockquote>&#9675; Example: "size:0ft
            x 2ft,packaging:100 bag,thickness:102mm,style:A Slop,color: Beige"</blockquote></blockquote><blockquote>&#9679;Special
            charactors should be URL encoded then append to query string<blockquote>&#9675;
            Example:raw: "facetsFilter=Thickness:20_,Thickness:20",Thickness:20mm,Size:"9
            x "12,Size:#12,Size:1! x 1!,Size:1-5/8",Size:10" x 15",Size:100" x 200",Size:2-7/8",Size:6>
            x 500<"</blockquote><blockquote>&#9675; Example:URL encoded: "facetsFilter=Thickness%3a20_%2cThickness%3a20%22%2cThickness%3a20mm%2cSize%3a%229+x+%2212%2cSize%3a%2312%2cSize%3a1!+x+1!%2cSize%3a1-5%2f8%22%2cSize%3a10%22+x+15%22%2cSize%3a100%27+x+200%27%2cSize%3a2-7%2f8%22%2cSize%3a6%3e+x+500%3c"</blockquote></blockquote><blockquote>&#9679;The
            above syntax can be mixed together<blockquote>&#9675; Example: "size:0ft
            x 2ft,4294965847,packaging:100 bag,thickness:102mm,4294965836,style:A Slop,color:
            Beige"</blockquote></blockquote>'
          schema:
            type: string
        - name: showSkuList
          required: false
          in: query
          description: if "false", display sku list
          schema:
            type: string
        - name: showFacets
          required: false
          in: query
          description: if "false", do not display facets. Default is "false"
          schema:
            type: string
        - name: enableAutoCorrection
          required: false
          in: query
          description: Default is false, will enable auto correction for `filter`
          schema:
            type: string
        - name: enableDidYouMean
          required: false
          in: query
          description: Default is false, will enable did you mean features for `filter`
          schema:
            type: string
        - name: showHoverAttrs
          required: false
          in: query
          description: if "false", display Hover attributes
          schema:
            type: string
        - name: hoverSearch
          required: false
          in: query
          description: if "false", display Hover version of search
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br/><br/>If failed, return messageCode,
            refer to messageCode doc.<br/><br/>Example<br/><br/>{ "messageCode": "1001",
            "message": "Validation exception" }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/itemListResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      security:
        - basic: []
      tags:
        - V3
  "/getProductInfo":
    get:
      operationId: V1Controller_getProductInfo
      summary: Returns list of accounts by Product Id
      description: Returns list of accounts where product is available for Hover.
      parameters:
        - name: productId
          required: false
          in: path
          description: Product Id
          schema:
            type: string
        - name: accountInfo
          required: true
          in: path
          description:
            If true, return all accounts as a list for which the product
            should be served (accounts that have the product as available). Default
            is false
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/getProductInfoResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/getSkuUom":
    get:
      operationId: V1Controller_getSkuUom
      summary: Returns Unit of Measures (UoM) for an item number
      description:
        "Returns all Unit of Measures (UoM) options for an item number.
        Item number examples: 253729, 253733. Unit of Measure examples: BDL, PC, CTN."
      parameters:
        - name: skuId
          required: false
          in: path
          description: Item Number
          schema:
            type: string
        - name: skuIds
          required: false
          in: path
          description:
            'Multiple Item Number string, separated by commas<br><br>Example:
            "253729,253737,253740"'
          schema:
            type: string
      responses:
        "200":
          description:
            'successful operation<br><br>If failed, return messageCode,
            refer to the <i>API Response Message Code</i> dropdown above<br><br>Example:<br><br>{
            "messageCode": "1001", "messages": [{ "type": "error", "value": "Validation
            exception", "code": "1001" }], "success": false }'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/getSkuUomResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V1
  "/pricing":
    get:
      operationId: V2Controller_pricing
      summary: Returns price and unit of measure for item number(s)
      description:
        Returns price and unit of measure for item numbers. Items with
        no unit of measure will return “EMPTY_UOM” in response. There is no limit
        in the number of items in query.
      parameters:
        - name: skuIds
          required: false
          in: path
          description:
            'skuIds: Separate SKU Id''s with commas.<br><br>Example: "253729,253737,253740"<br><br>If
            querying for items specified by unit of measure, add unit of measure followed
            by colon.<br><br>Example: "253729:BDL,253737,253740:PC"'
          schema:
            type: string
        - name: accountId
          required: false
          in: path
          description: Account Id
          schema:
            type: string
        - name: jobNumber
          required: false
          in: path
          description: Job Number
          schema:
            type: string
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/pricingResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2
  "/cartItems":
    get:
      operationId: V2Controller_cartItems
      summary: Retrieves items from cart
      description:
        Retrieves added items from the cart for the user profile within
        selected account. This end point allows you to return variations of each item.
      parameters:
        - name: showItemVariations
          required: false
          in: path
          description: Default is false. If "true", display variations of each item.
          schema:
            type: string
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/cartItemsResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2
  "/submitOrder":
    post:
      operationId: V2Controller_submitOrder
      summary: Submits order
      description:
        'This service submits an order to the assigned branch for the selected
        account. Account holder can require jobNumber for each order processed within
        that account. Use get/jobs service to see if jobNumber is required for account.
        The “purchaseOrderNo” is assigned by account and does not need to be unique.
        The ""apiSiteId"" is is required to submit an order. The “itemNumber” or ""productOrItemDescription"",
        “quantity,” and “unitOfMeasure” fields are required lineItems. The “checkForAvailability”
        field should always be “No” to ensure orders are actually received by a branch
        representative. The “UUID” field is an optional field to send in UUID value
        to track orders. '
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/submitOrderBody"
      responses:
        "200":
          description:
            successful operation<br><br>refer to the <i>API Uniform Format</i>
            dropdown above
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/submitOrderResponse"
        "400":
          description: Bad Request, accountId is invalid.
        "401":
          description: Unauthorized, the authorization bearer token is invalid.
        "405":
          description:
            Method not allowed, the request method is not valid for this
            API or this API is not available.
        "500":
          description: Internal exception.
      tags:
        - V2
  "/addMultipleItemsToOrder":
    post:
      operationId: V2Controller_addMultipleItemsToOrder
      summary: Adds multiple items to the cart
      description:
        Adds multiple items to a cart. "items.color" should be either "vendor
        color name(code)" or "vendor color name".
      parameters:
        - name: ignoreInvalidItems
          required: true
          in: path
          description:
            if "true", will ignore invalid items and continue add valid items
            to cart, otherwise will return invalid items
          schema:
            type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/addMultipleItemsToOrderBody"
      responses:
        "200":
        

# --- truncated at 32 KB (389 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/beacon-roofing-supply/refs/heads/main/openapi/beacon-roofing-supply-all-api-openapi.yml