---
title: "Apply the routing rules to existing tickets"
method: POST
path: "/products/help-desk/routing-rules/apply"
tags: ["help-desk"]
---

# Apply the routing rules to existing tickets

`POST /products/help-desk/routing-rules/apply`

## Request

- Base URL: `https://api.sparkvault.com/v1`
- URL: `https://api.sparkvault.com/v1/products/help-desk/routing-rules/apply`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sparkvault/apis/sparkvault-api/docs/products/help-desk/routing-rules/apply/post.ts> (a function with typed inputs; its response is checked against the schema)

Start a job that routes every live ticket nobody is assigned to, as it stood when the job started, by the saved rules: the first rule a ticket matches sets its team and priority and adds its tags, as at its arrival. Assigned and closed tickets are left as they are. Org admins only, from their own session, with a Full License; the organization must hold the help desk.

## Response `202`

The job, queued; a re-apply already queued or running is answered instead.

- object
  - `data` HelpDeskJobStarted, required
    - `job_id` string, required: The job: GET /products/help-desk/jobs/{job_id} reports it. Asking again while it is queued or running answers the same job.
  - `meta` ResponseMeta: Envelope metadata present on every successful response.
    - `api_version` string
    - `request_id` string
    - `response_ms` integer
    - `timestamp` integer: Unix seconds.
    - `pools` object: Storage and bandwidth capacity snapshot for the account.
    - `billing` object
      - `past_due` boolean
    - `quota` object: This minute of the account request budget. Present on authenticated success responses that passed the throttle; absent otherwise.
      - `limit` integer
      - `used` integer
      - `remaining` integer
      - `resets_at` integer: Unix seconds.

## Other responses

- `401`: AUTHENTICATION_ERROR — missing or invalid credentials.
- `403`: FORBIDDEN — the caller is not an org admin, or the credential is an API key or an impersonated session. HELP_DESK_SUBSCRIPTION_REQUIRED — the organization does not hold the help desk. LICENSE_REQUIRED — the admin does not hold a Full License.
- `409`: HELP_DESK_NOT_ACTIVE — the desk is not active.
- `503`: JOB_NOT_STARTED — the job could not be started; try again in a moment.

## Changes

- **2026-10-28** `a9a10e328ba5`: 16 info
  - the response property `error/details` became required for the status `401`
  - the response property `error/details` became required for the status `403`
  - the response property `error/details` became required for the status `409`
  - the response property `error/details` became required for the status `503`
  - …12 more
- **2026-10-28** `56d7c265a77a`: 4 breaking
  - the response property `error/details` became nullable for the status `401`
  - the response property `error/details` became nullable for the status `403`
  - the response property `error/details` became nullable for the status `409`
  - the response property `error/details` became nullable for the status `503`
- **2026-10-23** `ad4c62db5e08`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sparkvault/apis/sparkvault-api/changes/products/help-desk/routing-rules/apply/post.md)

---

[API](https://skmtc.dev/sparkvault/apis/sparkvault-api.md) - [All operations](https://skmtc.dev/sparkvault/apis/sparkvault-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sparkvault/apis/sparkvault-api/revisions/97cfadccd0c0?raw)
