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

# getState()

> Consulta elegibilidad, cooldowns y claims pendientes

`getState()` consulta el estado de un usuario en una campaña antes de intentar girar.

## Uso

<CodeGroup>
  ```typescript TypeScript theme={null}
  const state = await nippy.getState({
    userId: 'user-123',
    campaignId: 'camp-abc'
  })
  ```

  ```bash curl theme={null}
  curl "https://ms.nippy.la/v1/public/state?userId=user-123&campaignId=camp-abc" \
    -H "x-api-key: npk_live_xxx"
  ```
</CodeGroup>

## Parámetros

<ParamField query="userId" type="string" required>
  Identificador del usuario en tu sistema. Ejemplo: `user-123`.
</ParamField>

<ParamField query="campaignId" type="string" required>
  ID de la campaña. Ejemplo: `camp-abc`.
</ParamField>

## Respuesta

<ResponseField name="eligible" type="boolean">
  Indica si el usuario puede girar en este momento.
</ResponseField>

<ResponseField name="ineligibilityReason" type="string | null">
  Razón por la que el usuario no puede girar. Valores: `cooldown_active`, `spin_limit_reached`, `campaign_ended` o `null`.
</ResponseField>

<ResponseField name="spinsUsed" type="number">
  Cantidad de spins usados por el usuario en la campaña.
</ResponseField>

<ResponseField name="spinsAllowed" type="number">
  Cantidad máxima de spins permitidos. `-1` indica spins ilimitados.
</ResponseField>

<ResponseField name="nextEligibleAt" type="string | null">
  Timestamp ISO 8601 en el que el usuario podrá girar de nuevo.
</ResponseField>

<ResponseField name="pendingClaim" type="object | null">
  Premio pendiente de reclamar, si existe.
</ResponseField>

<ResponseField name="pendingClaim.spinId" type="string">
  ID del spin asociado al claim pendiente.
</ResponseField>

<ResponseField name="pendingClaim.gift" type="object">
  Premio pendiente de reclamar.
</ResponseField>

<ResponseField name="pendingClaim.expiresAt" type="string">
  Fecha límite para reclamar el premio.
</ResponseField>
