Referencia

Habilidades

Instrucciones reutilizables que se adjuntan a un turno.

Listar habilidades

GETapi.niucore.com/api/v1/skills

Scope: skills:read

Habilidades visibles para la credencial: las propias, las de la empresa y las compartidas con el usuario.

Consulta

pageintegerpor defecto 1

Página, empezando en 1.

sizeintegerpor defecto 50

Elementos por página. Máximo 200.

curl -sS -X GET 'https://api.niucore.com/api/v1/skills' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": [
    {
      "id": 147,
      "name": "Redactar respuesta a cliente",
      "description": "Tono formal, máximo tres párrafos.",
      "instructions": "Respondé al cliente con tono formal…",
      "icon": "mail",
      "level": "company",
      "visibility": "public",
      "workspace_id": null,
      "is_active": true,
      "created_at": "2026-07-02T11:14:29Z"
    }
  ],
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77",
    "page": 1,
    "size": 50,
    "total": 1
  }
}

Crear una habilidad

POSTapi.niucore.com/api/v1/skills

Scope: skills:write

Crea una habilidad. Devuelve 201.

Cuerpo

namestringobligatorio

Hasta 255 caracteres.

instructionsstringobligatorio

Las instrucciones que el modelo recibe cuando la habilidad se adjunta. Hasta 12 000 caracteres. Puede citar bibliotecas, archivos, conectores, herramientas y otras habilidades con {{tipo:id}}: ver Referencias a recursos.

descriptionstring

Hasta 500 caracteres.

iconstring

Icono.

levelstringpor defecto personal

Alcance de la habilidad.

personalcompanyworkspace

visibilitystringpor defecto public

Quién la ve.

publicprivateshared

workspace_idinteger

Biblioteca dueña, con level: "workspace". Tiene que estar en el alcance.

shared_user_idsinteger[]

Usuarios con acceso, con visibility: "shared". Tienen que ser de la misma empresa; los ids salen de `GET /users`.

Errores

  • 403api_v1_resource_policy_create_deniedLa credencial está limitada a recursos concretos (allowlist) y no puede crear nuevos de este tipo.
  • 422prompt_refs_invalidinstructions cita recursos que no existen, que el usuario no puede usar o que este tipo no admite. data[0] los agrupa por categoría y nada se guarda. Ver Referencias a recursos.
  • 422prompt_text_too_longinstructions supera 12 000 caracteres.
  • 403api_v1_resource_not_allowedEl workspace_id o algún shared_user_ids está fuera del alcance.
curl -sS -X POST 'https://api.niucore.com/api/v1/skills' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Redactar respuesta a cliente",
    "instructions": "Respondé al cliente con tono formal, en un máximo de tres párrafos.",
    "description": "Tono formal, máximo tres párrafos.",
    "level": "company",
    "visibility": "public"
  }'
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 147,
    "name": "Redactar respuesta a cliente",
    "description": "Tono formal, máximo tres párrafos.",
    "instructions": "Respondé al cliente con tono formal…",
    "icon": "mail",
    "level": "company",
    "visibility": "public",
    "workspace_id": null,
    "is_active": true,
    "created_at": "2026-07-02T11:14:29Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Ver una habilidad

GETapi.niucore.com/api/v1/skills/{skill_id}

Scope: skills:read

Detalle de una habilidad.

Ruta

skill_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/skills/147' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 147,
    "name": "Redactar respuesta a cliente",
    "description": "Tono formal, máximo tres párrafos.",
    "instructions": "Respondé al cliente con tono formal…",
    "icon": "mail",
    "level": "company",
    "visibility": "public",
    "workspace_id": null,
    "is_active": true,
    "created_at": "2026-07-02T11:14:29Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Editar una habilidad

PATCHapi.niucore.com/api/v1/skills/{skill_id}

Scope: skills:write

Actualiza los campos enviados. El level no se edita: una habilidad no cambia de alcance.

Ruta

skill_idintegerobligatorio

Identificador.

Cuerpo

namestring

Nuevo nombre.

instructionsstring

Nuevas instrucciones. Si cambian, sus referencias {{tipo:id}} se revalidan todas.

descriptionstring

Descripción.

iconstring

Icono.

visibilitystring

Nueva visibilidad.

publicprivateshared

workspace_idinteger

Biblioteca dueña.

shared_user_idsinteger[]

Reemplaza la lista de compartidos. Los ids salen de `GET /users`.

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.
  • 422prompt_refs_invalidinstructions cita recursos que no existen, que el usuario no puede usar o que este tipo no admite. data[0] los agrupa por categoría y nada se guarda. Ver Referencias a recursos.
  • 422prompt_text_too_longinstructions supera 12 000 caracteres.
curl -sS -X PATCH 'https://api.niucore.com/api/v1/skills/147' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Tono formal, máximo dos párrafos."
  }'
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 147,
    "name": "Redactar respuesta a cliente",
    "description": "Tono formal, máximo dos párrafos.",
    "instructions": "Respondé al cliente con tono formal…",
    "icon": "mail",
    "level": "company",
    "visibility": "public",
    "workspace_id": null,
    "is_active": true,
    "created_at": "2026-07-02T11:14:29Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Activar o desactivar

PATCHapi.niucore.com/api/v1/skills/{skill_id}/toggle

Scope: skills:write

Invierte el estado activo. No recibe cuerpo: el nuevo valor es siempre el contrario del actual.

Ruta

skill_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 PATCH 'https://api.niucore.com/api/v1/skills/147/toggle' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 147,
    "name": "Redactar respuesta a cliente",
    "description": "Tono formal, máximo tres párrafos.",
    "instructions": "Respondé al cliente con tono formal…",
    "icon": "mail",
    "level": "company",
    "visibility": "public",
    "workspace_id": null,
    "is_active": false,
    "created_at": "2026-07-02T11:14:29Z"
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}

Eliminar una habilidad

DELETEapi.niucore.com/api/v1/skills/{skill_id}

Scope: skills:write

Borrado lógico.

Ruta

skill_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 DELETE 'https://api.niucore.com/api/v1/skills/147' \
  -H "Authorization: Bearer $NIUCORE_ACCESS_TOKEN"
Respuesta
{
  "status": "success",
  "message": "Operación exitosa",
  "message_code": "api_v1_ok",
  "data": {
    "id": 147
  },
  "meta": {
    "request_id": "9f1c0a3e-7b2d-4f18-9a55-2c6e0d1b4a77"
  }
}