---
title: "Add a Route to the end of the Routing table"
method: POST
path: "/routes/{id}/append"
tags: ["routes"]
---

# Add a Route to the end of the Routing table

`POST /routes/{id}/append`

Add a Route to the end of the specified Routing table.

## Path parameters

- `id` string, required

## Request body

- RouteConfInput[]
  - `clones` RouteCloneConf[] — Array of clone configurations, each with a key-value pair to set or overwrite in cloned events. Original events continue to the next Route.
  - `context` string — Context for the Route: <code>group</code> (Worker Group or Edge Fleet) or <code>pack</code>.
  - `description` string — Brief description of the Route.
  - `disabled` boolean — If <code>true</code>, disable the Route. Otherwise, <code>false</code>.
  - `enableOutputExpression` boolean — If <code>true</code>, use the <code>outputExpression</code> for dynamic Destination selection. Otherwise, <code>false</code>.
  - `filter` string — JavaScript expression to select events for routing.
  - `groupId` string — Unique identifier for the Route Group that the Route is associated with.
  - `name` string, required — Name of the Route.
  - `output` string — Destination that the Route sends matching events to after the Pipeline processes the events.
  - `outputExpression` string — JavaScript expression to evaluate for dynamic Destination selection. Evaluation occurs when the Route is constructed, not for each event.
  - `pipeline` string, required — Pipeline that the Route sends matching events to.
  - `targetContext` 'group' | 'pack'
  - `final` boolean — If <code>true</code> (default), the Route processes matched events and sends them to the specified Pipeline. Matched events do not continue to the next Route, but non-matched events do continue to the next Route. If <code>false</code>, the Route processes matched events and sends them to the specified Pipeline, and all events (matched and non-matched) continue to the next Route. Must be <code>false</code> to clone events.
  - `id` string — Unique identifier for the Route. If omitted, the server generates a deterministic identifier.

## Response `200`

The updated Routing table object in a single-item list.

- CountedRoutes
  - `count` integer, required — number of items present in the items array
  - `items` Routes[], required — List of items in this response.
    - `comments` RouteComment[] — Array of user-provided comments that describe or annotate Routes.
      - `comment` string, required — Brief description of the Route.
      - `groupId` string — Unique identifier for the Route Group that the Route is associated with.
      - `id` string, required — Unique identifier for the comment.
      - `index` integer, required — Relative position of the comment among all comments for the Route.
    - `groups` object — Information about the Route Groups that the Route is associated with.
    - `id` string, required — Unique identifier for the Routing table. The supported value is <code>default</code>.
    - `routes` RouteConf[], required — Array of Route configurations that define how events are processed and routed.
      - `clones` RouteCloneConf[] — Array of clone configurations, each with a key-value pair to set or overwrite in cloned events. Original events continue to the next Route.
      - `context` string — Context for the Route: <code>group</code> (Worker Group or Edge Fleet) or <code>pack</code>.
      - `description` string — Brief description of the Route.
      - `disabled` boolean — If <code>true</code>, disable the Route. Otherwise, <code>false</code>.
      - `enableOutputExpression` boolean — If <code>true</code>, use the <code>outputExpression</code> for dynamic Destination selection. Otherwise, <code>false</code>.
      - `filter` string — JavaScript expression to select events for routing.
      - `final` boolean, required — If <code>true</code> the Route processes matched events and sends them to the specified Pipeline. Matched events do not continue to the next Route, but non-matched events do continue to the next Route. If <code>false</code>, the Route processes matched events and sends them to the specified Pipeline, and all events (matched and non-matched) continue to the next Route. Must be <code>false</code> to clone events.
      - `groupId` string — Unique identifier for the Route Group that the Route is associated with.
      - `id` string, required — Unique identifier for the Route.
      - `name` string, required — Name of the Route.
      - `output` string — Destination that the Route sends matching events to after the Pipeline processes the events.
      - `outputExpression` string — JavaScript expression to evaluate for dynamic Destination selection. Evaluation occurs when the Route is constructed, not for each event.
      - `pipeline` string, required — Pipeline that the Route sends matching events to.
      - `targetContext` 'group' | 'pack'

## Other responses

- `400` — Failed validation or malformed input. The request body must be an array of Route configurations.
- `401` — Authentication failed (missing or invalid credentials or Bearer token).
- `404` — Routing table not found. The specified <code>id</code> does not match any stored Routing table.
- `500` — Unexpected server error.

---

[API](https://skmtc.dev/criblio/apis/cribl-api-reference.md) · [All operations](https://skmtc.dev/criblio/apis/cribl-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/criblio/cribl-api-reference/revisions/56cb25079271/schema)
