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

# Quickstart

> Create an API key and make your first call.

<Steps>
  <Step title="Create an API key">
    In [platform.alura.io](https://platform.alura.io/settings), open **Settings**, then **API keys**, and create a key. Only workspace owners and admins can create keys. Copy the key now. Alura shows it only once.

    Keep it in an environment variable, never in code or a web page:

    ```bash theme={null}
    export ALURA_API_KEY="alura_sk_..."
    ```
  </Step>

  <Step title="Search for products">
    Search Etsy products for "name mug" and print the first three, with their price and estimated monthly sales:

    <CodeGroup>
      ```bash cURL theme={null}
      curl --fail-with-body -sS -G https://api.alura.io/v1/research/products \
        -H "Authorization: Bearer $ALURA_API_KEY" \
        --data-urlencode "q=name mug" \
        --data-urlencode "limit=3"
      ```

      ```typescript TypeScript theme={null}
      interface Product {
        id: string;
        title: string | null;
        price: { amount: string; currency: string; usd: string | null } | null;
        sales: { est_monthly_avg: number | null };
      }

      const url = new URL('https://api.alura.io/v1/research/products');
      url.searchParams.set('q', 'name mug');
      url.searchParams.set('limit', '3');

      const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.ALURA_API_KEY}` } });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      const page = (await res.json()) as { data: Product[] };

      for (const product of page.data) {
        console.log(`${product.id} ${product.title}: ${product.price?.usd ?? 'unknown'} USD, about ${product.sales.est_monthly_avg ?? 'unknown'} sales a month`);
      }
      ```

      ```python Python theme={null}
      import json
      import os
      import urllib.parse
      import urllib.request

      query = urllib.parse.urlencode({"q": "name mug", "limit": 3})
      request = urllib.request.Request(
          f"https://api.alura.io/v1/research/products?{query}",
          headers={"Authorization": f"Bearer {os.environ['ALURA_API_KEY']}"},
      )
      with urllib.request.urlopen(request) as response:
          page = json.load(response)

      for product in page["data"]:
          usd = (product["price"] or {}).get("usd") or "unknown"
          monthly = product["sales"]["est_monthly_avg"]
          print(f"{product['id']} {product['title']}: {usd} USD, about {monthly if monthly is not None else 'unknown'} sales a month")
      ```
    </CodeGroup>

    The TypeScript example runs as is with `bun` or Node 22, and the Python one needs only the standard library.
  </Step>

  <Step title="Check what it cost">
    `GET /v1/research/products` is a search, and a search costs 10 API credits per page with results; an empty page is free. Every response says what it cost and what is left in two headers:

    ```http theme={null}
    Alura-Credits-Cost: 10
    Alura-Credits-Remaining: 19990
    ```

    Opening one product with `GET /v1/research/products/{id}` costs 1 API credit. [API credits](/api-reference/api-credits) has the full price list.
  </Step>
</Steps>

## Next steps

* [Find products](/guides/find-products) with filters, sorting and paging.
* [Analyze a shop](/guides/analyze-a-shop): its profile, best sellers and reviews.
* [Connect an AI assistant](/connect-ai) to ask the same questions in Claude, ChatGPT or Cursor.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.