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

# Inicio rápido

> Empieza a usar la Data API de Solana Tracker en minutos — regístrate, obtén una API key y haz tus primeras peticiones de tokens, wallets y precios.

<Info>
  Esta guía te ayudará a hacer tus primeras llamadas a la Data API de Solana Tracker. Aprenderás a autenticarte, hacer solicitudes y manejar respuestas.
</Info>

## Requisitos previos

Antes de empezar, asegúrate de tener:

<Card title="Cuenta de Solana Tracker" icon="https://mintcdn.com/solanatracker/4PIKDaYde_747jyk/icons/hugeicons/user.svg?fit=max&auto=format&n=4PIKDaYde_747jyk&q=85&s=aa086b5282d1e576ffddb8aad776522c" iconType="duotone" href="https://www.solanatracker.io/account" width="24" height="24" data-path="icons/hugeicons/user.svg">
  Regístrate gratis para obtener tu API key.
</Card>

## Paso 1: Obtén tu API key

Después de crear tu cuenta, recupera tu API key desde el panel. Esta key se usa para autenticar tus solicitudes pasándola en la cabecera `x-api-key`.

<Steps>
  <Step title="Inicia sesión en tu panel">
    Visita [tu panel de cuenta](https://www.solanatracker.io/account).
  </Step>

  <Step title="Ve a API Keys">
    Haz clic en la sección "API Keys" en la barra lateral.
  </Step>

  <Step title="Copia tu API key">
    Haz clic en el botón de copiar junto a tu API key.

    <Warning>
      Mantén tu API key segura y nunca la subas a repositorios públicos.
    </Warning>
  </Step>
</Steps>

## Paso 2: Haz tu primera llamada a la API

Empecemos obteniendo el precio actual de SOL con el endpoint `/price`.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://data.solanatracker.io/price?token=So11111111111111111111111111111111111111112" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const apiKey = 'YOUR_API_KEY';
  const solMint = 'So11111111111111111111111111111111111111112';

  fetch(`https://data.solanatracker.io/price?token=${solMint}`, {
    headers: {
      'x-api-key': apiKey
    }
  })
  .then(response => response.json())
  .then(data => console.log('SOL Price:', data.price));
  ```

  ```python Python theme={null}
  import requests

  api_key = 'YOUR_API_KEY'
  sol_mint = 'So11111111111111111111111111111111111111112'

  response = requests.get(
      f'https://data.solanatracker.io/price?token={sol_mint}',
      headers={
          'x-api-key': api_key
      }
  )

  data = response.json()
  print(f"SOL Price: ${data['price']}")
  ```
</CodeGroup>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "price": 175.42,
    "priceQuote": 175.42,
    "liquidity": 14187570.69,
    "marketCap": 99213713748.19,
    "lastUpdated": 1760274132867
  }
  ```
</ResponseExample>

## Paso 3: Conéctate a los nodos RPC

Solana Tracker también ofrece nodos RPC para llamadas directas a la blockchain. RPC usa una URL y un estilo de autenticación diferentes a los de la Data API:

| Producto | Úsalo para | Tipo de autenticación |
| - | - | - |
| Data API | Precios de tokens, wallets, trades y analíticas | Cabecera `x-api-key` |
| RPC | Métodos de Solana directos como saldos y actualizaciones de cuentas | `api_key` en la URL del RPC |

<CodeGroup>
  ```javascript @solana/web3.js theme={null}
  import { Connection, PublicKey } from '@solana/web3.js';

  const connection = new Connection(
    'https://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY',
    {
      commitment: 'confirmed',
      wsEndpoint: 'wss://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY'
    }
  );

  // Obtener saldo de la cuenta
  const publicKey = new PublicKey('YOUR_WALLET_ADDRESS');
  const balance = await connection.getBalance(publicKey);
  console.log(`Balance: ${balance / 1e9} SOL`);

  // Suscribirse a cambios de cuenta
  connection.onAccountChange(
    publicKey,
    (accountInfo) => {
      console.log('Account updated:', accountInfo);
    }
  );
  ```

  ```python solana.py theme={null}
  from solana.rpc.api import Client
  from solders.pubkey import Pubkey

  # Conectar al RPC
  client = Client("https://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY")

  # Obtener saldo de la cuenta
  pubkey = Pubkey.from_string("YOUR_WALLET_ADDRESS")
  response = client.get_balance(pubkey)
  balance = response.value / 1e9
  print(f"Balance: {balance} SOL")

  # Obtener el blockhash más reciente
  blockhash = client.get_latest_blockhash()
  print(f"Recent blockhash: {blockhash.value.blockhash}")
  ```
</CodeGroup>

## Paso 4: Explora casos de uso comunes

<AccordionGroup>
  <Accordion title="Seguir el precio de un token" icon="https://mintcdn.com/solanatracker/l0aXlX5jJ7xpUiwY/icons/hugeicons/chart-line.svg?fit=max&auto=format&n=l0aXlX5jJ7xpUiwY&q=85&s=271a1bacefc21f8e789bfd93fc997d4f" iconType="duotone" width="24" height="24" data-path="icons/hugeicons/chart-line.svg">
    Monitorea cambios de precio en tiempo real de cualquier token SPL usando el endpoint `/price`.

    ```javascript theme={null}
    const apiKey = 'YOUR_API_KEY';

    const trackPrice = async (mint) => {
      const response = await fetch(
        `https://data.solanatracker.io/price?token=${mint}`,
        { headers: { 'x-api-key': apiKey } }
      );
      
      const data = await response.json();
      console.log(`Price: $${data.price}`);
    };

    // Consulta el precio cada 5 segundos
    setInterval(() => trackPrice('YOUR_TOKEN_MINT'), 5000);
    ```
  </Accordion>

  <Accordion title="Encontrar nuevos tokens" icon="https://mintcdn.com/solanatracker/4PIKDaYde_747jyk/icons/hugeicons/water.svg?fit=max&auto=format&n=4PIKDaYde_747jyk&q=85&s=e4b9cfee791ff7554061d6edde275d0a" iconType="duotone" width="24" height="24" data-path="icons/hugeicons/water.svg">
    Descubre tokens recién creados con el endpoint `/tokens/latest`. Devuelve los tokens más nuevos primero.

    ```javascript theme={null}
    const apiKey = 'YOUR_API_KEY';

    const findNewTokens = async () => {
      const response = await fetch(
        'https://data.solanatracker.io/tokens/latest',
        { headers: { 'x-api-key': apiKey } }
      );
      
      const result = await response.json();
      result.data.forEach(token => {
        console.log(`New token: ${token.token.symbol} on ${token.pools[0].market}`);
        console.log(`Liquidity: $${token.pools[0].liquidity.usd}`);
      });
    };
    ```
  </Accordion>

  <Accordion title="Monitorear las posiciones de una wallet" icon="https://mintcdn.com/solanatracker/4PIKDaYde_747jyk/icons/hugeicons/wallet.svg?fit=max&auto=format&n=4PIKDaYde_747jyk&q=85&s=4508ce92a8d0cb33c550a1e3ac7c5bef" iconType="duotone" width="24" height="24" data-path="icons/hugeicons/wallet.svg">
    Sigue las posiciones de tokens y el valor total del portafolio de cualquier wallet.

    ```javascript theme={null}
    const apiKey = 'YOUR_API_KEY';

    const getWalletTokens = async (walletAddress) => {
      const response = await fetch(
        `https://data.solanatracker.io/wallet/${walletAddress}`,
        { headers: { 'x-api-key': apiKey } }
      );
      
      const portfolio = await response.json();
      console.log(`Total Portfolio Value: $${portfolio.total}`);
      portfolio.tokens.forEach(holding => {
        const tokenInfo = holding.token;
        console.log(`${tokenInfo.symbol}: ${holding.balance} ($${holding.value.toFixed(2)})`);
      });
    };
    ```
  </Accordion>
</AccordionGroup>

## Manejo de errores

Implementa siempre un manejo de errores adecuado en tus aplicaciones.

<CodeGroup>
  ```javascript JavaScript theme={null}
  const apiKey = 'YOUR_API_KEY';

  try {
    const response = await fetch('https://data.solanatracker.io/price?token=INVALID_TOKEN_ADDRESS', {
      headers: { 'x-api-key': apiKey }
    });

    if (!response.ok) {
      const error = await response.json();
      console.error(`API Error: ${error.message || response.statusText}`);

      // Maneja códigos de error específicos
      switch (response.status) {
        case 401:
          console.error('Invalid API key');
          break;
        case 429:
          console.error('Rate limit exceeded');
          break;
        case 500:
          console.error('Server error - please retry');
          break;
      }

    } else {
      const data = await response.json();
      // Procesa la respuesta exitosa
    }
  } catch (error) {
    console.error('Network error:', error);
  }
  ```

  ```python Python theme={null}
  import requests
  from time import sleep

  def api_call_with_retry(url, headers, max_retries=3):
      for attempt in range(max_retries):
          try:
              response = requests.get(url, headers=headers)
              
              if response.status_code == 200:
                  return response.json()
              elif response.status_code == 429:
                  # Límite de tasa alcanzado: espera y reintenta
                  print(f"Rate limit exceeded. Retrying in {2 ** attempt}s...")
                  sleep(2 ** attempt)  # Backoff exponencial
              elif response.status_code == 401:
                  raise Exception("Invalid API key")
              else:
                  print(f"Error {response.status_code}: {response.text}")
                  break
                  
          except requests.RequestException as e:
              print(f"Network error: {e}")
              if attempt < max_retries - 1:
                  sleep(1)
              else:
                  raise
      
      return None
  ```
</CodeGroup>

<Note>
  **¿Necesitas ayuda?** Únete a nuestra [comunidad de Discord](https://discord.gg/JH2e9rR9fc) o escríbenos a [support@solanatracker.io](mailto:support@solanatracker.io).
</Note>


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