brokerbin
v3.1.0
Published
BrokerBin API wrapper for Node.js
Downloads
158
Maintainers
Readme
brokerbin
BrokerBin API wrapper for Node.js
:cloud: Installation
# Using npm
npm install --save brokerbin
# Using yarn
yarn add brokerbin
:clipboard: Example
const BrokerBinREST = require("brokerbin");
// REST Example
(async () => {
const bbClient = new BrokerBinREST({
username: process.env.BROKERBIN_USERNAME || "your username",
token: process.env.BROKERBIN_TOKEN || process.env.BROKERBIN_SOAP_KEY || "your token",
})
const result = await bbClient.partSearch({
query: "F238F",
});
console.log(result)
})().catch(console.error)
:question: Get Help
There are few ways to get help:
- Please post questions on Stack Overflow. You can open issues with questions, as long you add a link to your Stack Overflow question.
- For bug reports and feature requests, open issues. :bug:
:memo: Documentation
BrokerBinREST(data)
Initializes a new BrokerBinREST instance.
Example:
const BrokerBinREST = require("brokerbin").REST
const bbClient = new BrokerBinREST({
username: "webdevops",
token: "..."
})
Params
- Object
data
: The BrokerBinREST data:username
(String): The BrokerBin username (default:process.env.BROKERBIN_USERNAME
).token
(String): The BrokerBin token (default:process.env.BROKERBIN_TOKEN
).api_root
(String): The BrokerBin API root (default:https://search.brokerbin.com/api/v2
).
Return
- BrokerBinREST The BrokerBinREST instance.
request(endpoint, query, returnData)
Make a request to the BrokerBin API.
Params
- String
endpoint
: The endpoint to request. - Object
query
: The query object. - Boolean
returnData
: Iftrue
, the function will return the data. Iffalse
, it will return the response object.
Return
- Promise The response data or the response object.
partSearch(data)
Search for parts by part number.
Example
// Initialize the BrokerBin instance
const bbClient = new BrokerBinREST({
username: "webdevops",
token: "..."
})
// Run a search
bbClient.partSearch({
query: "188122-B22",
})
Params
- Object
data
: The search data:query
(required) the search string, part numberfields
db fields to search against, possible values: partsno,manufacturer,description,condition (default: partsno)mfg[]
filter by manufacturercond[]
filter by conditioncountry[]
filter by countryregion[]
filter by regionstate[]
filter by statesize
number of results to return (default: 10)offset
number of results to skip (default: 0, max: 900)fuzziness
percentage of search terms that require matches (default: 100%)first
myVen show first (boost 200%)last
myVen show last (de-boost 90%)never
myVen show never (filter out)priced
filter priced parts onlyage
only match parts this many days old, or lesssort[index][field]=direction
the index, field and direction (default: sort[0][_score]=desc&sort[1][age]=desc&sort[2][company.original]=asc)- where index is an integer with which the lowest number takes the highest precedence and no numbers repeat -- ex: 0, 1, 2
- and where the valid sorting fields are: age, clei.original, company.original, condition, country, manufacturer, partsno.original, price, qty, region, state
- and where the valid sorting directions are: asc, desc
Return
- Promise The response data looks like this:
{
"meta": {
"total": 18,
"manufacturers": [
{
"key": "HP",
"doc_count": 18
}
],
"conditions": [
{
"key": "REF",
"doc_count": 17
},
{
"key": "NEW",
"doc_count": 1
}
],
"states": [
{
"key": "FL",
"doc_count": 6
},
{
"key": "WY",
"doc_count": 6
},
{
"key": "TX",
"doc_count": 2
},
{
"key": "KY",
"doc_count": 1
},
{
"key": "MN",
"doc_count": 1
},
{
"key": "NY",
"doc_count": 1
},
{
"key": "WA",
"doc_count": 1
}
],
"countries": [
{
"key": "USA",
"doc_count": 18
}
],
"regions": [
{
"key": "North America",
"doc_count": 18
}
],
"request": {
"count": 33,
"limit": 100
}
},
"data": [
{
"company": "Techlogix USA",
"country": "USA",
"part": "188122-B22",
"clei": "",
"mfg": "HP",
"cond": "REF",
"description": "HP 18.2GB 15000RPM Ultra-160 SCSI 80-Pin LVD Hot-Pluggable 3.5-inch Hard Drive",
"price": 0,
"qty": 1,
"age_in_days": 6
},
{
"company": "Techlogix USA",
"country": "USA",
"part": "188122-B22",
"clei": "",
"mfg": "HP",
"cond": "REF",
"description": "HP 18.2GB 15000RPM Ultra-160 SCSI 80-Pin LVD Hot-Pluggable 3.5-inch Hard Drive",
"price": 0,
"qty": 1,
"age_in_days": 7
},
"truncated..."
]
}
partPrefix(data)
Search for parts by the beginning (or complete) of a part number.
Params
- Object
data
: An object containing the following data:query
(required) the search string, part number, or beginning of part numbermfg[]
filter by manufacturercond[]
filter by conditioncountry[]
filter by countryregion[]
filter by regionstate[]
filter by statesize
number of results to return (default: 10)offset
number of results to skip (default: 0, max: 900)first
myVen show first (boost 200%)last
myVen show last (de-boost 90%)never
myVen show never (filter out)priced
filter priced parts onlyage
only match parts this many days old, or lesssort[index][field]=direction
the index, field and direction (default: sort[0][_score]=desc&sort[1][age]=desc&sort[2][company.original]=asc)- where index is an integer with which the lowest number takes the highest precedence and no numbers repeat -- ex: 0, 1, 2
- and where valid sorting fields are: age, clei.original, company.original, condition, country, manufacturer, partsno.original, price, qty, region, state
- and where valid sorting directions are: asc, desc
Return
- Promise The response data looks like this:
{
"meta": {
"total": 18,
"request": {
"count": 16,
"limit": 50
},
"manufacturers": [
{
"key": "HP",
"doc_count": 18
}
],
"conditions": [
{
"key": "REF",
"doc_count": 16
},
{
"key": "NEW",
"doc_count": 2
}
],
"states": [
{
"key": "FL",
"doc_count": 8
},
{
"key": "NY",
"doc_count": 3
},
{
"key": "KY",
"doc_count": 2
},
{
"key": "TX",
"doc_count": 2
},
{
"key": "WA",
"doc_count": 2
},
{
"key": "MN",
"doc_count": 1
}
],
"countries": [
{
"key": "USA",
"doc_count": 18
}
],
"regions": [
{
"key": "North America",
"doc_count": 18
}
],
"price": {
"count": 18,
"min": 0,
"max": 65,
"avg": 6.833333333333333,
"sum": 123
},
"qty": {
"count": 18,
"min": 1,
"max": 69,
"avg": 7.277777777777778,
"sum": 131
}
},
"data": [
{
"company": "Serverworlds.com",
"country": "USA",
"part": "188122-B22",
"clei": "",
"mfg": "HP",
"cond": "REF",
"description": "18.2GB U3 15K SCSI 1 hotplug",
"price": 65,
"qty": 69,
"age_in_days": 0
},
{
"company": "Blitz Network Solutions Inc.",
"country": "USA",
"part": "188122-B21",
"clei": "",
"mfg": "HP",
"cond": "REF",
"description": "HP 18.2GB 15000RPM Ultra-160 SCSI Hot-Pluggable LVD 80-Pin 3.5-inch Hard Drive 5-7 Business Days Lead Time",
"price": 0,
"qty": 7,
"age_in_days": 0
}
,{"truncated":"truncated..."}
]
}
partStatsHistogram(data)
Produce 90 day histogram for a single part with extended stats on price and qty.
Params
- Object
data
: An object containing the following data:query
(required) the search string, part numbermfg[]
filter by manufacturercond[]
filter by conditioncountry[]
filter by countryregion[]
filter by regionstate[]
filter by statenever
myVen show never (filter out)priced
filter priced parts onlyinterval
the timeframe for the historgram (day,week,month, or year)from
include dates greater than or equal to this dateto
include dates less than or equal to this date
Return
- Promise The response data looks like this:
{
"meta": {
"request": {
"count": 19,
"limit": 25
},
"manufacturers": [
{
"key": "HP",
"doc_count": 182
}
],
"conditions": [
{
"key": "REF",
"doc_count": 154
},
{
"key": "NEW",
"doc_count": 28
}
],
"states": [],
"countries": [
{
"key": "USA",
"doc_count": 182
}
],
"regions": [
{
"key": "North America",
"doc_count": 182
}
]
},
"data": [
{
"date": "2023-02-01 00:00:00",
"price_weighted_by_qty": 32.206832871652814,
"price_stats": {
"count": 182,
"min": 0,
"max": 45,
"avg": 8.131868131868131,
"sum": 1480,
"sum_of_squares": 57320,
"variance": 248.81777563096244,
"variance_population": 248.81777563096244,
"variance_sampling": 250.19245947422743,
"std_deviation": 15.773958781198917,
"std_deviation_population": 15.773958781198917,
"std_deviation_sampling": 15.817473232922742,
"std_deviation_bounds": {
"upper": 39.679785694265966,
"lower": -23.416049430529704,
"upper_population": 39.679785694265966,
"lower_population": -23.416049430529704,
"upper_sampling": 39.76681459771362,
"lower_sampling": -23.503078333977353
}
},
"qty_stats": {
"count": 182,
"min": 1,
"max": 73,
"avg": 11.901098901098901,
"sum": 2166,
"sum_of_squares": 113284,
"variance": 480.80340538582294,
"variance_population": 480.80340538582294,
"variance_sampling": 483.45977779126946,
"std_deviation": 21.927229769987427,
"std_deviation_population": 21.927229769987427,
"std_deviation_sampling": 21.98771879461963,
"std_deviation_bounds": {
"upper": 55.75555844107376,
"lower": -31.953360638875953,
"upper_population": 55.75555844107376,
"lower_population": -31.953360638875953,
"upper_sampling": 55.87653649033817,
"lower_sampling": -32.07433868814036
}
}
}
]
}
rfqHistogram(data)
Aggregated RFQ counts for a single part.
Params
- Object
data
: An object containing the following data:query
(required) the search string, part numbermfg[]
filter by manufacturercond[]
filter by conditionfrom
include dates greater than or equal to this dateto
include dates less than or equal to this datesize
number of results to return (default: 10)offset
number of results to skip (default: 0, max: 900)fuzziness
percentage of search terms that require matches (default: 100%)
Return
- Promise The response data looks like this:
{
"meta": {
"request": {
"count": 19,
"limit": 25
},
"manufacturers": [
{
"key": "HP",
"doc_count": 50
}
],
"conditions": [
{
"key": "NEW",
"doc_count": 50
}
]
},
"data": [
{
"date": "2023-01-30 00:00:00",
"rfqs": 5
},
{
"date": "2023-02-06 00:00:00",
"rfqs": 17
},
{
"date": "2023-02-13 00:00:00",
"rfqs": 6
},
{
"date": "2023-02-20 00:00:00",
"rfqs": 6
},
{
"date": "2023-02-27 00:00:00",
"rfqs": 7
},
{
"date": "2023-03-06 00:00:00",
"rfqs": 9
}
]
}
supplyAndDemandHistogram(data)
Aggregated Search and Result counts for a single part.
Params
- Object
data
: An object containing the following data:query
(required) the search string, part numbermfg[]
filter by manufacturerage
only include parts this many days old, or lessfuzziness
percentage of search terms that require matches (default: 100%)interval
the timeframe for the historgram (day,week,month, or year)from
include dates greater than or equal to this dateto
include dates less than or equal to this date
Return
- Promise The response data looks like this:
{
"meta": {
"request": {
"count": 12,
"limit": 25
},
"manufacturers": [
{
"key": "HP",
"doc_count": 18
},
{
"key": "HPE",
"doc_count": 17
},
{
"key": "ARUBA NETWORKS",
"doc_count": 13
},
{
"key": "HPE - ARUBA SWITCHING",
"doc_count": 3
}
]
},
"data": [
{
"date": "2023-02-01 00:00:00",
"searches": 2113,
"avg_result_count": 688
}
]
}
topParts(data)
Aggregated search counts by part for a given mfg sorted by number of searches in descending order
Params
- Object
data
: An object containing the following data:query
(required) the search string, manufacturerfuzziness
percentage of search terms that require matches (default: 100%)from
include dates greater than or equal to this dateto
include dates less than or equal to this datesize
the number of parts to return
Return
- Promise The response data looks like this:
{
"meta": {
"request": {
"count": 19,
"limit": 25
}
},
"data": [
{
"part": "WS-C2960X-24PS-L",
"searches": 5475
},
{
"part": "WS-C2960X-48FPS-L",
"searches": 4154
},
{
"part": "WS-C2960X-48FPD-L",
"searches": 3661
},
{
"part": "GLC-LH-SMD",
"searches": 3244
},
{
"part": "C9300-NM-8X",
"searches": 2783
},
{
"part": "N9K-C93180YC-EX",
"searches": 2442
},
{
"part": "STACK-T1-50CM",
"searches": 2410
},
{
"part": "ASR1001-X",
"searches": 2394
},
{
"part": "C9200L-48P-4X-E",
"searches": 1955
},
{
"part": "WS-C2960X-48LPS-L",
"searches": 1886
}
]
}
matches(data)
Find users and company who searched for an exact part number.
Params
- Object
data
: An object containing the following data:query
(required) the search string, part numberfrom
include matches on dates greater than or equal to this datenever
myVen show never (filter out)in_stock
only include searchers who had the item in-stock when the search occurred
Return
- Promise The response data looks like this:
{
"meta": {
"request": {
"count": 44,
"limit": 100
}
},
"data": {
"query": "c9300-nm-8x",
"from": "2024-06-20",
"results": {
"count": 17,
"matches": [
{
"company_name": "Network Craze Technologies",
"company_contact": "James Froio",
"search_query": "C9300-NM-8X",
"qty": 26,
"age": "51 minutes ago"
},
{
"company_name": "NW Remarketing",
"company_contact": "Louis Zahler",
"search_query": "C9300-NM-8X",
"qty": 5,
"age": "3 hours ago"
},
{
"company_name": "Refub Tech",
"company_contact": "Saless Team",
"search_query": "C9300-NM-8X",
"qty": 4,
"age": "4 hours ago"
},
{
"company_name": "Neon Devices LLC",
"company_contact": "Nohail K",
"search_query": "C9300-NM-8X",
"qty": 52,
"age": "4 hours ago"
},
{
"company_name": "Network Integrators LTD.",
"company_contact": "Purchasing Team",
"search_query": "C9300-NM-8X",
"qty": 1,
"age": "5 hours ago"
},
{
"company_name": "Link-US LLC",
"company_contact": "Basem Toma",
"search_query": "C9300-NM-8X",
"qty": 1,
"age": "6 hours ago"
},
{
"company_name": "Crisp Technologies LLC",
"company_contact": "Steve Murphy",
"search_query": "C9300-NM-8X",
"qty": 10,
"age": "6 hours ago"
},
{
"company_name": "Nordic Computer",
"company_contact": "Ozren Nezic",
"search_query": "C9300-NM-8X",
"qty": 1,
"age": "11 hours ago"
},
{
"company_name": "Euro IT Solution LTD",
"company_contact": "Javed A.",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "12 hours ago"
},
{
"company_name": "Knowledge Computers PTE",
"company_contact": "N/A",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "12 hours ago"
},
{
"company_name": "Euro IT Solution LTD",
"company_contact": "Javed A.",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "12 hours ago"
},
{
"company_name": "Units Enterprise",
"company_contact": "Andy Bryant",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "1 day ago"
},
{
"company_name": "Units Enterprise",
"company_contact": "Jim Henderson",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "1 day ago"
},
{
"company_name": "Units Enterprise",
"company_contact": "Jim Henderson",
"search_query": "C9300-NM-8X",
"qty": 2,
"age": "1 day ago"
},
{
"company_name": "Knowledge Computers USA",
"company_contact": "Travis Oestreich",
"search_query": "c9300-nm-8x",
"qty": 4,
"age": "1 day ago"
},
{
"company_name": "Colorado Peak Technologies,Inc",
"company_contact": "Alex Myers",
"search_query": "C9300-NM-8X",
"qty": 3,
"age": "1 day ago"
},
{
"company_name": "eGoods Supply, Inc.",
"company_contact": "Norman",
"search_query": "C9300-NM-8X",
"qty": 4,
"age": "1 day ago"
}
]
}
}
}
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.