Vendor Products

Find products associated with a single vendor.

Retrieve products associated with a specific vendor domain. Use this to power vendor profile pages and product catalogs.

Base URL: https://api.salescaddy.ai/api


Endpoint

GET /vendors/{vendorDomain}/products

Path parameters

NameTypeRequiredDescription
vendorDomainstringYesVendor domain (e.g. microsoft.com)

Query parameters

NameTypeRequiredDefaultDescription
productNamestringNoFilter by product name (contains)
pageintNo0Page index (0‑based)
sizeintNo20Page size (max 200)

Example — List products by vendor

curl -sS "https://api.salescaddy.ai/api/vendors/microsoft.com/products?page=0&size=10" \
  -H "Authorization: Bearer $TOKEN"
const url = "https://api.salescaddy.ai/api/vendors/microsoft.com/products?page=0&size=10";
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}` } });
console.log(await res.json());
import os, requests
r = requests.get("https://api.salescaddy.ai/api/vendors/microsoft.com/products",
                 params={"page":0,"size":10},
                 headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
print(r.json())
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
var res = await http.GetAsync("https://api.salescaddy.ai/api/vendors/microsoft.com/products?page=0&size=10");
Console.WriteLine(await res.Content.ReadAsStringAsync());

Sample response (trimmed):

{
  "totalPages": 100,
  "totalElements": 5000,
  "content": [
    {
      "id": "prod_office365",
      "name": "Microsoft 365",
      "description": "Cloud productivity suite",
      "logo": "https://logo.example/m365.svg",
      "category": "Productivity",
      "features": ["Email","Docs","Chat"],
      "reviewCount": 1283,
      "starRating": 4.6,
      "avgRating": 4.5,
      "vendor": { "id": "ven_microsoft", "name": "Microsoft", "domain": "microsoft.com" },
      "categoryId": "cat_productivity"
    },
    {
      "id": "prod_azure",
      "name": "Microsoft Azure",
      "description": "Cloud platform & services",
      "logo": "https://logo.example/azure.svg",
      "category": "IaaS/PaaS",
      "features": ["Compute","Storage","Networking"],
      "reviewCount": 842,
      "starRating": 4.5,
      "avgRating": 4.4,
      "vendor": { "id": "ven_microsoft", "name": "Microsoft", "domain": "microsoft.com" },
      "categoryId": "cat_cloud_platforms"
    }
  ]
}

Notes

  • Use productName to quickly narrow large catalogs (case-insensitive contains).
  • Pagination defaults are page=0, size=20; prefer multiple pages over very large size.
  • IDs (productId, categoryId) can be reused across other endpoints (search, related, usage metrics).

Filtering by product name

curl -sS "https://api.salescaddy.ai/api/vendors/microsoft.com/products?productName=azure&page=0&size=10" \
  -H "Authorization: Bearer $TOKEN"
const url = "https://api.salescaddy.ai/api/vendors/microsoft.com/products?productName=azure&page=0&size=10";
console.log(await (await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}` } })).json());
r = requests.get("https://api.salescaddy.ai/api/vendors/microsoft.com/products",
                 params={"productName":"azure","page":0,"size":10},
                 headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
print(r.json())
var res = await http.GetAsync("https://api.salescaddy.ai/api/vendors/microsoft.com/products?productName=azure&page=0&size=10");
Console.WriteLine(await res.Content.ReadAsStringAsync());

Errors

CodeMeaningHow to fix
400Bad requestValidate page/size and query types
401UnauthorizedProvide/refresh Bearer token
404Not foundUnknown vendorDomain
429Rate limit exceededRetry with exponential backoff
500Internal server errorRetry later; contact support if persistent