Claix Retrieve

Routes Actions

Crea, edita y elimina rutas de Retrieve por API. Las tablas y columnas deben coincidir con tu Data Map publicado.

Rutas · Editar

Editar una ruta por API

Endpoint

PUThttps://claix.dev/routes/edit/{route_id}

Actualiza una ruta existente de tu cuenta: nombre, descripción, reglas y selección de tablas/columnas. Valida todo contra el Data Map publicado. Si ya hay un borrador, lo actualiza; si no, crea una nueva versión borrador.

Sustituye {route_id} por el UUID de la ruta. También se admite POST con el mismo cuerpo.

Esta llamada es gratuita: no se factura.

1. Autenticación

Misma autenticación que al crear una ruta:

x-api-key: <TU_API_KEY>

o

Authorization: Bearer <TU_API_KEY>

Solo puedes editar rutas de la cuenta asociada a la API key. Si el UUID no existe o es de otra cuenta, responde 404.

2. Formato de la petición

Método: PUT (también POST) · Content-Type: application/json

El route_id va en la URL. El cuerpo usa los mismos campos obligatorios que POST /routes:

CampoTipoObligatorioDescripción
route_id (URL)uuidSíIdentificador de la ruta en /routes/edit/{route_id}.
namestringSíNuevo nombre visible (1–80).
descriptionstringSíNueva descripción (10–300 caracteres).
rulesstringSíNuevas reglas de la ruta.
tablesarraySíNueva selección de tablas y columnas del Data Map.

Si falta cualquier campo del cuerpo, el error 400 lo menciona por nombre.

3. Cómo construir la llamada

  1. Obtén el route_id (respuesta de crear ruta o del dashboard).
  2. Construye la URL https://claix.dev/routes/edit/<route_id>.
  3. Envía PUT (o POST) con name, description, rules y tables completos.
  4. Comprueba 200 y revisa route.version en la respuesta.

4. Ejemplos de llamada

Consulta el panel de la derecha para ver ejemplos en cURL, JavaScript, Node.js, Python, PHP y n8n.

5. Formato de la respuesta exitosa

200 OK · Content-Type: application/json

{
  "success": true,
  "route": {
    "route_id": "7c2f9a1e-4b8d-4e6a-9f21-0a1b2c3d4e5f",
    "name": "Agenda de citas",
    "slug": "agenda_de_citas",
    "description": "Consulta la agenda de la clínica: pacientes, horarios y estado de la cita.",
    "status": "draft",
    "updated_at": "2026-10-19T18:00:00.000Z",
    "version": {
      "version_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "version": 2,
      "status": "draft",
      "rules": "Solo SELECT. Filtra por clínica del usuario. No expongas teléfonos ni emails.",
      "definition": {
        "schema_version": 1,
        "tables": [
          {
            "name": "appointments",
            "description": "Citas de la clínica",
            "columns": [
              {
                "name": "id",
                "type": "uuid",
                "nullable": false,
                "is_primary_key": true,
                "description": "Identificador de la cita",
                "sensitivity_hint": "none"
              }
            ]
          }
        ]
      },
      "validation": {
        "valid": true,
        "errors": [],
        "warnings": [],
        "validated_at": "2026-10-19T17:00:00.000Z"
      }
    }
  },
  "warnings": []
}

La versión sigue en draft. Si quieres que el agente use estos cambios en producción, publícala desde el dashboard.

6. Errores frecuentes

HTTPCuándo
401API key ausente, inválida o cuenta inactiva.
404La ruta no existe o no pertenece a tu cuenta.
400Falta un parámetro, route_id inválido, o tablas/columnas fuera del Data Map.
405Método no permitido.
500Error interno al guardar.

Ejemplo de error:

{
  "error": "Descripción legible del problema.",
  "detalle": "Información técnica adicional (solo presente en algunos casos).",
  "log_id": "7c2e1a90-4b3d-4f8a-9e21-6d5c8b0a1f34"
}

Ejemplos de petición

curl -X PUT "https://claix.dev/routes/edit/7c2f9a1e-4b8d-4e6a-9f21-0a1b2c3d4e5f" \
  -H "x-api-key: <TU_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{  "name": "Agenda de citas",  "description": "Consulta la agenda de la clínica: pacientes, horarios y estado de la cita.",  "rules": "Solo SELECT. Filtra por clínica del usuario. Incluye el estado de la cita.",  "tables": [    {      "name": "appointments",      "columns": ["id", "patient_id", "starts_at", "status", "notes"]    },    {      "name": "patients",      "columns": ["id", "full_name"]    }  ]}'