How to curate a newsletter with a news API
Build a repeatable pipeline that selects fresh, high-quality articles on your topic and hands them to your newsletter tool
Written by Beatrice Riddick
July 6, 2026
How to curate a newsletter with a news API
To curate a newsletter, run one saved APITube query per issue: scope it to your topic, limit it to the days since the last issue with published_at.start, and gate quality with source.rank.opr.min. The response is the issue’s candidate list — every article with its title, link, summary and source — ready for a human pick or an automated template. The same query, re-run weekly, is the entire pipeline.
curl -G "https://api.apitube.io/v1/news/everything" \
--data-urlencode "topic.id=industry.crypto_news" \
--data-urlencode "published_at.start=NOW-7DAYS" \
--data-urlencode "source.rank.opr.min=6" \
--data-urlencode "language.code=en" \
--data-urlencode "per_page=25" \
--data-urlencode "api_key=YOUR_API_KEY"
NOW-7DAYS is the relative date syntax, so the window slides automatically — no date arithmetic in your scheduler.
How do you scope the query to your newsletter’s topic?
Pick the narrowest filter that matches how your topic is defined:
- A subject area —
topic.id(likeindustry.crypto_newsabove) or an IPTC category viacategory.id; see how to filter by topic. - A keyword in the headline —
title=electric vehicles; multi-word values need every word to appear. - A company or person beat —
organization.name/person.namematches detected entities rather than raw text, so a “Nvidia this week” section doesn’t miss articles that say “the chipmaker” in the headline.
Filters combine with AND, so topic.id + title gives you “this subject, but only stories about X” — a natural fit for newsletter sections. Run one query per section rather than one broad query you re-sort by hand.
How do you keep the issue high-quality?
Reader trust dies on link rot and content farms, so push quality into the query instead of eyeballing every candidate:
source.rank.opr.min=6sets an authority floor (OPR is 0–10; raise it for a stricter list) — or use the stricter composite flag described in filtering to trusted, high-quality sources.ignore.source.domain=example-tabloid.comdrops up to three publishers your readers dislike, comma-separated.- Wire reprints cluster around one event; fetch the story cluster for a headline you picked and feature the strongest version instead of three copies of the same news.
How do you hand the result to your newsletter tool?
Three integration shapes, cheapest first:
- RSS: append
export=rssand paste the URL into any tool that ingests feeds (most email platforms do) — the API returns the same search as an RSS 2.0 document. See how to export search results as RSS. - JSON: call the API from your build script and render candidates into your template — each article carries
title,href,description,published_atandsource, which is everything an issue block needs. - Spreadsheet triage: the response’s
exportblock includes ready CSV/XLSX URLs, so an editor can pick winners in a sheet before layout.
The full list of filters you can bake into the saved query is in the official News API parameter reference.
Common Questions
- How do I avoid repeating an article across two issues?
- How many requests does a weekly newsletter cost?
- Can I get article summaries for the issue blurbs?
How do I avoid repeating an article across two issues?
Anchor the window to your publishing cadence: a weekly issue queries published_at.start=NOW-7DAYS at the same hour each week, so consecutive windows touch without overlapping. If your schedule slips, store the published_at of the newest article you featured and pass it as the exact published_at.start of the next run.
How many requests does a weekly newsletter cost?
One search that returns articles counts as one request against your quota, so a five-section weekly newsletter costs about five requests per issue — around twenty per month, which fits comfortably in any plan. Requests that return zero articles are not charged. See what counts as a request.
Can I get article summaries for the issue blurbs?
Yes — each article object already includes a summary produced during processing, alongside description. Render it as the blurb draft and edit by hand where it matters; for tighter payloads, request only the fields you use with the fl parameter — see how to select specific response fields.