Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add apitube/news-api-skills --skill apitube-news-apigit clone --depth 1 https://github.com/apitube/news-api-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/apitube/news-api-skills/apitube-news-api)<a href="https://agentmods.dev/skills/apitube/news-api-skills/apitube-news-api"><img src="https://agentmods.dev/badge/skills/apitube/news-api-skills/apitube-news-api/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/apitube/news-api-skills/apitube-news-api"><img src="https://agentmods.dev/badge/skills/apitube/news-api-skills/apitube-news-api.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00062 | $0.05931 |
| Opus 5 | $0.00031 | $0.02965 |
| Sonnet 5 | $0.00012 | $0.01186 |
| Haiku 4.5 | $0.00006 | $0.00593 |
Grade A, and why
apitube-news-api scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -H "Authorization: Bearer $APITUBE_API_KEY" \ How it starts
The opening of the file, as written. The whole thing — 361 lines — stays where its author put it; the contents beside it link to each section on GitHub.
APITube News API
APITube is a worldwide News API. Use it to search and filter news articles in real time or historically, then read structured fields (title, body, source, sentiment, entities).
- Base URL:
https://api.apitube.io/v1 - Full docs: https://docs.apitube.io/
- OpenAPI spec: https://api-reference.apitube.io/openapi.json
- Get an API key: https://apitube.io/
Authentication
Read the key from the environment variable APITUBE_API_KEY and reference it as $APITUBE_API_KEY.
Never write the key itself into a command, a file or a code sample: a literal key ends up in shell
history, logs and version control. If the variable is unset, ask the user to export it — do not ask
them to paste the key into the chat.
# 1. Authorization header (most secure)
curl -H "Authorization: Bearer $APITUBE_API_KEY" \
"https://api.apitube.io/v1/news/everything?per_page=10"
# 2. X-API-Key header
curl -H "X-API-Key: $APITUBE_API_KEY" \
"https://api.apitube.io/v1/news/everything?per_page=10"
# 3. Query parameter — accepted, but it leaks the key into server logs,
# browser history and referrer headers. Use a header instead.
curl "https://api.apitube.io/v1/news/everything?per_page=10&api_key=$APITUBE_API_KEY"
Keys prefixed api_test_ run against the same data and do not consume quota, so use one while
wiring up an integration. Only body and body_html are truncated, and the cut is marked with
[Test mode — use a live key for full content]; title, description, entities, sentiment,
categories and source come through in full. The Free plan truncates the same two fields, with
the marker [Upgrade subscription plan]. Check for those strings to detect a truncated body
instead of guessing from its length.
See https://docs.apitube.io/platform/news-api/authentication.
Endpoints
| Endpoint | Methods | Purpose |
|---|---|---|
/news/everything |
GET · POST | Search all articles with full filtering |
/news/top-headlines |
GET · POST | Breaking and important news from sources with OPR rank >= 5 |
/news/count |
GET · POST | Number of matching articles only — one count(*), no article payload |
/news/article |
GET · POST | A single article — pass id=<articleId>, not article.id (400 ER0232 without it) |
/news/story/{articleId} |
GET · POST | The cluster of articles covering the same story |
/news/category/{taxonomy}/{categoryId} · /news/topic/{topicId} · /news/industry/{industryId} · /news/entity/{entityId} |
GET · POST | Articles by taxonomy |
/news/trends |
GET · POST | Aggregations: top values of a field, growth, time buckets |
/news/local |
GET · POST | Geo search — lat + lng + radius in km |
/news/raw |
GET · POST | Unenriched articles: id, title, href, created_at, description, body, body_html, author, keywords, source only — no sentiment, entities or taxonomy |
/news/event-types |
GET only | The 44 classified event types and their categories |
/people · /companies · /journalists |
GET only | Reference profiles, not articles: id, name, links, profile (outlets for journalists) |
/suggest/entities · /suggest/categories · /suggest/topics · /suggest/industries |
GET only | Autocomplete an ID from a name prefix |
/balance |
GET only | Remaining quota for the key |
/news/stream |
GET only | Live Server-Sent Events feed |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 361 lines · 62 tokens per session scan A eab309c9722f
apitube-news-api is a skill published in the GitHub repository apitube/news-api-skills (0 stars, last pushed 18d ago), licensed MIT. It adds 62 tokens to every session and 5,931 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
create-site
Creates a new Power Pages code site (SPA) using React, Angular, Vue, or Astro. Guides through the full process from initial concept to deployed site: requirements discovery, scaffolding, component planning, design, implementation, validation, and deployment. Use when the user wants to create, build, or scaffold a new…
add-cloud-flow
Integrates Power Automate cloud flows into a Power Pages site. Lists available flows, suggests relevant ones based on intent, identifies scenarios and web roles, creates metadata files, and generates client-side code to call flows. Handles both new flow registration and adding already-registered flows to additional…
configure-env-variables
Configures environment variables for Power Pages site settings to support ALM across environments. Creates environment variable definitions in Dataverse, guides the user through linking site settings to those variables via the Power Pages Management app, adds the variables to the solution, and generates a…
deploy-site
Deploys an existing Power Pages code site to a Power Pages environment using PAC CLI. Handles tooling verification, authentication, environment confirmation, building, and uploading. Use when the user wants to deploy, upload, or publish their code site.
add-teams
Adds Microsoft Teams connector to a Power Apps code app. Use when sending Teams messages, posting to channels, or integrating with Teams chat.
elixir-idioms
OTP/BEAM patterns and Elixir idioms — GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.