Knowledge API
Añade knowledge a tus minds mediante archivos, palabras clave o links.
Añade knowledge a tus minds mediante tres métodos: archivo, palabra clave o link. El knowledge se procesa, se convierte en embeddings y se recupera automáticamente durante las conversaciones.
Nota: listar, añadir y eliminar están disponibles vía la API v1. El enriquecimiento de knowledge por búsqueda de palabras clave también está soportado a través del mismo endpoint de añadir.
Listar elementos de knowledge
Recupera todos los elementos de knowledge de un mind.
Endpoint: GET /api/v1/sparks/{sparkId}/knowledge
Headers:
Authorization: Bearer minds_your_api_key
Ejemplo:
curl -X GET "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge" \
-H "Authorization: Bearer minds_your_api_key"
Response:
{
"success": true,
"data": {
"items": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"description": "Company Employee Handbook 2025",
"link": null,
"filePath": "portfolio/user-id/1234567890_handbook.pdf",
"isWatched": false,
"createdAt": "2025-12-10T12:00:00.000Z",
"updatedAt": "2025-12-10T12:00:00.000Z"
}
],
"total": 1
}
}
| Campo | Tipo | Descripción |
|---|---|---|
data.items | array | Array de objetos de elemento de knowledge |
data.total | number | Número total de elementos de knowledge de este mind |
Subida de archivos
Sube documentos o imágenes directamente a un mind.
Endpoint: POST /api/v1/sparks/{sparkId}/knowledge
Content-Type: multipart/form-data
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
file | file | Sí | Archivo a subir (máx. 50 MB) |
description | string | Sí | Descripción del contenido |
Formatos soportados:
- Documentos: PDF, DOCX, DOC, TXT, MD, RTF, CSV, JSON, XML
- Imágenes: JPG, JPEG, PNG, GIF, WEBP
Ejemplo:
curl -X POST "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge" \
-H "Authorization: Bearer minds_your_api_key" \
-F "file=@./handbook.pdf" \
-F "description=Company Employee Handbook 2025"
Response: 201 Created
{
"success": true,
"data": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"description": "Company Employee Handbook 2025",
"filePath": "portfolio/user-id/1234567890_handbook.pdf",
"createdAt": "2025-12-10T12:00:00.000Z"
}
}
Búsqueda por palabras clave
Añade knowledge buscando palabras clave en la web. Busca en Exa y YouTube, extrae el contenido y lo añade al knowledge base del mind.
Endpoint: POST /api/v1/sparks/{sparkId}/knowledge
Content-Type: application/json
Envía un body JSON con un array keywords (en lugar de link/file) para disparar el enriquecimiento por web search.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
keywords | string | Sí | Palabras clave a buscar (máx. 35) |
regeneratePrompt | boolean | No | Regenerar el system prompt después (por defecto: true) |
Ejemplo:
curl -X POST "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge" \
-H "Authorization: Bearer minds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"keywords": ["solar panel efficiency", "photovoltaic trends"]}'
Response: 202 Accepted
{
"success": true,
"data": {
"sparkId": "660e8400-e29b-41d4-a716-446655440000",
"keywords": ["solar panel efficiency", "photovoltaic trends"],
"queued": true,
"regeneratePrompt": true,
"message": "Knowledge enrichment queued with 2 keyword(s)."
}
}
Nota: esto es asíncrono. El procesamiento se ejecuta en segundo plano y puede tardar varios minutos.
Link
Añade knowledge desde una URL. Soporta páginas web, videos de YouTube y papers de investigación.
Endpoint: POST /api/v1/sparks/{sparkId}/knowledge
Content-Type: application/json
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
link | string | Sí | URL al contenido web |
description | string | Sí | Descripción del contenido |
Ejemplo:
curl -X POST "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge" \
-H "Authorization: Bearer minds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"link": "https://example.com/article", "description": "Industry trends article"}'
Response: 201 Created
{
"success": true,
"data": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"link": "https://example.com/article",
"description": "Industry trends article",
"createdAt": "2025-12-10T12:00:00.000Z"
}
}
Tipos de link soportados:
- Páginas web (contenido extraído mediante scraping)
- Videos de YouTube (transcripciones extraídas automáticamente)
- Papers de investigación (arxiv, etc.)
Watch (auto-update)
Los elementos de knowledge basados en link pueden "watchearse" para comprobar automáticamente actualizaciones de contenido en un ciclo semanal. Cuando se detectan cambios, el knowledge se reprocesa y se vuelve a embedder.
Watch se gestiona desde la UI del producto. El estado de watch es visible al listar elementos de knowledge vía la API (campo isWatched).
Nota: watch solo está disponible para knowledge basado en link, no para archivos ni búsquedas por palabras clave.
Actualizar elemento de knowledge
Actualiza la descripción de un elemento de knowledge existente.
Endpoint: PUT /api/v1/sparks/{sparkId}/knowledge/{itemId}
Headers:
Authorization: Bearer minds_your_api_key
Content-Type: application/json
Request Body:
{
"description": "Updated description for this knowledge item"
}
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
description | string | Sí | Descripción actualizada (no puede estar vacía) |
Ejemplo:
curl -X PUT "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge/{itemId}" \
-H "Authorization: Bearer minds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"description": "Updated handbook description"}'
Response:
{
"success": true,
"data": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"description": "Updated handbook description",
"link": null,
"filePath": "portfolio/user-id/1234567890_handbook.pdf",
"isWatched": false,
"createdAt": "2025-12-10T12:00:00.000Z",
"updatedAt": "2025-12-15T08:30:00.000Z"
}
}
Respuestas de error
400 Bad Request - No hay campos válidos para actualizar o descripción vacía
401 Unauthorized - API key no válida o ausente
404 Not Found - Elemento de knowledge o mind no encontrado
Enriquecer vía palabras clave (conveniencia)
Alias de conveniencia para el enriquecimiento de knowledge basado en palabras clave.
Endpoint: POST /api/v1/sparks/{sparkId}/knowledge/enrich
Esto es equivalente a POST /api/v1/sparks/{sparkId}/knowledge con un body de keywords. Consulta Búsqueda por palabras clave para todos los detalles.
Ejemplo:
curl -X POST "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge/enrich" \
-H "Authorization: Bearer minds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"keywords": ["solar panel efficiency", "photovoltaic trends"]}'
Eliminar elemento de knowledge
Elimina permanentemente un elemento de knowledge y todos los datos asociados (embeddings, patterns, archivos).
Endpoint: DELETE /api/v1/sparks/{sparkId}/knowledge/{itemId}
Headers:
Authorization: Bearer minds_your_api_key
Ejemplo:
curl -X DELETE "https://getminds.ai/api/v1/sparks/{sparkId}/knowledge/{itemId}" \
-H "Authorization: Bearer minds_your_api_key"
Response: 204 No Content (body vacío en caso de éxito)
Qué se elimina
- El registro del elemento de knowledge
- Todos los vector embeddings asociados
- Todos los patterns asociados
- El archivo subido al storage (si es basado en archivo)
Advertencia: esta acción no se puede deshacer.
Cómo funciona el procesamiento
- Upload - El contenido se almacena y la API devuelve éxito
- Extracción - El procesamiento en background extrae el texto (scraping, transcripciones, OCR, visión)
- Embedding - El contenido se convierte a vector embeddings
- Recuperación - Durante el chat, el knowledge relevante se recupera automáticamente por búsqueda semántica
Errores
| Código | Mensaje | Causa |
|---|---|---|
| 400 | Link and description are required | Faltan campos requeridos |
| 400 | Keywords array is required | Palabras clave vacías o ausentes |
| 400 | File too large | El archivo supera el límite de 50 MB |
| 400 | Can only watch link-based knowledge | Se intentó watchear un archivo |
| 404 | Spark not found or access denied | ID de spark no válido o sin acceso |
| 415 | Unsupported Content-Type | Header Content-Type incorrecto |