Saltar al contenido

API de Krows: primeros pasos

Claves, autenticación, entorno de prueba, tu primera llamada en curl, Node.js y Python, paginación, idempotencia, límites y el Workbench.

10 min de lectura6 capítulosPara foundersIntermedioActualizada el 17 oct 2026

Lo que aprenderás

  • Qué claves hay y dónde va cada una
  • Hacer tu primera llamada
  • Paginación, idempotencia y límites
  • Ver cada llamada en el registro

Antes de empezar

  • Una startup creada en Krows
  • Un servidor propio: la clave secreta nunca va en el navegador

Capítulo 1Visión general

La API de Krows es una API REST, en inglés, con respuestas JSON, pensada como la de Stripe. Con ella creas sesiones de checkout desde tu servidor, lees tu ronda, tus inversiones, tus hitos y recompensas, y consultas los eventos. Los webhooks te avisan de lo que pasa sin tener que preguntar.

Basehttps://xvxhouuprjsmpfiwxkzz.supabase.co/functions/v1/api/v1
AutenticaciónCabecera Authorization: Bearer sk_…
FormatoJSON, campos y eventos en inglés. Cabecera Krows-Version: 2026-10-17 en cada respuesta.
Límite100 peticiones por minuto y clave.
CORSNo: la API no acepta llamadas desde el navegador.

Capítulo 2Las claves

app.krows.app/proyectos/gueepard/integrar
Integración › API para tu app: la clave publicable, la secreta y tus webhooks.
ClaveDónde vaPara qué
pk_test_… / pk_live_…Tu web (botón, widget)Identificar tu startup. Es pública.
sk_test_… / sk_live_…Solo tu servidorLlamar a la API. Da acceso a tu startup.
whsec de cada endpointSolo tu servidorComprobar la firma de los webhooks.
  1. Ve a tu startup › Integración › API para tu appO al panel › API y webhooks.
  2. Pulsa «Crear clave secreta»Cópiala y guárdala en un lugar seguro (variable de entorno). Por seguridad no la volverás a ver: si la pierdes, regénérala.
  3. Regenerar la invalida al momento. Hazlo si se filtra.

La clave secreta nunca va en el navegador, en una app móvil ni en un repositorio público.

Capítulo 3Tu primera llamada

Lee tu ronda. Con sk_test todo ocurre en modo prueba.

curl https://xvxhouuprjsmpfiwxkzz.supabase.co/functions/v1/api/v1/round \
  -H "Authorization: Bearer $KROWS_SECRET_KEY"

La primera llamada correcta marca la integración «API» como detectada en Integración, en el modo de la clave.

Capítulo 4Paginación, idempotencia y errores

Paginación

Las listas devuelven {"object": "list", "data": [...], "has_more": true|false}. Usa limit (1–100, por defecto 20) y starting_after con el id del último elemento.

curl "https://xvxhouuprjsmpfiwxkzz.supabase.co/functions/v1/api/v1/investments?limit=20" \
  -H "Authorization: Bearer $KROWS_SECRET_KEY"

# Next page: pass the id of the last item
curl "https://xvxhouuprjsmpfiwxkzz.supabase.co/functions/v1/api/v1/investments?limit=20&starting_after=inv_…" \
  -H "Authorization: Bearer $KROWS_SECRET_KEY"

Idempotencia

Al crear una sesión, manda Idempotency-Key. Si reintentas por un fallo de red, recibes la misma sesión en lugar de crear otra.

Errores

Códigos HTTP estándar y un cuerpo como este:

{
  "error": {
    "type": "invalid_request_error",
    "code": "amount_invalid",
    "message": "amount must be a USDC number, at least 1, with up to 2 decimals."
  }
}
HTTP · codeSignifica
400 · invalid_jsonEl cuerpo no es JSON.
400 · amount_invalid / amount_too_largeImporte no válido o mayor que el objetivo.
400 · email_invalid / url_invalid / metadata_invalidCampo con formato incorrecto.
401 · api_key_missing / api_key_invalidFalta la clave, está mal formada o se ha regenerado.
404 · resource_missing / route_missing / startup_missingNo existe.
409 · session_not_openLa sesión ya se completó o caducó.
429 · rate_limitMás de 100 peticiones por minuto.
500 · internal_errorError nuestro. Reintenta con la misma Idempotency-Key.

Capítulo 5Registro y Workbench

En API y webhooks, la pestaña «Registro» muestra cada llamada a la API (método, ruta, código, tiempo, consulta, cuerpo y respuesta; nunca las cabeceras, donde va la clave) y cada entrega de webhook, con «Reenviar». Se guardan 30 días. El Workbench (tecla W o «Desarrolladores» en la barra inferior) junta eventos, registros y la salud de la integración; puedes ocultarlo en Ajustes › Desarrolladores, donde también eliges la versión de la API y el lenguaje de los ejemplos.

app.krows.app/ajustes/desarrolladores
Ajustes › Desarrolladores: Workbench, versión de la API y lenguaje de los ejemplos.

Capítulo 6Repaso final

Antes de cerrar esta guía, comprueba que lo tienes claro. Nada de esto se envía a ningún sitio: es solo para ti.

Comprueba lo que sabesElige una respuesta

¿Dónde pones la clave sk_live?

La secreta solo en tu servidor. En la web va la publicable (pk_).
¿Te ha ayudado?