Skip to main content
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, 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.
The Catalog endpoints require separate authorization. Contact your Portal.io representative to confirm your account has catalog API access enabled.

Request

GET /public/catalog

Headers

Accept
string
required
Must be application/json.
X-MSS-API-APPID
string
required
Your API Application Key.
X-MSS-API-USERKEY
string
required
Your User API Key.
X-MSS-CUSTOM-DATE
string
required
Current UTC timestamp in RFC 7231 format (e.g. Mon, 06 Apr 2026 00:22:19 GMT).
X-MSS-SIGNATURE
string
required
HMAC-SHA256 signature of the canonical request, Base64-encoded.

Query Parameters

SearchText
string
Free-text search string matched against item names, brands, and descriptions. Treated as empty string when omitted.
CategoryId
integer
Filter by a single category ID. Mutually exclusive with CategoryIds.
CategoryIds
string
Comma-separated list of category IDs to filter by. Mutually exclusive with CategoryId.
ParentCategoryId
integer
Filter by a single parent category ID. Mutually exclusive with ParentCategoryIds.
ParentCategoryIds
string
Comma-separated list of parent category IDs. Mutually exclusive with ParentCategoryId.
ItemType
string
Type of item to return. One of Part, Labor, or CustomItem. Defaults to Part.
IsFavorite
boolean
When true, returns only items marked as favorites in your account.
IsInStock
boolean
When true, returns only items currently in stock.
PageNumber
integer
1-based page index. Defaults to 1. Must be 0 or greater — negative values return a 400 error.
PageSize
integer
Number of items per page. Defaults to 10.

Response

200 Success

items
array
Array of catalog item objects matching the search criteria.
itemCount
integer
Total number of items matching the query (across all pages).

Error Codes

CodeMeaning
401Not authorized. Your HMAC signature was incorrect or credentials are invalid.
402An active Portal.io subscription is required to use this endpoint.
403Your user account does not have permission for this API call.
500Internal server error.

Example

curl -i -X GET \
  'https://api.portal.io/public/catalog?SearchText=receiver&PageNumber=1&PageSize=10' \
  -H 'Accept: application/json' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE'
{
  "items": [
    {
      "id": 8821,
      "brand": "Denon",
      "model": "AVR-X3800H",
      "shortDescription": "9.4-Channel 105W 8K AV Receiver",
      "primaryImageUrl": "https://images.portal.io/catalog/8821/primary.jpg",
      "parentCategoryId": 12,
      "categoryId": 47,
      "categories": ["Audio", "AV Receivers"],
      "isFavorite": false,
      "isDiscontinued": false,
      "msrp": {
        "msrpUsd": 1299.00,
        "value": 1299.00,
        "regularValue": 1299.00,
        "isCustom": false,
        "currency": { "code": "USD", "symbol": "$" },
        "lastModifiedDate": "2026-01-15T00:00:00Z"
      },
      "defaultCost": {
        "supplierName": "D&H Distributing",
        "supplierSku": "AVR-X3800H",
        "value": 975.00,
        "isInStock": true,
        "isPromo": false,
        "currency": { "code": "USD", "symbol": "$" }
      }
    }
  ],
  "itemCount": 1
}