Ship SellnBuy on your site in an afternoon.
Pick your site, paste your API key, and copy the snippet. Every code block on this page is rewritten live with your key + country so paste-to-production is one click. All feeds carry SpLink short URLs and QR codes per item.
YOUR_SITE_KEY. Paste your key above and every block updates. Anonymous requests still work with a lower rate limit — the widget key covers general embeds.1 · The iframe (easiest — 30 seconds)
Drop this into any HTML page, WordPress Custom HTML block, Squarespace Code block, Framer or Webflow embed. No JS to write. Auto-refreshes on the visitor's side.
<iframe
src="https://sellnbuy.com/api/local/public/feed/embed?limit=6&country_code=US&theme=light&key=YOUR_SITE_KEY"
width="100%" height="480" style="border:0"
loading="lazy" referrerpolicy="no-referrer-when-downgrade"
title="Latest SellnBuy listings"></iframe>X-Frame-Options: ALLOWALL +frame-ancestors * so any origin can host it.1a · WordPress / Squarespace / Ghost
Same iframe — just wrapped in a comment so your CMS's block picker doesn't complain.
<!-- WordPress: paste inside any post/page using the Custom HTML block -->
<iframe
src="https://sellnbuy.com/api/local/public/feed/embed?limit=6&country_code=US&theme=light&key=YOUR_SITE_KEY"
width="100%" height="480" style="border:0"
loading="lazy" referrerpolicy="no-referrer-when-downgrade"
title="Latest SellnBuy listings"></iframe>2 · JSON — full control over the markup
Hit /api/local/public/feed/listings and render your own cards. Every item ships with title, image_url, city, price, short_url and qr_code_url.
// Vanilla JS — drop into any HTML page
async function loadSellnBuyFeed() {
const res = await fetch(
"https://sellnbuy.com/api/local/public/feed/listings?limit=6&country_code=US",
{ headers: { "X-Site-Key": "YOUR_SITE_KEY" } }
);
const data = await res.json();
const root = document.getElementById("sellnbuy-feed");
root.innerHTML = data.items.map(i => `
<a href="${i.short_url || i.permalink}" target="_blank" rel="noopener">
<img src="${i.image_url || ''}" alt="" />
<h3>${i.title}</h3>
<p>${i.city || i.country_code} · ${i.compensation === 'free'
? 'Free' : (i.currency + ' ' + (i.price_minor/100).toFixed(0))}</p>
</a>`).join("");
}
loadSellnBuyFeed();curl -sS "https://sellnbuy.com/api/local/public/feed/listings?limit=6&country_code=US" \
-H "X-Site-Key: YOUR_SITE_KEY" \
| jq '.items[] | {title, short_url, qr_code_url, city}'// React / Next.js — one-file component
import { useEffect, useState } from "react";
export default function SellnBuyFeed() {
const [items, setItems] = useState([]);
useEffect(() => {
fetch("https://sellnbuy.com/api/local/public/feed/listings?limit=6&country_code=US", {
headers: { "X-Site-Key": "YOUR_SITE_KEY" },
})
.then(r => r.json())
.then(d => setItems(d.items || []));
}, []);
return (
<ul style={{display:"grid",gap:12,gridTemplateColumns:"repeat(auto-fill,minmax(180px,1fr))"}}>
{items.map(i => (
<li key={i.id}>
<a href={i.short_url || i.permalink} target="_blank" rel="noopener">
{i.image_url && <img src={i.image_url} alt="" style={{width:"100%",aspectRatio:"4/3",objectFit:"cover"}}/>}
<h4>{i.title}</h4>
<small>{i.city || i.country_code} · {i.short_url}</small>
</a>
</li>
))}
</ul>
);
}3 · RSS 2.0 — for readers, newsletters, Zapier
Pipe the same listings straight into Mailchimp, Feedly, IFTTT or Zapier's 'RSS Feed' trigger. Each item's link is the SpLink short URL so clicks accrue against the sellnbuy tenant.
https://sellnbuy.com/api/local/public/feed/rss?limit=6&country_code=US&key=YOUR_SITE_KEY4 · Bonus: Local News feed
Same key, same auth — get country-scoped Google News RSS via one integration. Used for the SellnBuy homepage 'What's happening near you' strip.
https://sellnbuy.com/api/local/public/feed/news?country_code=US&limit=10&key=YOUR_SITE_KEYEndpoint reference
Full public surface. Base: /api/local/public/feed
| Method | Path | Purpose |
|---|---|---|
| GET | /heartbeat | Active-listing count, active countries, latest timestamp |
| GET | /listings | Paginated marketplace items with short_url + qr_code_url |
| GET | /rss | Same feed as RSS 2.0 |
| GET | /news | Location-scoped Google News wrapper |
| GET | /embed | Drop-in HTML widget (iframe-embeddable) |
Cache-Control: public, max-age=60 andAccess-Control-Allow-Origin: *. Country-scope keys pincountry_code server-side; global-scope keys accept?country_code= overrides.Auth & rate limits
Simple by design. No OAuth, no HMAC — just a shared secret in a header.
- Header:
X-Site-Key: <your key>— or pass?key=in the query for iframes. - Country lock: keys like
usapulse,indias,keralaare country-scoped and always return that country's feed. - Global keys:
worldpulse,foodpulse,naturepulse,travelerpulsecan pass?country_code=XXper request. - Rate limits: 600 req/min per key (300 for the anonymous widget). Bursts within a minute get a
429. - Losing a key: ask the SocialPulse team — they can rotate a single key without disrupting the others.
Need a key?
Every geographic sister site already has one minted at SellnBuy boot time. Contact the SocialPulse team or the SellnBuy admin at hello@sellnbuy.com with your site slug and we'll DM you the current secret.
