---
title: "Import Routing Environment"
method: POST
path: "/api/v1/routing-environment/import"
tags: ["Routing Environment"]
---

# Import Routing Environment

`POST /api/v1/routing-environment/import`

Seed (or top up) the environment from live config. Idempotent.

## Query parameters

- `channel` 'voice' | 'text'

## Response `200`

Successful Response

- RoutingEnvironmentRead
  - `id` string, uuid, required
  - `name` string, required
  - `channel` 'voice' | 'text', required
  - `nodes` RoutingNode[], required
    - `id` string, uuid
    - `kind` 'voice_agent' | 'human_agent' | 'external_line' | 'property' | 'destination' | 'fallback' | 'actions' | 'text_agent' | 'text_specialist' | 'human', required
    - `label` string, required
    - `voice_agent_id` string, uuid, nullable
    - `human_agent_id` string, uuid, nullable
    - `phone_number` string, nullable
    - `property_id` string, uuid, nullable
    - `routing_destination_id` string, uuid, nullable
    - `report_agent_id` string, uuid, nullable
    - `text_agent_id` string, uuid, nullable
    - `parent_id` string, uuid, nullable
    - `position` RoutingNodePosition
      - `x` number
      - `y` number
    - `size` RoutingNodeSize — Manual node dimensions (px), set by dragging the node's resize handles. Any node kind may carry one. ``None`` means "size yourself": a ``property`` container auto-fits its children, every other kind sizes to its content. A saved size is a floor-adjusted override on the map — for containers it is never allowed to clip the children it holds.
      - `width` number, required
      - `height` number, required
    - `pre_pickup_size` RoutingNodeSize — Manual node dimensions (px), set by dragging the node's resize handles. Any node kind may carry one. ``None`` means "size yourself": a ``property`` container auto-fits its children, every other kind sizes to its content. A saved size is a floor-adjusted override on the map — for containers it is never allowed to clip the children it holds.
      - `width` number, required
      - `height` number, required
    - `pre_pickup_offset` RoutingNodePosition
      - `x` number
      - `y` number
    - `text_style` RoutingNodeTextStyle — Manual text styling for a node's card, set from the map's selection toolbar. Purely presentational — nothing here reaches the runtime. ``font_size`` is the card TITLE's size in px; the detail and meta lines scale from it proportionally, so one number moves the whole card ramp and the cards keep their internal hierarchy. Exists because a card resized large kept 13px text, leaving an operator to zoom all the way in to read a deliberately prominent node. ``None`` on the node means "use the map default" (13px title, semibold) — stored as absence rather than as the defaults, so a later change to the default ramp reaches every card nobody has styled by hand.
      - `font_size` number, required
      - `font_weight` 400 | 500 | 600 | 700
    - `notes` string, nullable
  - `tenant_id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

> 24 revisions in range; 1 not diffed.

- **2026-09-05** `38166468bfc5` — 1 info
  - added the optional property `nodes/items/text_style` to the response with the `200` status
- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/routing-environment/import/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/ae7627cd46da?raw)
