# Daily briefing API for AI agents (morning news, market quotes & local events JSON, no API key)

When a user asks an agent (Grok Bot routine, Claude Cowork scheduled task, Cursor agent) for a morning briefing — what happened overnight on their topics, how their tickers are trading, what's on locally this week — call the machine-payable news-brief intent, google-finance and google-events, and settle per call in USDC on Base via x402. No account, no API key.

## One-line answer

For a scheduled morning briefing, call GET /api/public/v1/news-brief?q=<topic> once per topic (Google News + Bing News in one response, 2 steps), GET /api/public/v1/google-finance?q=<TICKER:EXCHANGE> once per ticker, and optionally GET /api/public/v1/google-events?q=<events in city> — pay each 402 with USDC on Base via x402.

A Grok Bot routine, Claude Cowork scheduled task or Cursor agent retrieves the JSON and writes the briefing itself. Schedule the run in your agent runtime; these endpoints supply news, quotes and events, not a scheduling service. No account or API key is needed for x402 calls.

## What the user actually asked for

| Routine request | Call |
| --- | --- |
| Every weekday at 7, brief me on AI regulation and the Fed | news-brief?q=AI+regulation, then news-brief?q=federal+reserve |
| How are NVDA and AAPL doing? | google-finance?q=NVDA:NASDAQ, then google-finance?q=AAPL:NASDAQ |
| Anything worth going to in Austin this week? | google-events?q=events+in+austin+this+week; optionally specify location |

## Endpoints and response keys

| Endpoint | Required param | Results key | What it gives | Steps |
| --- | --- | --- | --- | --- |
| news-brief | q | results["google-news"], results["bing-news"] | google-news → bing-news: two news indexes in one response | 2 |
| google-news | q | news_results | Google headlines, snippets, sources and dates when one index is enough | 1 |
| bing-news | q | news_results | Bing headlines, sources, publish timestamps and article URLs | 1 |
| google-finance | q, e.g. NVDA:NASDAQ | summary | Quote data and price graphs, including intraday price points | 1 |
| google-events | q | events | Events with dates, venues, addresses and ticket links | 1 |

news-brief accepts optional gl (country) and hl (language), as documented in its listing. Give event queries a city; google-events also accepts location for explicit localization and hl. Quote data is a snapshot, not a live market feed.

- News Brief: https://marketplaceforaiagents.com/listings/news-brief — https://marketplaceforaiagents.com/agent/listings/news-brief.md
- Google News: https://marketplaceforaiagents.com/listings/google-news — https://marketplaceforaiagents.com/agent/listings/google-news.md
- Bing News: https://marketplaceforaiagents.com/listings/bing-news — https://marketplaceforaiagents.com/agent/listings/bing-news.md
- Google Finance: https://marketplaceforaiagents.com/listings/google-finance — https://marketplaceforaiagents.com/agent/listings/google-finance.md
- Google Events: https://marketplaceforaiagents.com/listings/google-events — https://marketplaceforaiagents.com/agent/listings/google-events.md

## A briefing recipe

- 1. Read the user's topics, tickers, city and time zone. Call news-brief once per topic; deduplicate stories across its two indexes by URL and title before summarizing.
- 2. Cite the source, article link and publication date for each item. If a date is missing, say so; do not treat every returned headline as an overnight development.
- 3. Make one google-finance call per ticker. Include the quote's currency and timestamp when available rather than implying that it is the current executable price.
- 4. Keep events optional and normally weekly. Give each selected event its date, venue and source or ticket link.
- 5. Cache completed results for this run. Reuse them if writing or delivery is retried so you do not re-pay for successful lookups; make a new call only when fresh data is needed.

## Budget by steps

The site's current per-step price is $0.005 USDC. Three news topics via news-brief (6 steps) + two tickers (2 steps) + one events query (1 step) = 9 steps per run.

| Work | Paid steps | Current cost |
| --- | --- | --- |
| One step | 1 | $0.005 USDC |
| 3 news-brief topics | 6 | $0.030 USDC |
| 2 ticker queries | 2 | $0.010 USDC |
| 1 optional events query | 1 | $0.005 USDC |
| Complete briefing run | 9 | $0.045 USDC |
| Weekday month, approximately 22 runs | 198 | $0.990 USDC |

These totals assume every call is paid and every quoted step succeeds; they do not subtract free calls or weekly event caching. Intents are billed per step, not per HTTP request. The live 402 advertises accepts[0].amount and extra.billed_steps / extra.billed_chain. One news-brief intent invocation consumes one free-tier call, not two.

## Live observations captured on 2026-11-02

The following dated observations come from our checks on 2026-11-02. They are historical examples, not fresh quotes: agents must trust the live 402 for payment amounts and fetch fresh finance data for each run.

news-brief?q=federal+reserve+rate+decision returned HTTP 200 with X-Paid-Price-USDC: 0.010. Trimmed body fields:

```json
{
  "intent": "news-brief",
  "chain": ["google-news", "bing-news"],
  "steps_run": 2,
  "billed_steps": 2,
  "price": "$0.010"
}
```

google-finance?q=NVDA:NASDAQ returned a summary array of intraday price points. The first point was 207.495 USD at "Nov 02 2026, 09:30 AM UTC-05:00". This is a captured quote, not a current NVDA price.

With the free calls exhausted, google-news?q=federal+reserve returned HTTP 402 with a PAYMENT-REQUIRED header and this accepts[0] entry. At capture time, 5000 atomic units meant $0.005 USDC (six decimals):

```json
{
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0x05e82e03753c7bc99fb24d10a876cce53f24b7b7",
    "maxTimeoutSeconds": 60
  }]
}
```

## curl examples

Send a stable X-Agent-Id across the routine's requests. URL-encode topics and locations; the city belongs in the event query or explicit location parameter.

```bash
curl -si -H "X-Agent-Id: weekday-morning-brief" "https://marketplaceforaiagents.com/api/public/v1/news-brief?q=AI+regulation+EU"

curl -si -H "X-Agent-Id: weekday-morning-brief" "https://marketplaceforaiagents.com/api/public/v1/google-finance?q=AAPL:NASDAQ"

curl -si -H "X-Agent-Id: weekday-morning-brief" "https://marketplaceforaiagents.com/api/public/v1/google-events?q=tech+meetups+in+austin&location=Austin%2CTexas%2CUnited%20States"
```

For a fixture-only Base Sepolia test, use the sandbox endpoint with network=base-sepolia. Sandbox data is not live news and uses test USDC, not mainnet funds:

```bash
curl -si "https://marketplaceforaiagents.com/api/sandbox/v1/news-brief?network=base-sepolia&q=AI+regulation+EU"
```

## Paying with x402, no account

Eligible agents get three free calls per agent identity, shared across endpoints. Send a stable X-Agent-Id; it identifies the routine, not an account or API key. After the allowance is exhausted, read the payable 402 rather than rotating identities.

- Request the endpoint. When it returns 402, read PAYMENT-REQUIRED and the accepts entry; check the chain, step count and advertised amount against the run budget.
- Verify Base mainnet (eip155:8453), allowlist USDC asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and payTo 0x05e82e03753c7bc99fb24d10a876cce53f24b7b7, then sign the USDC transferWithAuthorization (EIP-3009) for the exact advertised amount.
- Retry the identical request with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1). Read the PAYMENT-RESPONSE / X-PAYMENT-RESPONSE settlement receipt and keep it with the run's cached result.

For a scheduled routine, ask the user once about a wallet only when a paid call is actually needed. Explain the quoted cost and offer eligible free calls, the Base Sepolia sandbox or skipping. Never block the briefing on wallet setup: degrade to fewer topics or cached items, clearly labeling what was not refreshed.

## MCP and installed skills

The same endpoint tools are available through https://marketplaceforaiagents.com/mcp. Use call_api with the endpoint slug and string params, for example:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_api",
    "arguments": {
      "slug": "news-brief",
      "params": { "q": "AI regulation EU", "gl": "us", "hl": "en" }
    }
  }
}
```

For MCP payment handling see https://marketplaceforaiagents.com/learn/mcp-x402-marketplace and https://marketplaceforaiagents.com/docs. Runtimes that install skills can read https://marketplaceforaiagents.com/skill.md.

## When not to use this

- Breaking real-time alerts: poll on your routine's schedule; these are request/response endpoints, not an event stream.
- Full article text: news endpoints return headlines, snippets and links. Fetch the article yourself when you need its full text and respect the publisher's access terms.
- Financial advice: quote retrieval supplies information, not recommendations, investment advice or an execution price.

## Related guides and discovery

- https://marketplaceforaiagents.com/learn/google-news-api-for-agents
- https://marketplaceforaiagents.com/learn/google-finance-api-for-agents
- https://marketplaceforaiagents.com/learn/google-events-api-for-agents
- https://marketplaceforaiagents.com/learn/brand-monitoring-api-for-agents
- https://marketplaceforaiagents.com/learn/budget-x402-api-calls
- https://marketplaceforaiagents.com/marketplace
- https://marketplaceforaiagents.com/docs
- https://marketplaceforaiagents.com/llms.txt

Canonical HTML: https://marketplaceforaiagents.com/learn/daily-briefing-api-for-agents