Documentación

Primeros pasos

De cero a la primera respuesta del modelo en cuatro pasos.

En esta guía creás una credencial, pedís un access token, enviás un turno y leés la respuesta. Toda la API vive bajo https://api.niucore.com/api/v1 y usa Authorization: Bearer.

  1. 1

    Creá una credencial

    Entrá a Perfil → API e integraciones en la aplicación, dale un nombre a la credencial y elegí sus permisos. Al guardar vas a ver el client_id y el client_secret.

    El secreto se muestra una sola vez

    No se guarda en claro en ningún lado, así que no se puede volver a mostrar. Si lo perdés, rotá la credencial y actualizá tu integración.

    Guardalos como variables de entorno
    export NIUCORE_CLIENT_ID="nc_7f3c1a9b8e2d4056"
    export NIUCORE_CLIENT_SECRET="ncs_R2xk...."
  2. 2

    Pedí un access token

    El token dura una hora por defecto y no se renueva: cuando vence, se pide otro con las mismas credenciales.

    curl -sS -X POST 'https://api.niucore.com/api/oauth/token' \
      -u "$NIUCORE_CLIENT_ID:$NIUCORE_CLIENT_SECRET" \
      -d 'grant_type=client_credentials'
    JSON
    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "token_type": "Bearer",
      "expires_in": 3600,
      "scope": "chat:read chat:write libraries:read"
    }
  3. 3

    Confirmá quién sos

    GET /me es el request que conviene hacer primero: valida el token y muestra los scopes con los que realmente vas a operar. Si acá falta un scope que pediste, el rol del usuario lo recortó.

    curl -sS 'https://api.niucore.com/api/v1/me' \
      -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
  4. 4

    Enviá tu primer turno

    Un turno se manda a un chat_id. Si el chat no existe, se crea con ese id — así que podés generar un UUID vos mismo y arrancar. El header Idempotency-Key es obligatorio.

    CHAT_ID=$(uuidgen | tr 'A-Z' 'a-z')
    
    curl -sS -X POST "https://api.niucore.com/api/v1/chats/$CHAT_ID/messages" \
      -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN" \
      -H 'Content-Type: application/json' \
      -H "Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": "Hola, ¿en qué me podés ayudar?",
        "permission_mode": "auto"
      }'

    Nota

    El envío sincrónico bloquea hasta la respuesta completa y solo admite permission_mode: "auto". Para ver el texto a medida que se genera, o para dejar que el turno pida permiso antes de ejecutar herramientas, usá el envío por stream.

Entornos

EntornoBaseUso
Producciónhttps://api.niucore.comDatos reales. Consume niucredits.
Pruebashttps://api.niucore.devMismo contrato, datos de prueba. Pedilo a tu contacto en NiuCore.

Nota

Las credenciales no se comparten entre entornos: cada uno tiene las suyas.

Qué sigue