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

# Ejemplos cURL

> Prueba la API rapidamente desde la linea de comandos

## Configuración Inicial

Define las variables de entorno:

```bash theme={null}
export NEURACALL_API="https://api.neuracall.com"
export CLIENT_ID="tu_client_id"
export CLIENT_SECRET="tu_client_secret"
```

## Autenticación

### Obtener Token

```bash theme={null}
curl -X POST "$NEURACALL_API/v1/auth" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "'"$CLIENT_ID"'",
    "client_secret": "'"$CLIENT_SECRET"'"
  }'
```

**Respuesta:**

```json theme={null}
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_at": 1735689600,
  "client_id_audience": "https://api.neuracall.com/call-analysis",
  "scope": "read:call-analysis-requests write:call-analysis-request ..."
}
```

Guarda el token:

```bash theme={null}
export TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
```

## Análisis de Llamadas

### Crear Análisis

```bash theme={null}
curl -X POST "$NEURACALL_API/v1/call-analysis" \
  -H "Authorization: Bearer $TOKEN" \
  -F "audio_file=@llamada.mp3" \
  -F "external_id=CALL-2024-001" \
  -F "agent_id=AGT-001" \
  -F "agent_name=Juan Perez" \
  -F "model_name=Evaluación Servicio Cliente"
```

**Respuesta (201):**

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "external_id": "CALL-2024-001",
  "status": "PENDING",
  "created_at": "2024-01-15T10:30:00Z"
}
```

### Obtener Análisis

```bash theme={null}
curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer $TOKEN"
```

**Respuesta (completado):**

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "PROCESS_COMPLETED",
  "score_percentage": 85.0,
  "summary": "El agente resolvio eficientemente...",
  "insights": ["Excelente manejo del saludo"],
  "keywords": ["facturación", "reembolso"]
}
```

### Listar Análisis

```bash theme={null}
curl "$NEURACALL_API/v1/call-analysis?page=0&size=20" \
  -H "Authorization: Bearer $TOKEN"
```

Con filtros:

```bash theme={null}
curl "$NEURACALL_API/v1/call-analysis?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_id=1" \
  -H "Authorization: Bearer $TOKEN"
```

### Obtener Transcripción

```bash theme={null}
curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000/transcription" \
  -H "Authorization: Bearer $TOKEN"
```

### Descargar Audio

```bash theme={null}
curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000/audio-file" \
  -H "Authorization: Bearer $TOKEN" \
  -o audio_descargado.mp3
```

## Modelos

### Listar Modelos

```bash theme={null}
curl "$NEURACALL_API/v1/models" \
  -H "Authorization: Bearer $TOKEN"
```

### Obtener Modelo

```bash theme={null}
curl "$NEURACALL_API/v1/models/1" \
  -H "Authorization: Bearer $TOKEN"
```

### Crear Modelo

```bash theme={null}
curl -X POST "$NEURACALL_API/v1/models" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mi Modelo de Evaluación",
    "description": "Modelo para llamadas de soporte",
    "prompt": "Evalua la llamada...",
    "template_variables": [
      {
        "key": "saludo",
        "type": "INTEGER",
        "required": true
      }
    ]
  }'
```

## Estadísticas

### Estadísticas Básicas

```bash theme={null}
curl "$NEURACALL_API/v1/stats/basic?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_name=Evaluación%20Servicio" \
  -H "Authorization: Bearer $TOKEN"
```

### NeuraScore por Agente

```bash theme={null}
curl "$NEURACALL_API/v1/stats/neurascore-by-agent?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_name=Evaluación%20Servicio&agent_id=AGT-001" \
  -H "Authorization: Bearer $TOKEN"
```

## Script Completo

Guarda esto como `neuracall.sh`:

```bash theme={null}
#!/bin/bash

# Configuración
API="https://api.neuracall.com"
CLIENT_ID="tu_client_id"
CLIENT_SECRET="tu_client_secret"

# Obtener token
get_token() {
  curl -s -X POST "$API/v1/auth" \
    -H "Content-Type: application/json" \
    -d "{\"client_id\": \"$CLIENT_ID\", \"client_secret\": \"$CLIENT_SECRET\"}" \
    | jq -r '.access_token'
}

TOKEN=$(get_token)

# Crear análisis
create_analysis() {
  curl -s -X POST "$API/v1/call-analysis" \
    -H "Authorization: Bearer $TOKEN" \
    -F "audio_file=@$1" \
    -F "external_id=$2" \
    -F "agent_id=$3" \
    -F "agent_name=$4" \
    -F "model_name=$5"
}

# Obtener análisis
get_analysis() {
  curl -s "$API/v1/call-analysis/$1" \
    -H "Authorization: Bearer $TOKEN"
}

# Esperar completado
wait_for_completion() {
  while true; do
    STATUS=$(get_analysis $1 | jq -r '.status')
    echo "Estado: $STATUS"
    if [ "$STATUS" = "PROCESS_COMPLETED" ]; then
      get_analysis $1
      break
    elif [ "$STATUS" = "ERROR" ]; then
      echo "Error en el análisis"
      break
    fi
    sleep 5
  done
}

# Uso
# ./neuracall.sh llamada.mp3 CALL-001 AGT-001 "Juan Perez" "Mi Modelo"
if [ $# -ge 5 ]; then
  echo "Creando análisis..."
  RESULT=$(create_analysis "$1" "$2" "$3" "$4" "$5")
  ID=$(echo $RESULT | jq -r '.id')
  echo "ID: $ID"
  echo "Esperando resultado..."
  wait_for_completion $ID
fi
```

Hazlo ejecutable y usalo:

```bash theme={null}
chmod +x neuracall.sh
./neuracall.sh llamada.mp3 CALL-001 AGT-001 "Juan Perez" "Evaluación Servicio"
```
