Search vendors by company name or domain.
Discover vendors by name or domain, then drill into each vendor’s product catalog.
Base URL: https://api.salescaddy.ai/api
List vendors
Endpoint: GET /vendors
Query parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
vendor | string | No | — | Vendor name or domain (e.g. microsoft.com , Microsoft ) |
fuzzy | boolean | No | false | Enable non‑exact matching |
page | int | No | 0 | Page index (0‑based) |
size | int | No | 20 | Page size (max 200) |
Example — List vendors
curl -sS "https://api.salescaddy.ai/api/vendors?vendor=microsoft.com&fuzzy=false&page=0&size=10" \
-H "Authorization: Bearer $TOKEN"
const url = "https://api.salescaddy.ai/api/vendors?vendor=microsoft.com&fuzzy=false&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",
params={"vendor":"microsoft.com","fuzzy":"false","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?vendor=microsoft.com&fuzzy=false&page=0&size=10");
Console.WriteLine(await res.Content.ReadAsStringAsync());
Sample response (trimmed):
{
"totalPages": 2,
"totalElements": 12,
"content": [
{ "id": "ven_microsoft", "name": "Microsoft", "domain": "microsoft.com" },
{ "id": "ven_microsoft-azure", "name": "Microsoft Azure", "domain": "azure.microsoft.com" }
]
}
Notes
- Use
fuzzy=true
to broaden matching for partial names.- Pagination defaults are
page=0
,size=20
; upper bound forsize
is typically 200.
Vendor products
Retrieve products associated with a specific vendor domain.
Endpoint: GET /vendors/{vendorDomain}/products
Path parameters
Name | Type | Required | Description |
---|---|---|---|
vendorDomain | string | Yes | Vendor domain (e.g. microsoft.com ) |
Query parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
productName | string | No | — | Filter by product name |
page | int | No | 0 | Page index |
size | int | No | 20 | Page size (max 200) |
Example — Vendor products
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"
}
]
}
Errors
Code | Meaning | How to fix |
---|---|---|
400 | Bad request | Check query types (page/size int, etc.) |
401 | Unauthorized | Provide/refresh Bearer token |
404 | Not found | Unknown vendorDomain |
429 | Rate limit exceeded | Retry with exponential backoff |
500 | Internal server error | Retry later; contact support if persistent |