Beacon Roofing Supply Pricing Services API

The Pricing Services API from Beacon Roofing Supply — 2 operation(s) for pricing services.

Business capability
Pricing Management BC-440

Operations 2

POST /orderPricing query order price #
POST /quotePricing query quote price #

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-roofing-supply:beacon-roofing-supply-pricing-services-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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-pricing-services-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Beacon Rest Services (Use for Internal) Pricing Services API
  version: 24PI-4-Sprint-3
  description: 'This version of APIs do not require the user to login, to be able to access

    services. A bearer token is required to be authorized to access the

    services.


    ### STORE BASE URL:


    [ PROD BASE URL: *https://beaconproplus.com/v4/rest/com/becn* ]


    [ UAT BASE URL: *https://beacon-uat-ng.becn.com/v4/rest/com/becn* ]


    [ DEV BASE URL: *https://beacon-dev-ng.becn.com/v4/rest/com/becn* ]


    ### IDP BASE URL:


    [ PROD BASE URL: *https://identity.becn.com/auth/realms/master/protocol/openid-connect/token* ]


    [ UAT BASE URL: *https://identity-uat.becn.com/auth/realms/master/protocol/openid-connect/token* ]


    [ DEV BASE URL: *https://identity-dev.becn.com/auth/realms/master/protocol/openid-connect/token* ]


    Key


    ## API Uniform Format:


    Show...

    ### Success Response:

    ```

    {

    "success":true,

    "messages":null,

    "result":

    }

    ```

    ### Explanation:

    If the response example value of one endpoint `/foo` is:

    ```

    {

    "name":"bar",

    "age":123

    }

    ```


    Then the actual response value of this endpoint is: (replace the value of "result" element in `API Uniform Format` with example response)

    ```

    {

    "success":true,

    "messages":null,

    "result":{

    "name":"bar",

    "age":123

    }

    }

    ```

    ### Validation Failed Response:

    ```

    {

    "success":false,

    "messages":[{

    "type": "error",

    "value": "validation exception message"

    },...],

    "result": null

    }

    ```


    ## Keycloak Authentication Process


    Show...

    ### Token endpoint

    ```

    /auth/realms/master/protocol/openid-connect/token

    ```

    The token endpoint is used to obtain tokens. Tokens can either be obtained by exchanging an authorization code or by supplying credentials directly depending on what flow is used. The token endpoint is also used to obtain new access tokens when they expire.

    ### Resource Owner Password Credentials

    Resource Owner Password Credentials, referred to as Direct Grant in {project_name}, allows exchanging user credentials for tokens.


    For a client to be permitted to use the Resource Owner Password Credentials grant the client has to have the Direct Access Grants Enabled option enabled.


    This flow is not included in OpenID Connect, but is a part of the OAuth 2.0 specification.

    ### Example for obtaining access token & refresh token using CURL

    The following example shows how to obtain an access token for a user in the realm master with username user and password password. The example is using the confidential client client_id:

    ```

    curl \

    -d "client_id=client_id" \

    -d "client_secret=client_secret" \

    -d "username=user" \

    -d "password=password" \

    -d "grant_type=password" \

    "http://{IDP_domain}/auth/realms/master/protocol/openid-connect/token"

    ```

    ### Example for obtaining access token with client credentials using CURL

    The following example shows how to obtain an access token with client credentials. The example is using the confidential client client_id:

    ```

    curl \

    -d "client_id=client_id" \

    -d "client_secret=client_secret" \

    -d "grant_type=client_credentials" \

    "http://{IDP_domain}/auth/realms/master/protocol/openid-connect/token"

    ```

    ### Example for refreshing an access token using CURL

    The following example shows how to refresh an access token with refresh token. The example is using the confidential client client_id:

    ```

    curl \

    -d "client_id=client_id" \

    -d "client_secret=client_secret" \

    -d "grant_type=refresh_token" \

    -d "refresh_token=refresh_token" \

    "http://{IDP_domain}/auth/realms/master/protocol/openid-connect/token"

    ```'
servers:
- url: https://beaconproplus.com/v2/rest/com/becn
  description: 'Production. Added by API Evangelist; the harvested document carried no servers[]. Source: internal service published on the same public Swagger index; base taken from the shared v2 prefix'
tags:
- name: Pricing Services
paths:
  /orderPricing:
    post:
      security:
      - internalAuth: []
      tags:
      - Pricing Services
      summary: query order price
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/priceRequest'
      responses:
        '200':
          description: 'Refer to API Uniform Format

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/itemPricingResp'
        '400':
          description: Bad Request.
        '401':
          description: Unauthorized, the authorization 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
      operationId: postOrderPricing
      x-operation-id-source: derived
  /quotePricing:
    post:
      security:
      - internalAuth: []
      tags:
      - Pricing Services
      summary: query quote price
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/quotePriceRequest'
      responses:
        '200':
          description: 'Refer to API Uniform Format

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/itemPricingResp'
        '400':
          description: Bad Request.
        '401':
          description: Unauthorized, the authorization 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
      operationId: postQuotePricing
      x-operation-id-source: derived
components:
  schemas:
    priceRequest:
      type: object
      required:
      - account
      - brnNumber
      - item
      properties:
        account:
          type: string
        jobNumber:
          type: string
        branchNumber:
          type: string
        item:
          type: array
          items:
            $ref: '#/components/schemas/pricingItem'
    itemPrice:
      type: object
      properties:
        requestUnitOfMeasure:
          type: string
        requestQuantity:
          type: number
          format: long
        requestExtendedPrice:
          type: number
          format: double
        itemNumber:
          type: string
        productNumber:
          type: string
        orderUnitOfMeasure:
          type: string
        requestNetPrice:
          type: number
          format: double
        orderNetPrice:
          type: number
          format: double
        orderQuantity:
          type: number
          format: long
        orderExtendedPrice:
          type: number
          format: double
        itemDescription:
          type: string
        error:
          type: string
        warning:
          type: string
    pricingItem:
      type: object
      required:
      - itemNumber
      properties:
        itemNumber:
          type: string
        quantity:
          type: number
          format: long
          description: Default value is 1
        unitOfMeasure:
          type: string
    itemPricingResp:
      type: object
      properties:
        bizItemPrices:
          type: array
          items:
            $ref: '#/components/schemas/itemPrice'
    quotePriceRequest:
      type: object
      required:
      - account
      - brnNumber
      - item
      properties:
        account:
          type: string
        jobNumber:
          type: string
        branchNumber:
          type: string
        bidNumber:
          type: string
        item:
          type: array
          items:
            $ref: '#/components/schemas/pricingItem'
  securitySchemes:
    internalAuth:
      type: http
      scheme: bearer
      bearerFormat: token