Skip to main content
GET
The Catalog search endpoint provides full access to the Portal.io catalog with rich filtering options. You can narrow results by free-text search, category hierarchy (CategoryId, CategoryIds, ParentCategoryId, ParentCategoryIds), brand, supplier, industry, price range, stock availability, favorites, company-approved items, and item type. CategoryId and CategoryIds are mutually exclusive, as are ParentCategoryId and ParentCategoryIds. When SearchText is omitted it is treated as an empty string. ItemType defaults to Part. Set IsCompanyApproved=true to return only items your company has approved. It composes with the other filters. Combined with IsFavorite=true, it returns items that are both a favorite and company-approved.
The Catalog endpoints require separate authorization. Contact your Portal.io representative to confirm your account has catalog API access enabled.

Authorizations

X-MSS-API-APPID
string
header
required

Portal application identifier used as part of HMAC-authenticated API requests.

X-MSS-API-USERKEY
string
header
required

Portal user API key used together with the HMAC signature headers.

X-MSS-CUSTOM-DATE
string
header
required

Timestamp header included in the signed request to prevent replay attacks.

X-MSS-SIGNATURE
string
header
required

HMAC-SHA256 signature for the request, calculated over the canonical string defined in the authentication docs.

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json

Query Parameters

SearchText
null | string

Free-text search matched against item name, brand, and description. Treated as an empty string when omitted.

ParentCategoryId
integer<int32>

Filter by a single industry-level parent category ID. Mutually exclusive with ParentCategoryIds.

ParentCategoryIds
integer[]

Filter by one or more industry-level parent category IDs. Mutually exclusive with ParentCategoryId.

CategoryId
integer<int32>

Filter by a single category ID from the category tree. Mutually exclusive with CategoryIds.

CategoryIds
integer[]

Filter by one or more category IDs from the category tree. Mutually exclusive with CategoryId.

Brands
string[]

Filter by one or more brand names.

Suppliers
string[]

Filter by one or more supplier names.

Industries
integer[]

Filter by one or more industry IDs.

IsInStock
boolean

When true, returns only items currently in stock.

IsFavorite
boolean

When true, returns only items you have marked as favorites. Composes with IsCompanyApproved: setting both returns items that are both a favorite and company-approved.

IsCompanyApproved
boolean

When true, returns only items your company has approved. Composes with IsFavorite: setting both returns items that are both a favorite and company-approved.

IsAuthorized
boolean

When true, returns only items available from suppliers your company is authorized to purchase from.

IsDiscontinued
boolean

When true, returns only discontinued items.

IsIndustrialFavorite
boolean

When true, returns items marked popular across the industry, not limited to items favorited by your company.

MinMsrp
number<double>

Filter for products with an MSRP (of the users current country currency. If it doesn't exist then USD MSRP is used.) greater than this amount.

MaxMsrp
number<double>

Filter for products with an MSRP (of the users current country currency. If it doesn't exist then USD MSRP is used.) less than this amount.

PageNumber
integer<int32>

Page number of results to retrieve, used together with PageSize.

PageSize
integer<int32>

Limit the number of results

IncludeImageUrl
boolean

When true, includes primaryImageUrl in the response for each item.

ItemType
enum<string>

Type of item to search. Defaults to Part.

Available options:
Part,
Labor,
CustomItem,
Fee
InUseOnly
boolean

Response

Success

Catalog search response

totalItemCount
integer<int32>
required

Total number of matching results across all pages. Populated for every ItemType.

processingTimeMS
integer<int32>
required

Search processing time in milliseconds. Only measured for ItemType Part (the default); 0 for Labor and CustomItem searches.

favoriteItemCount
integer<int32>
required

Total number of favorite items matching the search criteria. Populated only when ItemType is Part (the default). Also 0 when IsCompanyApproved=true on the request, regardless of IsFavorite.

items
PublicBrowsePartModel · object[]

Catalog part items matching the search criteria. Populated only when ItemType is Part (the default); empty for Labor and CustomItem searches.

favoriteItems
PublicBrowsePartModel · object[]

Favorite catalog part items matching the search criteria. Populated only when ItemType is Part (the default). Also empty when IsCompanyApproved=true on the request, regardless of IsFavorite.

categoryFacets
PublicFacetModel · object[]

Category facet values with result counts. Populated only when ItemType is Part (the default); empty for Labor and CustomItem searches.

brandFacets
PublicFacetModel · object[]

Brand facet values with result counts. Populated only when ItemType is Part (the default); empty for Labor and CustomItem searches.

supplierFacets
PublicFacetModel · object[]

Supplier facet values with result counts. Populated only when ItemType is Part (the default); empty for Labor and CustomItem searches.

labors
LibraryModel · object[]

Labor library items matching the search criteria. Populated only when ItemType is Labor; empty otherwise.

customItems
PublicLibraryModel · object[]

Custom library items matching the search criteria. Populated only when ItemType is CustomItem; empty otherwise.