---
title: "Quickstart"
description: "Create a token and make your first Tapetide API request with curl, Python or JavaScript."
canonical: "https://developers.tapetide.com/quickstart/"
---

# Quickstart

1.  **Create a token.** Sign in at [tapetide.com/settings](https://tapetide.com/settings) and create a personal token. It starts with `tpt_rt_`. Keep it out of source control.
    
    ```bash
    export TAPETIDE_TOKEN=tpt_rt_...
    ```
    
2.  **Check your quota.** `/v1/me/usage` is free, so it is a safe first call.
    
    ```bash
    curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" https://api.tapetide.com/v1/me/usage
    ```
    
3.  **Fetch a quote.** This costs one request unit.
    
    ```bash
    curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" \
      https://api.tapetide.com/v1/stocks/TCS/quote
    ```
    
    ```python
    import os
    import requests
    
    
    resp = requests.get(
        "https://api.tapetide.com/v1/stocks/TCS/quote",
        headers={"Authorization": f"Bearer {os.environ['TAPETIDE_TOKEN']}"},
        timeout=30,
    )
    resp.raise_for_status()
    quote = resp.json()["data"]
    print(quote["symbol"], quote["price"], quote["change_pct"])
    ```
    
    ```js
    const res = await fetch("https://api.tapetide.com/v1/stocks/TCS/quote", {
      headers: { Authorization: `Bearer ${process.env.TAPETIDE_TOKEN}` },
    });
    if (!res.ok) {
      const { error } = await res.json();
      throw new Error(`${res.status} ${error.code}: ${error.message}`);
    }
    const { data, meta } = await res.json();
    console.log(data.symbol, data.price, meta.as_of);
    ```
    
4.  **Read the response.** Every success has the same envelope (abridged here).
    
    ```json
    {
      "data": {
        "symbol": "TCS",
        "name": "Tata Consultancy Services Ltd",
        "price": 2427,
        "change": 77,
        "change_pct": 3.28,
        "prev_close": 2350,
        "volume": 5532201,
        "market_cap": 878109.84,
        "pe_ttm": 17.63,
        "high_52w": 3350,
        "low_52w": 1976.8,
        "updated_at": "2026-10-16T05:57:16+00:00"
      },
      "meta": { "as_of": "2026-10-16T06:01:12.418Z", "route": "getStockQuote" }
    }
    ```
    
    `market_cap` is in INR crore. `meta.as_of` is when the response was assembled; `data.updated_at` is when the price was observed.
    

## Next requests to try

```bash
# Find a symbol by name, BSE code or ISIN
curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" "https://api.tapetide.com/v1/stocks?q=hdfc%20bank"

# Quarterly P&L with the date each quarter became public
curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" "https://api.tapetide.com/v1/stocks/TCS/financials?section=quarterly"

# 30 days of daily OHLCV
curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" "https://api.tapetide.com/v1/stocks/RELIANCE/price?days=30"

# Up to 20 quotes in one call
curl -s -H "Authorization: Bearer $TAPETIDE_TOKEN" "https://api.tapetide.com/v1/quotes?symbols=RELIANCE,TCS,HDFCBANK"
```

Every operation, with parameters and response schemas, is in the [API reference](/api/). To try requests in the browser, open the [playground](/playground/).
