API

Introducción

swagger.png

Todo lo que puedes hacer desde la aplicación web está disponible también a través de la API REST de DEDOMENA.AI, de modo que puedes automatizar la anonimización y la generación de datos sintéticos desde tus propias aplicaciones y pipelines. La documentación interactiva (Swagger) está disponible en el endpoint /docs de la API.

Autenticación

Cada petición se autoriza con tu token personal, que se pasa como parámetro de consulta (?token=YOUR_TOKEN). Las peticiones están limitadas por cuenta (rate limit).

Activos

La API trabaja sobre activos que ya has añadido y analizado en la plataforma (consulta Activos en la Guía de Cloud); cada uno se referencia por su assetId. Como los tipos de columna se detectaron durante el análisis, no necesitas volver a describir tus datos al llamar a la API.

Anonimizar

code

POST /nucleus/anonymize?token=YOUR_TOKEN

Envía un cuerpo JSON que indique, para cada columna sensible, el método que se debe aplicar. Puedes anonimizar varias tablas en una sola llamada añadiendo más entradas a datasets.

json

\{

  "anonymizerName": "Customers – shared copy",

  "anonymizerDescription": "Anonymized for the analytics team",

  "anonymizerUseCase": "102",

  "datasets": [

    \{

      "assetId": "a1b2c3d4-...",

      "datasetName": "customers",

      "columns": \{

        "full_name":   \{ "method": "simulation" \},

        "email":       \{ "method": "mask" \},

        "national_id": \{ "method": "hash" \},

        "age":         \{ "method": "generalize", "param": 10 \}

      \}

    \}

  ]

\}

  • Cada columna se asocia a un methodmask, hash, pseudonym, shuffle, generalize, perturb, simulation, coding, o los métodos visuales blur, pixelate, redact— y a un param opcional (por ejemplo, el tamaño del rango para generalize).

  • Cualquier columna que no incluyas se deja sin modificar.

bash

curl -X POST "https://api.dedomena.ai/nucleus/anonymize?token=YOUR_TOKEN" \

     -H "Content-Type: application/json" \

     -d @anonymize_config.json

La respuesta devuelve el estado de la ejecución; el conjunto de datos anonimizado se guarda como un nuevo activo.

Sintetizar

Crear datos sintéticos con la API es un proceso de dos pasos: primero entrenas un sintetizador y después generas datos a partir de él.

Paso 1 — Entrenar

code

POST /nucleus/synthesize?algorithm=ALGORITHM&token=YOUR_TOKEN

ALGORITHM es uno de estos valores: generic, transactional o relational. Proporciona el activo y las opciones de entrenamiento; los tipos de columna se toman automáticamente del análisis, así que no necesitas enumerarlos.

json

\{

  "assetId": "a1b2c3d4-...",

  "synthesizerName": "customers_v1",

  "synthesizerDescription": "Quality mode",

  "epochs": 200,

  "batchSize": 256,

  "amplify": "quality",

  "constraints": ["age\>=18"]

\}

bash

curl -X POST "https://api.dedomena.ai/nucleus/synthesize?algorithm=generic&token=YOUR_TOKEN" \

     -H "Content-Type: application/json" \

     -d @synthesize_config.json

La respuesta incluye un runId y el status del entrenamiento. El entrenamiento se ejecuta en segundo plano; consulta su progreso con los endpoints de ejecuciones que se indican más abajo. (También puedes entrenar desde una base de datos conectada proporcionando un databaseId y un tableName en lugar de un assetId.)

Paso 2 — Generar: una vez finalizado el entrenamiento, crea un conjunto de datos sintético a partir del sintetizador entrenado:

code

POST /nucleus/generate/\{run_id\}?num_rows=100000&token=YOUR_TOKEN

Para muestras pequeñas y bajo demanda puedes usar el endpoint en tiempo real, que devuelve las filas directamente (hasta 5.000):

code

POST /nucleus/generate/realtime/\{run_id\}?num_rows=...&replicate_outliers=yes|no

Paso 3 — Descargar: recupera el conjunto de datos generado en el formato que prefieras:

code

GET /nucleus/download/syntheticdata/\{run_id\}?file_format=CSV&token=YOUR_TOKEN

Formatos disponibles: CSV, PARQUET, AVRO, JSON.

Gestión de ejecuciones

EndpointFinalidad
GET /nucleus/runs/listLista todos tus sintetizadores entrenados.
GET /nucleus/runs/info/\{run_id\}Obtiene los detalles y el estado de un sintetizador.
GET /nucleus/runs/logs/\{run_id\}Obtiene los logs de entrenamiento de una ejecución.
POST /nucleus/uploadmodelSube un sintetizador entrenado localmente con Nucleus Edge (consulta Subida de sintetizadores).

Todos los endpoints de ejecuciones reciben tu token como parámetro de consulta.