---
title: "Dry-run de import: valida el JSON y resuelve dependencias, sin crear nada. Body: { doc }"
method: POST
path: "/workspaces/{workspaceId}/flows/import/preview"
tags: ["Flows"]
---

# Dry-run de import: valida el JSON y resuelve dependencias, sin crear nada. Body: { doc }

`POST /workspaces/{workspaceId}/flows/import/preview`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/workspaces/{workspaceId}/flows/import/preview`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Dry-run: valida el documento y te dice qué dependencias hay que resolver, **sin crear ni modificar nada**. Corre esto antes de `POST /flows/import` para saber qué `bindings` mandarle.

## Path parameters

- `workspaceId` number, required

## Response `201`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` FlowImportPreviewResponseDto, required
    - `dependencies` FlowImportPreviewDependencyDto[], required
      - `candidates` FlowImportCandidateDto[], required: Entidades locales del mismo `kind`, para elegir a mano.
        - `id` union, required
          - string
          - number
        - `name` string, required
      - `kind` string, required: `skill`, `mcp`, `collection`, `met`, `function`, `channel`, `flow`, `agent_group`.
      - `local_id` union, required: ID local si se resolvió automáticamente por nombre o código.
        - string
        - number
      - `name` string, required: Nombre humano en el origen: se muestra al importar y sirve para el match automático.
      - `origin_id` union, required: ID en el workspace origen. Informativo: **no** se usa al importar.
        - string
        - number
      - `ref` string, required: Ref estable sin el prefijo `@snapshot:` (ej. `skill:asesor-ventas`).
      - `status` 'resolved' | 'unresolved', required: `unresolved` = hay que elegir a mano (o omitir) antes de importar.
      - `system_code` string, nullable: Código de sistema de la colección (`_contacts`, `_mets`…), si aplica.
    - `edge_count` number, required
    - `existing_flow_id` string, nullable, required: ID del flujo local con el mismo slug. Pásalo como `target_flow_id` al importar para **actualizarlo** en vez de crear un duplicado (idempotente).
    - `flow_name` string, required
    - `node_count` number, required
    - `slug` string, nullable, required
    - `slug_collision` boolean, required: Ya existe un flujo con ese `slug` en el destino.
    - `warnings` FlowLintWarningDto[], required
      - `code` 'unresolved_ref' | 'dropped_reference' | 'possible_secret' | 'skipped_entity' | 'missing_variable', required
      - `message` string, required
      - `where` string: Ubicación aproximada: ref de la entidad + ruta del campo.

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
