Referencia

Bibliotecas

Bibliotecas de conocimiento y sus archivos, el contexto que un turno puede adjuntar.

Listar bibliotecas

GETapi.niucore.com/api/v1/libraries

Scope: libraries:read

Bibliotecas accesibles para la credencial, ordenadas por nombre.

Consulta

pageintegerpor defecto 1

Página, empezando en 1.

sizeintegerpor defecto 50

Elementos por página. Máximo 200.

Devuelve

idinteger

Identificador.

slugstring

Slug interno.

namestring

Nombre.

descriptionstring | null

Descripción.

area_idsinteger[]

Áreas que la tienen asignada.

created_atstring (date-time)

Creación.

updated_atstring (date-time)

Última edición.

curl -sS -X GET 'https://api.niucore.com/api/v1/libraries' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": [
    {
      "id": 31,
      "slug": "procedimientos-de-soporte",
      "name": "Procedimientos de soporte",
      "description": "Manuales internos del equipo de soporte.",
      "area_ids": [
        4,
        9
      ],
      "created_at": "2026-06-11T09:31:00Z",
      "updated_at": "2026-08-30T18:12:04Z"
    }
  ],
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77",
    "page": 1,
    "size": 50,
    "total": 1
  }
}

Crear una biblioteca

POSTapi.niucore.com/api/v1/libraries

Scope: libraries:write

Crea la biblioteca, su asignación de áreas y su prompt por defecto, en una sola transacción. Devuelve 201.

Nota

El modelo de embedding lo fija el servidor, no el cliente: elegirlo desde fuera rompería la paridad con el servicio que indexa los documentos.

Atención

Subir y eliminar archivos no está en la v1.0. La API lee bibliotecas y archivos, y crea o edita bibliotecas; la carga de documentos sigue siendo de la aplicación.

Cuerpo

namestringobligatorio

Entre 2 y 100 caracteres.

descriptionstring

Hasta 2000 caracteres.

area_idsinteger[]

Áreas a las que se asigna. Todas tienen que estar en el alcance de la credencial.

Errores

  • 403api_v1_resource_policy_create_deniedLa credencial está limitada a recursos concretos (allowlist) y no puede crear nuevos de este tipo.
  • 403api_v1_resource_not_allowedUn area_id está fuera del alcance. Acá sí es 403 y no 404: el cliente nombró el recurso explícitamente.
  • 503api_v1_library_embedding_unavailableNo hay modelo de embedding disponible para crear bibliotecas.
curl -sS -X POST 'https://api.niucore.com/api/v1/libraries' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Procedimientos de soporte",
    "description": "Manuales internos del equipo de soporte.",
    "area_ids": [
      4,
      9
    ]
  }'
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 31,
    "slug": "procedimientos-de-soporte",
    "name": "Procedimientos de soporte",
    "description": "Manuales internos del equipo de soporte.",
    "area_ids": [
      4,
      9
    ],
    "created_at": "2026-06-11T09:31:00Z",
    "updated_at": "2026-08-30T18:12:04Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Ver una biblioteca

GETapi.niucore.com/api/v1/libraries/{library_id}

Scope: libraries:read

Detalle de una biblioteca.

Ruta

library_idintegerobligatorio

Identificador.

Errores

  • 404api_v1_not_foundNo existe, o está fuera del alcance de la credencial. Los dos casos responden igual: un 403 confirmaría que el recurso existe.
curl -sS -X GET 'https://api.niucore.com/api/v1/libraries/31' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 31,
    "slug": "procedimientos-de-soporte",
    "name": "Procedimientos de soporte",
    "description": "Manuales internos del equipo de soporte.",
    "area_ids": [
      4,
      9
    ],
    "created_at": "2026-06-11T09:31:00Z",
    "updated_at": "2026-08-30T18:12:04Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Editar una biblioteca

PATCHapi.niucore.com/api/v1/libraries/{library_id}

Scope: libraries:write

Actualiza nombre, descripción y asignación de áreas. Los campos omitidos no se tocan.

Ruta

library_idintegerobligatorio

Identificador.

Cuerpo

namestring

Nuevo nombre.

descriptionstring

Nueva descripción.

area_idsinteger[]

Reemplaza la lista completa de áreas.

Errores

  • 404api_v1_not_foundNo existe, o está fuera del alcance de la credencial. Los dos casos responden igual: un 403 confirmaría que el recurso existe.
curl -sS -X PATCH 'https://api.niucore.com/api/v1/libraries/31' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Manuales internos del equipo de soporte (rev. 2026-09)."
  }'
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 31,
    "slug": "procedimientos-de-soporte",
    "name": "Procedimientos de soporte",
    "description": "Manuales internos del equipo de soporte (rev. 2026-09).",
    "area_ids": [
      4,
      9
    ],
    "created_at": "2026-06-11T09:31:00Z",
    "updated_at": "2026-08-30T18:12:04Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Listar archivos

GETapi.niucore.com/api/v1/libraries/{library_id}/files

Scope: libraries:read

Archivos de la biblioteca, del más reciente al más antiguo.

Ruta

library_idintegerobligatorio

Identificador de la biblioteca.

Consulta

pageintegerpor defecto 1

Página, empezando en 1.

sizeintegerpor defecto 50

Elementos por página. Máximo 200.

Devuelve

idinteger

Identificador.

library_idinteger

Biblioteca dueña.

namestring

Nombre interno del documento.

file_namestring

Nombre del archivo original.

titlestring | null

Título.

document_typestring

Tipo de documento.

sizeinteger

Tamaño en bytes.

Errores

  • 404api_v1_not_foundNo existe, o está fuera del alcance de la credencial. Los dos casos responden igual: un 403 confirmaría que el recurso existe.
curl -sS -X GET 'https://api.niucore.com/api/v1/libraries/31/files' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": [
    {
      "id": 902,
      "library_id": 31,
      "name": "DOC2149_902.txt",
      "file_name": "politica-devoluciones.pdf",
      "title": "Política de devoluciones",
      "description": "Vigente desde 2026-01",
      "document_type": "pdf",
      "size": 184320,
      "created_at": "2026-06-12T10:02:44Z"
    }
  ],
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77",
    "page": 1,
    "size": 50,
    "total": 1
  }
}

Ver un archivo

GETapi.niucore.com/api/v1/files/{file_id}

Scope: libraries:read

Detalle de un archivo. Hereda el alcance de su biblioteca: sin ella permitida, el archivo no existe para la credencial.

Ruta

file_idintegerobligatorio

Identificador del archivo.

Errores

  • 404api_v1_not_foundNo existe, o está fuera del alcance de la credencial. Los dos casos responden igual: un 403 confirmaría que el recurso existe.
curl -sS -X GET 'https://api.niucore.com/api/v1/files/902' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 902,
    "library_id": 31,
    "name": "DOC2149_902.txt",
    "file_name": "politica-devoluciones.pdf",
    "title": "Política de devoluciones",
    "description": "Vigente desde 2026-01",
    "document_type": "pdf",
    "size": 184320,
    "created_at": "2026-06-12T10:02:44Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}