Cost Data API Reference
Welcome to the 1build Cost Data API reference guide!
This guide includes the complete set of GraphQL types, queries, mutations, and their parameters for searching and retrieving cost data from the 1build API.
GraphQL
The 1build API is a GraphQL based interface to our cost database. If you would like an introduction to using GraphQL, some good resources are:
If you need assistance or are having trouble implementing your API client, please reach out to 1build support at help@1build.com.
API Endpoints
# Production Server:
https://gateway-external.1build.com/
Headers
# API key. Must be included in all API calls.
1build-api-key: 1build_ext.aBcDeFgHi.AbCdEfGhIjKlMnOpQrStUvWxYz123456
Getting Started
Authentication
Access to the API is authenticated by your API key which will need to be passed in the 1build-api-key
HTTP header with each request. API keys are unique to your organization and they come in two types:
EXTERNAL
- for use with backend integrationsEMBEDDED
- for use with client-side integrations
Because the EMBEDDED
key must be included in your client-side code it cannot be kept secret. For this reason you must configure referrers
in your 1build organization preferences to match the domain name of the website hosting the code which will call the API. For example, if your application is hosted at https://constructionmagic.com/parts/lookup, you would put https://constructionmagic.com/
in your referrers
list.
An EXTERNAL
key does not require referrers
to be configured. Please keep this key private to your organization.
If you need an API key or for help using one please contact help@1build.com.
Your first query
Typically you will use a GraphQL client to help make your queries for you however this is not required. You can make requests directly via HTTP using your language's prefered idioms. If you do want to use a client, there are many options to choose from.
All queries are POST requests to the API endpoint: https://gateway-external.1build.com.
To try out a request, a good place to start is with a sources
query. This query will perform a search on the 1build cost database and return matching records.
Request Headers
POST https://gateway-external.1build.com/ HTTP/1.1
content-type: application/json
1build-api-key: 1build_ext.jD0bjzZS.bm7hWEnDb2OffSrTprL385eD9008bLBi
Note the API key is included in the 1build-api-key
header and the request is made to the https://gateway-external.1build.com/
endpoint.
Query
query sources($input: SourceSearchInput!) {
sources(input: $input) {
nodes {
id
name
calculatedUnitRateUsdCents
laborRateUsdCents
materialRateUsdCents
}
}
GraphQL lets the client define which fields of a type to return. In this case we request a subset of the full sources
schema. Namely the paginated nodes
field along with a few fields on each node returned.
Variables
{
"input": {
"state": "California",
"county": "Los Angeles County",
"searchTerm": "water filtration",
"page": {
"limit": 3
}
}
}
The sources
query takes a SourceSearchInput
type as an argument which requires the state
, county
and searchTerm
fields. We are searching for "water filtration" systems in Los Angeles County, California.
The other fields are optional. We could have specified a categoryPath
to search only within a certain category hierarchy such as "Plumbing, Rough-In". Categories can be explored using the categoryTreeItems
query.
Since sources
returns a paginated response we can specify how many results we want returned. We ask for 3 results.
Response
{
"data": {
"sources": {
"nodes": [
{
"id": "8514f9ba-23e6-41c0-914e-a47cb233320c",
"name": "1-Stage and Whole House Water Filtration System",
"calculatedUnitRateUsdCents": 31502,
"laborRateUsdCents": 2856,
"materialRateUsdCents": 31025
},
{
"id": "fd075a43-1c7c-48ef-b804-f6b8da31f2fe",
"name": "3-Stage Whole House 20\" Big Water Filtration System",
"calculatedUnitRateUsdCents": 52377,
"laborRateUsdCents": 2856,
"materialRateUsdCents": 51900
},
{
"id": "1949599e-2adb-475c-8de6-61b987770c78",
"name": "4-Stage 300,000 gal. Whole House Water Filtration System",
"calculatedUnitRateUsdCents": 48399,
"laborRateUsdCents": 2856,
"materialRateUsdCents": 47922
}
]
}
}
}
The response comes back with the three requested results. These results are sorted by relevancy.
Note: All costs returned by the API are represented as integers in USD cents. To display this value to the end-user you will likely want to convert it into dollars by dividing by 100.
Congratulations! You are now ready to incorporate up-to-date localized cost data into your application.
Core Types
The most important types to understand when working with the 1build Cost Data API are Source
and CategoryTreeItem
.
Source
A Source
is the basic informational element of our cost data API. It holds cost and procurement information for the product or service in question. Sources can represent many different types of items and are broken down by type into the following broad groups:
SourceType | Description |
---|---|
MATERIAL | A physical piece of construction material, i.e. "5/8" 4X12' Drywall" |
EQUIPMENT | A tool or machine, typically for rent, i.e. "15-17' Electric Scissor Lift (Daily Rental)" |
ASSEMBLY | A source composed of multiple nested sources of any type, i.e. "Flooring: Sheet Carpet" which includes the nested sources Texture Carpet" and "7/16" 8 lb. Density Carpet Padding" |
LABOR | The rate per unit time for a professional to perform a service, i.e. "Tile and Stone Setter" |
SCOPE | A scope of work which is billed out to a contractor, typically not hourly, i.e. "Testing - Soil" |
Sources come with a lot of additional information which will indicate the name, description, images, price, location, division, etc. For the details of these fields see Source
.
Sources are discovered by searching our indexed database for a searchTerm
. This is done via the sources
query. In addition to a searchTerm
you can specify a categoryPath
to search only for results in that category path.
CategoryTreeItem
All sources
in the API are assigned to a category. This helps to limit the scope when searching for terms which may be common across categories. A category is represented by a CategoryTreeItem
which are arranged in a hierarchy.
To discover and browse the category hierarchy make use of the categoryTreeItems
query. This query returns a list of nodes and indicates if they have sub-categories below them. By passing a search term into this query you can restrict the results to those categories which have search results within them.
Recommended Usage
Our recommended approach to designing a user experience around the 1build Cost Data API is composed of a combination of searching and browsing which lets the user quickly narrow down their result set and pick a source
which matches their needs.
The idea is to provide search results based on a search term and to allow the user to then optionally narrow down these results by browsing categories.
- Accept a search term from the user. Either explicitly via a search input box or implicitly based on the name of a pre-existing item.
- Perform a
sources
query using thesearchTerm
field to search all sources for the user's input. This returns the top results for that term. - Display the results to the user. Show a detail view for the result if the user clicks on it.
- Simultaneously with the inital search, perform a
categoryTreeItems
query using the samesearchTerm
and an emptycategoryPath
to get a list of top level categories which contain this term within their child hierarchy. - Display the returned categories below the top search results and allow the user to select one.
- If a category is selected, perform another
categoryTreeItems
query with the category appended to thecategoryPath
. This will return sub-categories which contain the search term. - Repeat this navigation until the user clicks on a category with no sub-categories.
- If a category has no sub-categories (indicated by the
hasSubCategories
field) then it will contain search results. Load these results via asources
query using the fullcategoryPath
andsearchTerm
. - Display these results below the selected leaf category.
As an optional approach, you could implement the above process without an initial search term and let the user just browse categories to find their result. A categoryTreeItems
query without a searchTerm
will return all categories. The navigation of sub-categories can be implemented as described above. A sources
query without a searchTerm
will return all results in the given category (up to the requested page limit, 10 by default).
Note: There is no API billing charge for accessing the categoryTreeItems
query, only for Source
or NestedSource
objects returned from the sources
query.
Queries
categoryTreeItems
Description
Used to browse the category tree. Each category item has a property hasSubCategories
. To list the sub-categories of a Category it's possible to use the categoryPath
input. The 1build data is county-based, i.e. the API shows rates by state/county. It's possible to search categories by zipcode or coordinate (lat, lng), but these inputs are used to find the closest county. The used county for searching is available in the query response (check the DataLocation node)
Response
Returns a CategoryTreeItems
Arguments
Name | Description |
---|---|
input - CategoryPathSearchInput!
|
Example
Query
query categoryTreeItems($input: CategoryPathSearchInput!) {
categoryTreeItems(input: $input) {
nodes {
id
name
hasSubCategories
}
pageInfo {
hasNextPage
}
dataLocation {
countyName
stateName
}
}
}
Variables
{"input": CategoryPathSearchInput}
Response
{
"data": {
"categoryTreeItems": {
"nodes": [CategoryTreeItem],
"pageInfo": OffsetBasedPageInfo,
"dataLocation": DataLocation
}
}
}
sources
Description
List sources per location and source type with an optional search term and category tree filter. The 1build data is county-based, i.e. the API shows rates by state/county. It's possible to search sources by zipcode or coordinate (lat, lng), but these inputs are used to find the closest county. The used county for searching is available in the query response (check the DataLocation node)
Response
Returns a Sources
Arguments
Name | Description |
---|---|
input - SourceSearchInput!
|
Example
Query
query sources($input: SourceSearchInput!) {
sources(input: $input) {
nodes {
state
county
csiDivision
csiDivisionNumber
csiDivisionName
csiSection
csiTitle
nahbDivision
nahbDivisionDescription
nahbCode
nahbCodeDescription
categoryPath
properties {
name
value
uom
quantity
}
description
imagesUrls
nestedSources {
parentId
quantity
seqNum
formula
id
sourceType
name
uom
inputUOM
outputUOM
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
productionRate
calculatedUnitRateUsdCents
imagesUrls
description
externalProductUrl
csiDivision
csiSection
csiTitle
stockQuantity
}
knownUoms {
uom
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
productionRate
calculatedUnitRateUsdCents
}
id
sourceType
name
uom
inputUOM
outputUOM
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
laborSourceId
laborName
productionRate
calculatedUnitRateUsdCents
externalProductUrl
stockQuantity
}
pageInfo {
hasNextPage
}
dataLocation {
countyName
stateName
}
totalCount
}
}
Variables
{"input": SourceSearchInput}
Response
{
"data": {
"sources": {
"nodes": [Source],
"pageInfo": OffsetBasedPageInfo,
"dataLocation": DataLocation,
"totalCount": 987
}
}
}
sourcesBatch
Description
Retrieve a batch of sources by id, type and location. The max batch size is 1000
Response
Returns [Source!]
Arguments
Name | Description |
---|---|
input - SourceBatchInput!
|
Example
Query
query sourcesBatch($input: SourceBatchInput!) {
sourcesBatch(input: $input) {
state
county
csiDivision
csiDivisionNumber
csiDivisionName
csiSection
csiTitle
nahbDivision
nahbDivisionDescription
nahbCode
nahbCodeDescription
categoryPath
properties {
name
value
uom
quantity
}
description
imagesUrls
nestedSources {
parentId
quantity
seqNum
formula
id
sourceType
name
uom
inputUOM
outputUOM
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
productionRate
calculatedUnitRateUsdCents
imagesUrls
description
externalProductUrl
csiDivision
csiSection
csiTitle
stockQuantity
}
knownUoms {
uom
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
productionRate
calculatedUnitRateUsdCents
}
id
sourceType
name
uom
inputUOM
outputUOM
materialRateUsdCents
laborRateUsdCents
burdenedLaborRateUsdCents
laborSourceId
laborName
productionRate
calculatedUnitRateUsdCents
externalProductUrl
stockQuantity
}
}
Variables
{"input": SourceBatchInput}
Response
{
"data": {
"sourcesBatch": [
{
"state": "Colorado",
"county": "Denver County",
"csiDivision": "DIVISION09",
"csiDivisionNumber": "09",
"csiDivisionName": "Finishes",
"csiSection": "02 23 20.10",
"csiTitle": "Gypsum Plaster",
"nahbDivision": "02000",
"nahbDivisionDescription": "Excavation and Foundation",
"nahbCode": "02100",
"nahbCodeDescription": "Footings and Foundation",
"categoryPath": ["Interiors"],
"properties": [SourceProperty],
"description": "4.5 gal. All Purpose Ready-Mixed Joint Compound is commonly used to fill in the gaps between pieces of drywall. The joint compound is mixed with water to create a paste-like substance that can be spread over the drywall using a putty knife. The joint compound will dry to a smooth, white finish that can be sanded down if necessary.",
"imagesUrls": [
"https://1b-production-product-images.s3.us-west-2.amazonaws.com/images/fe210500-76f7-4a46-9907-27b57db3b48e/0.png"
],
"nestedSources": [NestedSource],
"knownUoms": [KnownUom],
"id": 4,
"sourceType": "MATERIAL",
"name": "Drywall: Walls 12' 1/2\" Regular Drywall",
"uom": "LF",
"inputUOM": "xyz789",
"outputUOM": "abc123",
"materialRateUsdCents": 2,
"laborRateUsdCents": 2121,
"burdenedLaborRateUsdCents": 3147,
"laborSourceId": "363e5fa5-c2f1-45a7-a538-0ea40743c853",
"laborName": "Drywall and Ceiling Tile Installer",
"productionRate": 100,
"calculatedUnitRateUsdCents": 33,
"externalProductUrl": "xyz789",
"stockQuantity": 123
}
]
}
}
sourcesCounts
Description
Return the counts of available sources for the query input.
Response
Returns a SourcesCountPayload
Arguments
Name | Description |
---|---|
input - SourceSearchInput!
|
Example
Query
query sourcesCounts($input: SourceSearchInput!) {
sourcesCounts(input: $input) {
totalCount
counts {
supplierName
totalCount
supplierLogoUrl
}
}
}
Variables
{"input": SourceSearchInput}
Response
{
"data": {
"sourcesCounts": {
"totalCount": 123,
"counts": [SourcesCount]
}
}
}
uoms
Description
Used to retrieve the list of all the supported units of measure that can be returned by the API.
Response
Returns [UoM!]!
Example
Query
query uoms {
uoms {
name
description
type
definition
}
}
Response
{
"data": {
"uoms": [
{
"name": "LF",
"description": "Linear Feet",
"type": "D1",
"definition": "1 ft"
}
]
}
}
Types
Boolean
Description
The Boolean
scalar type represents true
or false
.
CategoryPathSearchInput
Fields
Input Field | Description |
---|---|
sourceType - SourceType
|
Type of Source to search |
state - state_String_minLength_1
|
State for localized cost data |
county - county_String_minLength_1
|
County for localized cost data |
coordinate - Coordinate
|
Term to search |
zipcode - String
|
|
searchTerm - String
|
|
categoryPath - [String]
|
Category path to search |
page - PageInfoInput
|
|
sortBy - SortInfoInput
|
|
filter - SourceFilterInput
|
Example
{
"sourceType": "MATERIAL",
"state": "Colorado",
"county": "Denver County",
"coordinate": Coordinate,
"zipcode": "80123",
"searchTerm": "5/8' 4X8' Type-X Drywall",
"categoryPath": ["Drywall: Hang, Tape, Finish", "Gypsum Board", "Type X"],
"page": PageInfoInput,
"sortBy": SortInfoInput,
"filter": SourceFilterInput
}
CategoryTreeItem
Description
Simple category tree item with id and name
Example
{
"id": "Plumbing, Rough-In > ABS Pipe",
"name": "Drywall: Hang, Tape, Finish",
"hasSubCategories": false
}
CategoryTreeItems
Fields
Field Name | Description |
---|---|
nodes - [CategoryTreeItem!]
|
|
pageInfo - OffsetBasedPageInfo!
|
|
dataLocation - DataLocation
|
Example
{
"nodes": [CategoryTreeItem],
"pageInfo": OffsetBasedPageInfo,
"dataLocation": DataLocation
}
Coordinate
DataLocation
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
4
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
KnownUom
Description
Contains the calculated rates of a source when using for a Unit of measure. See also: Source.materialRateUsdCents, Source.laborRateUsdCents, Source.productionRate, Source.calculatedUnitRateUsdCents
Fields
Field Name | Description |
---|---|
uom - String!
|
Unit of Measure such as each, linear foot, square feet, etc. |
materialRateUsdCents - Int
|
The cost of one unit of measure of this material in USD cents. |
laborRateUsdCents - Int
|
The labor cost in USD cents. The labor cost is per hour for all source types, except Assemblies. For assemblies the labor cost is per unit. |
burdenedLaborRateUsdCents - Int
|
The burdened labor cost in USD cents. Burdened Labor Rate includes the hourly base rate for an employee in addition to added expenses like insurance, workers comp, and legally required benefits like social security |
productionRate - Float
|
The amount of unit that can be installed per hour. |
calculatedUnitRateUsdCents - Int!
|
The calculated unit rate in USD cents using the formula: Material rate + (Labor rate / Prod.rate). For assemblies the calculated cost is Material rate + Labor rate, because the Labor Rate is unit based (see laborRateUsdCents property). |
Example
{
"uom": "SF",
"materialRateUsdCents": 40,
"laborRateUsdCents": 1917,
"burdenedLaborRateUsdCents": 2844,
"productionRate": 12.5,
"calculatedUnitRateUsdCents": 268
}
NestedSource
Description
Represents a source used to create another source like a material of an assembly. These will be returned on a source of type Assembly only when requested.
Fields
Field Name | Description |
---|---|
parentId - ID!
|
|
quantity - Float
|
The amount of nested source used to build the parent source. |
seqNum - Int
|
Used to sort the nested sources of a parent source. |
formula - String
|
The formula is used to calculate the amount of nested source based on the parent's properties. Properties are referenced by the property name from the parent assemblies list of properties. Properties are designated by wrapping the name in curly braces i.e. {Property Name} . |
id - ID!
|
|
sourceType - SourceType!
|
|
name - String!
|
|
uom - String!
|
|
inputUOM - String
|
Deprecated in favor of UOM field |
outputUOM - String
|
Deprecated in favor of UOM field |
materialRateUsdCents - Int
|
|
laborRateUsdCents - Int
|
|
burdenedLaborRateUsdCents - Int
|
|
productionRate - Float
|
|
calculatedUnitRateUsdCents - Int!
|
|
imagesUrls - [String!]
|
|
description - String
|
|
externalProductUrl - String
|
|
csiDivision - String
|
|
csiSection - String
|
|
csiTitle - String
|
|
stockQuantity - Int
|
Example
{
"parentId": "4",
"quantity": 987.65,
"seqNum": 123,
"formula": "({Wall Length}*{Wall Height}) + 1 LF",
"id": 4,
"sourceType": "MATERIAL",
"name": "xyz789",
"uom": "xyz789",
"inputUOM": "xyz789",
"outputUOM": "xyz789",
"materialRateUsdCents": 987,
"laborRateUsdCents": 987,
"burdenedLaborRateUsdCents": 123,
"productionRate": 123.45,
"calculatedUnitRateUsdCents": 123,
"imagesUrls": ["abc123"],
"description": "abc123",
"externalProductUrl": "xyz789",
"csiDivision": "abc123",
"csiSection": "xyz789",
"csiTitle": "xyz789",
"stockQuantity": 123
}
Node
Fields
Field Name | Description |
---|---|
id - ID!
|
Possible Types
Node Types |
---|
Example
{"id": "4"}
OffsetBasedConnection
Fields
Field Name | Description |
---|---|
nodes - [Node!]
|
|
pageInfo - OffsetBasedPageInfo!
|
Possible Types
OffsetBasedConnection Types |
---|
Example
{
"nodes": [Node],
"pageInfo": OffsetBasedPageInfo
}
OffsetBasedPageInfo
Fields
Field Name | Description |
---|---|
hasNextPage - Boolean!
|
Example
{"hasNextPage": true}
PageInfoInput
Fields
Input Field | Description |
---|---|
offset - offset_Int_min_0
|
|
limit - limit_Int_min_1_max_1000
|
Example
{
"offset": offset_Int_min_0,
"limit": limit_Int_min_1_max_1000
}
SortInfoInput
Fields
Input Field | Description |
---|---|
type - SortType
|
Example
{"type": "NAME"}
SortType
Values
Enum Value | Description |
---|---|
|
Sort by item name (The default) |
|
Sort by the match score (input filters vs item) |
|
Sort by item rate |
Example
"NAME"
Source
Description
A source can represent a material, an assembly, etc. See the SourceType enum
Fields
Field Name | Description |
---|---|
state - String
|
|
county - String
|
|
csiDivision - String
|
|
csiDivisionNumber - String
|
|
csiDivisionName - String
|
|
csiSection - String
|
|
csiTitle - String
|
|
nahbDivision - String
|
|
nahbDivisionDescription - String
|
|
nahbCode - String
|
|
nahbCodeDescription - String
|
|
categoryPath - [String]
|
|
properties - [SourceProperty]
|
|
description - String
|
Describes from what the source is made, how it can be used, what is included at the price, etc. |
imagesUrls - [String!]
|
A list of urls to the item's images. |
nestedSources - [NestedSource]
|
One source can be made of another sources like assemblies are made of a set of materials |
knownUoms - [KnownUom]
|
A list of unit of measures available to the source. Each item contains the calculated rates for the respective UOM |
id - ID!
|
|
sourceType - SourceType!
|
|
name - String!
|
|
uom - String!
|
The Unit of measure of the item. |
inputUOM - String
|
Deprecated in favor of UOM field |
outputUOM - String
|
Deprecated in favor of UOM field |
materialRateUsdCents - Int
|
The material cost of one unit in USD cents |
laborRateUsdCents - Int
|
The labor cost in USD cents. The labor cost is per hour for all source types, except Assemblies. For assemblies the labor cost is per unit. |
burdenedLaborRateUsdCents - Int
|
The burdened labor cost in USD cents. Burdened Labor Rate includes the hourly base rate for an employee in addition to added expenses like insurance, workers comp, and legally required benefits like social security. |
laborSourceId - String
|
The source id of the labor from where the labor rate is taken. |
laborName - String
|
The name of the labor from where the labor rate is taken. |
productionRate - Float
|
A decimal number representing the amount of unit that can be installed per hour. |
calculatedUnitRateUsdCents - Int!
|
The calculated unit rate in USD cents using the formula: Material rate + (Labor rate / Prod.rate). For assemblies the calculated cost is Material rate + Labor rate, because the Labor Rate is unit based (see laborRateUsdCents property). |
externalProductUrl - String
|
The product URL in an external platform |
stockQuantity - Int
|
The number of items available for ordering at the specified store |
Example
{
"state": "Colorado",
"county": "Denver County",
"csiDivision": "DIVISION09",
"csiDivisionNumber": "09",
"csiDivisionName": "Finishes",
"csiSection": "02 23 20.10",
"csiTitle": "Gypsum Plaster",
"nahbDivision": "02000",
"nahbDivisionDescription": "Excavation and Foundation",
"nahbCode": "02100",
"nahbCodeDescription": "Footings and Foundation",
"categoryPath": ["Interiors"],
"properties": [SourceProperty],
"description": "4.5 gal. All Purpose Ready-Mixed Joint Compound is commonly used to fill in the gaps between pieces of drywall. The joint compound is mixed with water to create a paste-like substance that can be spread over the drywall using a putty knife. The joint compound will dry to a smooth, white finish that can be sanded down if necessary.",
"imagesUrls": [
"https://1b-production-product-images.s3.us-west-2.amazonaws.com/images/fe210500-76f7-4a46-9907-27b57db3b48e/0.png"
],
"nestedSources": [NestedSource],
"knownUoms": [KnownUom],
"id": "4",
"sourceType": "MATERIAL",
"name": "Drywall: Walls 12' 1/2\" Regular Drywall",
"uom": "LF",
"inputUOM": "xyz789",
"outputUOM": "xyz789",
"materialRateUsdCents": 2,
"laborRateUsdCents": 2121,
"burdenedLaborRateUsdCents": 3147,
"laborSourceId": "363e5fa5-c2f1-45a7-a538-0ea40743c853",
"laborName": "Drywall and Ceiling Tile Installer",
"productionRate": 100,
"calculatedUnitRateUsdCents": 33,
"externalProductUrl": "abc123",
"stockQuantity": 987
}
SourceBatchInput
Fields
Input Field | Description |
---|---|
items - [SourceBatchInputItem!]!
|
|
state - state_String_minLength_1
|
|
county - county_String_minLength_1
|
|
coordinate - Coordinate
|
|
zipcode - String
|
Example
{
"items": [SourceBatchInputItem],
"state": "Colorado",
"county": "Denver County",
"coordinate": Coordinate,
"zipcode": "80123"
}
SourceBatchInputItem
Fields
Input Field | Description |
---|---|
sourceId - ID!
|
Example
{"sourceId": "4"}
SourceFilterInput
SourceProperty
Description
Represents a property of one Source. Samples: Wall Height, Stud Spacing, etc.
Example
{"name": "Wall Length", "value": 1, "uom": "LF", "quantity": true}
SourceSearchInput
Fields
Input Field | Description |
---|---|
sourceType - SourceType
|
|
state - state_String_minLength_1
|
|
county - county_String_minLength_1
|
|
coordinate - Coordinate
|
|
zipcode - String
|
|
searchTerm - String
|
|
categoryPath - [String]
|
|
page - PageInfoInput
|
|
sortBy - SortInfoInput
|
|
filter - SourceFilterInput
|
Example
{
"sourceType": "MATERIAL",
"state": "Colorado",
"county": "Denver County",
"coordinate": Coordinate,
"zipcode": "80123",
"searchTerm": "drywall",
"categoryPath": ["Interiors"],
"page": PageInfoInput,
"sortBy": SortInfoInput,
"filter": SourceFilterInput
}
SourceType
Description
a
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"MATERIAL"
Sources
Description
A paginated list of Source types
Fields
Field Name | Description |
---|---|
nodes - [Source!]
|
|
pageInfo - OffsetBasedPageInfo!
|
|
dataLocation - DataLocation
|
|
totalCount - Int
|
Example
{
"nodes": [Source],
"pageInfo": OffsetBasedPageInfo,
"dataLocation": DataLocation,
"totalCount": 987
}
SourcesCount
Description
Response for sourcesCount
Example
{
"supplierName": "abc123",
"totalCount": 987,
"supplierLogoUrl": "xyz789"
}
SourcesCountPayload
Description
Response for sourcesCount
Fields
Field Name | Description |
---|---|
totalCount - Int
|
TODO: Remove |
counts - [SourcesCount!]!
|
Example
{"totalCount": 987, "counts": [SourcesCount]}
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
UoM
UoMType
Description
Represents a unit of measure
Values
Enum Value | Description |
---|---|
|
For example "EA" or "BOX" |
|
For example "IN" or "LF" |
|
For example "SQIN" or "SF" |
|
For example "CUIN" or "GAL" |
|
For example "LBS" or "OZ" |
|
For example "DY" or "MO" |
Example
"ITEM"
county_String_minLength_1
Example
county_String_minLength_1
limit_Int_min_1_max_1000
Example
limit_Int_min_1_max_1000
offset_Int_min_0
Example
offset_Int_min_0
state_String_minLength_1
Example
state_String_minLength_1