> ## Documentation Index
> Fetch the complete documentation index at: https://developers.t2000.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Research a stock

> Ticker in, a sourced equity brief out. Real-time quote, trend, and the news moving it — Alpha Vantage + NewsAPI synthesized by Claude, paid as you go.

Point your agent at a ticker and it pulls a live quote, the recent price trend, and the headlines driving it, then hands you a tight analyst-style brief. Real market data, machine-synthesized, \~\$0.10.

***

## The prompt

```
Use t2 services. Research NVDA for me — pull a live quote and 30-day price history from Alpha
Vantage, plus recent headlines from NewsAPI, then give me a short brief on
what's moving it.
```

***

## What runs

1. `POST /alphavantage/v1/search` — resolve the ticker (skip if you already have it) (\~\$0.02)
2. `POST /alphavantage/v1/quote` — real-time price, change, volume (\~\$0.02)
3. `POST /alphavantage/v1/daily` — daily OHLCV for the trend (\~\$0.02)
4. `POST /newsapi/v1/search` — recent headlines on the company (\~\$0.02)
5. `POST /anthropic/v1/messages` — Claude synthesizes the brief (\~\$0.02)

<Note>
  For an **IPO / newly-listed** name, lean on steps 1 + 4 (symbol search + news) — Alpha Vantage's quote/daily light up once the stock is trading. The recipe shape is identical; you just weight news over price history.
</Note>

***

## Run it

### Claude Desktop (MCP)

```bash theme={null}
npm install -g @t2000/cli && t2 init && t2 fund && t2 mcp install
```

Paste the prompt with any ticker (*"Research TSLA"*, *"What's moving AAPL?"*).

### SDK

```typescript theme={null}
import { T2000 } from '@t2000/sdk';

const agent = await T2000.create();
const symbol = 'NVDA';

const [quote, daily, news] = await Promise.all([
  agent.pay({
    url: 'https://mpp.t2000.ai/alphavantage/v1/quote',
    method: 'POST',
    body: JSON.stringify({ symbol }),
  }),
  agent.pay({
    url: 'https://mpp.t2000.ai/alphavantage/v1/daily',
    method: 'POST',
    body: JSON.stringify({ symbol, outputsize: 'compact' }),
  }),
  agent.pay({
    url: 'https://mpp.t2000.ai/newsapi/v1/search',
    method: 'POST',
    body: JSON.stringify({ q: `${symbol} stock`, pageSize: 5, sortBy: 'publishedAt' }),
  }),
]);

const brief = await agent.pay({
  url: 'https://mpp.t2000.ai/anthropic/v1/messages',
  method: 'POST',
  headers: { 'anthropic-version': '2023-06-01' },
  body: JSON.stringify({
    model: 'claude-sonnet-4-5',
    max_tokens: 600,
    messages: [{
      role: 'user',
      content:
        `Write a 150-word equity brief for ${symbol}. Cover price + 24h change, the 30-day trend, ` +
        `and the 2-3 headlines moving it. Be specific, no hype.\n\n` +
        `QUOTE: ${JSON.stringify(quote.body)}\n\nDAILY: ${JSON.stringify(daily.body)}\n\nNEWS: ${JSON.stringify(news.body)}`,
    }],
  }),
});

console.log((brief.body as { content: { text: string }[] }).content[0].text);
```

***

## Expected output

```
4–5 calls · ~$0.10 · ~6s · 0 taps
NVDA brief: price, 30-day trend, top catalysts
```

***

## Extend it

* Add **Perplexity** (`/perplexity/v1/chat/completions`) for a web-grounded "what changed this week" with citations
* Compare a basket — run the chain for 3 tickers in parallel and have Claude rank them
* Swap **NewsAPI** for **SerpAPI** (`/serpapi/v1/search`) to pull Google Finance / analyst-rating snippets
* Pipe the brief into **Resend** (`/resend/v1/emails`) for a daily pre-market email to yourself
