A business quote for every day
One short line about writing, clients, focus or growth — rotated automatically at midnight UTC, available as JSON, and free to republish with a link.
Every line here was written for this site. No misattributed aphorisms, no quote-site recycling — see how the rotation works.
The next seven days
The rotation is date-based, so tomorrow's quote is knowable today. Useful if you schedule posts in advance.
Refresh beats rewrite more often than agencies admit.
An honest comparison page compounds for years.
A small audience with money beats a large audience with none.
Distribution is a skill, not an afterthought.
Design the page for the skim, then reward the read.
One strong page can carry a weak section. Not the reverse.
Search engines read structure. Readers read the first sentence.
Free JSON API
No key, no sign-up, CORS enabled. Endpoints return JSON and are refreshed as the day changes in UTC.
| Endpoint | Returns | Cache |
|---|---|---|
GET /api/quote/today | Today's quote, date, topic and permalink | 5 minutes |
GET /api/quote/random | A random quote from the set | No cache |
GET /api/quote/2026-12-25 | The quote for any date (YYYY-MM-DD) | 5 minutes |
GET /api/quote/all?limit=30&offset=0 | The whole set, paginated (max 120 per call) | 1 hour |
Try it
# today curl https://brandpromotions.shop/api/quote/today # a specific date curl https://brandpromotions.shop/api/quote/2026-12-25 # the full set curl "https://brandpromotions.shop/api/quote/all?limit=120"
Response shape
{
"date": "2026-10-25",
"quote": "Never publish a claim you cannot show.",
"author": "BrandPromotions",
"topic": "growth",
"slug": "never-publish-a-claim-you-cannot",
"permalink": "https://brandpromotions.shop/daily-quote/#never-publish-a-claim-you-cannot",
"source": "https://brandpromotions.shop/daily-quote/",
"license": "Free to quote or republish with attribution and a link"
}
Use it in a page
fetch('https://brandpromotions.shop/api/quote/today')
.then(function (r) { return r.json(); })
.then(function (data) {
document.querySelector('#quote').textContent = data.quote;
document.querySelector('#credit').href = data.permalink;
});
Attribution is the only condition: keep the author name and link to the permalink or to this page. The text is ours, so there is no third-party copyright to clear.
Embed the quote of the day
Paste this where you want the card to appear. It renders in the reader's browser, updates itself daily and adds no tracking.
<script src="https://brandpromotions.shop/daily-quote/embed.js" async></script> <div data-bp-quote></div>
Without the div the widget appends itself directly after the script tag. Add data-theme="dark" for a dark card. Remove the credit line and it will still work — but the licence asks you not to.
How the rotation works
There are 120 lines in the set. The quote for a given day is chosen by that day's number since 1 January 1970, modulo 120. The result is deterministic: the same date always returns the same quote, every date returns a different one, and the whole set repeats after 120 days.
That is deliberately unglamorous. A random pick would look fresher but could repeat two days running, and it would break the promise that a quote stays stable once a reader has linked to it. Deterministic rotation gives you a citable permalink.
Why write the lines ourselves
Most "quote of the day" feeds recycle the same twenty attributions, half of them wrong. Writing 120 short lines for this site took less time than checking the provenance of borrowed ones, and it means the credit is accurate.
If you want the whole set as a file, the archive lists every quote with a copy button, or use /api/quote/all.