---
title: "Create routing rule"
method: POST
path: "/v2/routing-rules"
tags: ["Routing Rules"]
---

# Create routing rule

`POST /v2/routing-rules`

Creates a new routing rule with expression, models configuration, and priority settings.

## Request body

- object
  - `description` string
  - `display_name` string, required
  - `enabled` boolean
  - `expression` ExpressionInput
    - `cel` string, required
  - `models_config` ModelsConfig
    - `mode` 'fallback' | 'latency_based' | 'weighted' | 'round_robin', required
    - `models` ModelRef[], nullable, required
      - `display_name` string
      - `integration_id` string
      - `model` string, required
      - `weight` number, double
  - `priority` integer
  - `project_id` string — Optional project ID. If null/omitted, the entity is global (workspace-wide).

## Response `201`

Routing rule created successfully

- object
  - `_id` string, required
  - `created_at` string, date-time, required
  - `created_by_id` string, required
  - `description` string
  - `display_name` string, required
  - `enabled` boolean, required
  - `expression` Expression
    - `cel` string, required
    - `config` object
  - `models_config` ModelsConfig
    - `mode` 'fallback' | 'latency_based' | 'weighted' | 'round_robin', required
    - `models` ModelRef[], nullable, required
      - `display_name` string
      - `integration_id` string
      - `model` string, required
      - `weight` number, double
  - `priority` integer, required
  - `project_id` string, required
  - `updated_at` string, date-time, required
  - `updated_by_id` string, required

## Other responses

- `400` — Bad request
- `409` — Name conflict

---

[API](https://skmtc.net/orq-ai/apis/orq-ai-api.md) · [All operations](https://skmtc.net/orq-ai/apis/orq-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/orq-ai/orq-ai-api/versions/41c02aedc7c0/schema)
