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

# Inicio rápido

> Obtén una llave de API, haz tu primera solicitud autenticada y lee el sobre de respuesta: tu primera llamada a la API de Croma en tres pasos, con curl.

<Steps>
  <Step title="Obtén una llave de API">
    Las llaves de Croma se emiten por **organización** en
    [platform.usecroma.com](https://platform.usecroma.com). Una llave se ve como
    `croma_live_…` (o `croma_test_…` fuera de producción). Trátala como un
    secreto. Otorga el acceso completo de tu organización a la API. Consulta
    [Autenticación](/es/authentication) para más detalles.
  </Step>

  <Step title="Llama un endpoint">
    Cada endpoint de datos es una ruta `POST` versionada (por ejemplo
    `/co/rama-judicial/cases-by-entity/v1`) en `https://api.croma.run`. Recibe
    un cuerpo JSON pequeño y la llave en un encabezado `Authorization: Bearer`.

    <CodeGroup>
      ```bash cURL theme={"dark"}
      curl https://api.croma.run/co/rama-judicial/cases-by-entity/v1 \
        -H "Authorization: Bearer $CROMA_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{ "name": "RAPPI", "entity_type": "juridical", "active_only": true }'
      ```

      ```ts TypeScript theme={"dark"}
      const res = await fetch("https://api.croma.run/co/rama-judicial/cases-by-entity/v1", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.CROMA_API_KEY}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ name: "RAPPI", entity_type: "juridical", active_only: true }),
      });

      const { data } = await res.json();
      ```

      ```python Python theme={"dark"}
      import os, requests

      res = requests.post(
          "https://api.croma.run/co/rama-judicial/cases-by-entity/v1",
          headers={"Authorization": f"Bearer {os.environ['CROMA_API_KEY']}"},
          json={"name": "RAPPI", "entity_type": "juridical", "active_only": True},
      )
      body = res.json()
      ```
    </CodeGroup>
  </Step>

  <Step title="Lee la respuesta">
    Las respuestas exitosas envuelven el contenido bajo `data`:

    ```json theme={"dark"}
    {
      "data": { }
    }
    ```

    El saldo de créditos de tu plan y un id de solicitud llegan como
    encabezados de respuesta; no hay objeto `meta` en el cuerpo. El límite son
    los créditos que tu plan otorga cada mes, lo restante es lo que queda
    después de esta llamada (una consulta en vivo gasta 10) y el reinicio es
    cuando el saldo se renueva:

    ```http theme={"dark"}
    X-RateLimit-Limit: 1500
    X-RateLimit-Remaining: 1490
    X-RateLimit-Reset: 2026-10-01T00:00:00.000Z
    X-Request-Id: req_8f3c…
    ```

    Las consultas largas se resuelven como [trabajos
    asíncronos](/es/async-jobs): la misma solicitud puede esperar en línea,
    consultarse por polling o notificarte por callback al terminar. Las fallas
    comparten una misma [forma de error](/es/errors) en todos los endpoints.
  </Step>
</Steps>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Servidor MCP" icon="plug" href="/es/mcp-server">
    Conecta cualquier cliente MCP a todas las herramientas de Croma con una
    sola URL.
  </Card>

  <Card title="Referencia de API" icon="code" href="/es/api-reference/overview">
    Referencia completa de endpoints con un playground interactivo.
  </Card>
</CardGroup>


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