Recommendations
Hosts recommending your products on their public gear lists, with their notes and a host-attributed link per product. Built to render on your site.
Recommendations are the hosts who put your products on a public gear list, with what they wrote about each one. Show them on a product page or an athletes page to put real endorsements in front of shoppers.
Each product carries a link that credits the host when a shopper buys through it. Use it in place of url whenever it is present, so the host who sent the sale gets paid for it.
Render the list on your server, never in the browser, since the key must stay secret. Cache it for a few minutes; recommendations change when a host edits a list, not on every page view.
// A server route on your site. Serves the list to your own front end.
let cache = { at: 0, body: null };
export async function GET() {
if (!cache.body || Date.now() - cache.at > 10 * 60 * 1000) {
const res = await fetch('https://api.rendezvu.co/api/brand/v1/recommendations?per_page=24', {
headers: { Authorization: `Bearer ${process.env.RENDEZVU_BRAND_API_KEY}` },
});
if (!res.ok) return new Response('Unavailable', { status: 502 });
cache = { at: Date.now(), body: (await res.json()).data };
}
return Response.json(cache.body);
}This endpoint replaced the keyless public feeds. If you used one, see Retired endpoints.
List recommendations#
Hosts recommending your products on their public gear lists, each with the products, the note they wrote and a host-attributed link. Render it server-side on your site to show who uses your gear.
- pageintegeroptionaldefault 1The page to return, starting at 1. At most 10,000.
- per_pageintegeroptionaldefault 25Items per page, between 1 and 100.
A page of hosts, each with the products of yours they recommend. data is an array of objects with these attributes, and the body carries pagination.
- hostobjectThe host’s public profile.
- idstringThe host’s Rendezvu user id (UUID).
- usernamestringnullableThe host’s handle, as in rendezvu.co/username.
- first_namestringnullableFirst name.
- last_namestringnullableLast name.
- profile_photostringnullableURL of the host’s profile photo.
- titlestringnullableThe host’s headline, such as "Ultrarunner and coach".
- introstringnullableThe host’s public bio.
- mottostringnullableThe host’s motto.
- disciplinestringnullablePrimary discipline, such as trail running.
- specialtystringnullableSpecialty within the discipline.
- locationstringnullableCity-level location. Never an address.
- socialsobjectnullablePublic social links, keyed by network: instagram, tiktok, youtube, strava, website, twitter, facebook, linkedin. Only http(s) URLs the host made public; null when there are none.
- product_countintegerHow many of your products this host recommends.
- productsarray of objectsThe products, as the host listed them.
- idstringThe Rendezvu product id.
- titlestringProduct title.
- urlstringnullableThe canonical product page on your store.
- photo_urlstringnullableProduct photo.
- price_minnumbernullableLowest variant price.
- price_maxnumbernullableHighest variant price.
- host_notestringnullableWhy the host recommends it, in their words.
- variant_notestringnullableThe size or color the host uses.
- codestringnullableThe product’s Rendezvu short code.
- linkstringnullableA link that credits the host for the sale. Use it in place of
urlwhen present.
curl 'https://api.rendezvu.co/api/brand/v1/recommendations?per_page=1' \
-H "Authorization: Bearer $RENDEZVU_BRAND_API_KEY"{
"success": true,
"data": [
{
"host": {
"id": "6f1c2a9e-3b4d-4e1f-9a8b-2c7d5e6f7a81",
"username": "jordanalpine",
"first_name": "Jordan",
"last_name": "Reyes",
"profile_photo": "https://media.rendezvu.co/6f1c2a9e_profile.jpg",
"title": "Ultrarunner and coach",
"intro": "Mountain miles in the Sierra, every season.",
"motto": "Start slow, finish strong.",
"discipline": "Trail running",
"specialty": "Ultramarathon",
"location": "Truckee, CA",
"socials": {
"instagram": "https://instagram.com/jordanalpine"
}
},
"product_count": 1,
"products": [
{
"id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f",
"title": "Ridgeline 30L Pack",
"url": "https://northforkgear.com/products/ridgeline-30",
"photo_url": "https://media.rendezvu.co/5c6d7e8f_ridgeline.jpg",
"price_min": 199,
"price_max": 199,
"host_note": "Carries everything for a 50K with room for a shell.",
"variant_note": "Slate, size M",
"code": "k3x9",
"link": "https://www.rendezvu.co/p-k3x9?h=jordanalpine"
}
]
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total_items": 14,
"total_pages": 14,
"has_next": true,
"has_prev": false
},
"_timing": {
"duration_ms": 42
}
}- RosterThe hosts you actively work with, with their public profile, commission rate and how many of your campaigns each one has joined.
- Versioning and changelogThe API version is in the path. Additive changes ship into v1; a breaking change would ship as a new version. What changed, and when.