---
title: "Run a routine now"
method: POST
path: "/routines/{id}/run"
tags: ["Routines"]
---

# Run a routine now

`POST /routines/{id}/run`

## Request

- Base URL: `https://elicit.com/api/v2`
- URL: `https://elicit.com/api/v2/routines/{id}/run`
- Auth: HTTP bearer

Queues one immediate occurrence of an active routine. Each executed run consumes an agent turn. An accepted request may be skipped if another run starts before it is processed; skipped requests do not appear in run history. A second manual request while one is queued, or while a run is active, returns `409 routine_run_already_pending`.

A `202` means the request was queued, not that the run completed. Use the runs endpoint to observe runs that were admitted.

## Path parameters

- `id` string, uuid, required: Routine ID returned by a routine list or create response.

## Response `202`

The immediate run request was accepted and queued.

- RoutineRunRequest
  - `routine` Routine, required: A recurring Research Agent instruction. Archival is represented by a non-null removedAt rather than a separate status value.
    - `id` string, uuid, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `name` string, required
    - `status` 'active' | 'paused', required
    - `pauseReason` union, required
      - 'scheduler_projection_failed' | 'task_owner_lost_access' | 'session_unavailable' | 'session_owner_ineligible' | 'owner_plan_ineligible' | 'invalid_configuration'
      - string
    - `removedAt` string, nullable, required
    - `removedReason` 'user' | 'session_removed' | 'session_deleted' | 'null', nullable, required
    - `sessionId` string, required
    - `instruction` string, required
    - `schedule` object, required
      - `cadence` 'daily' | 'weekly', required
      - `dayOfWeek` integer, nullable, required
      - `runAtLocalTime` string, required
      - `timeZone` string, required
    - `ownerNotificationLevel` 'all_runs' | 'output_or_attention' | 'attention_only', required
  - `runRequestId` string, required: Queue request ID for the accepted immediate run.

## Other responses

- `400`: A path ID, query parameter, body field, schedule, cursor, or filter/sort combination is invalid.
- `401`: Authentication failed. The API key is missing, invalid, revoked, or expired.
- `403`: API access or routines are unavailable, or your role does not allow this action.
- `404`: The routine or requested session does not exist or is not accessible to you.
- `409`: The routine state changed, does not allow this operation, its session cannot run agent work, or another immediate run is already pending. Check the error code before retrying.
- `429`: Rate limit exceeded. More than 100 requests per minute were received from your IP address; further requests are blocked for 5 minutes.
- `500`: An unexpected error occurred. Retry reads with backoff; before retrying a write, check whether it took effect. See Error Handling for retry guidance.

## Changes

- **2026-10-16** `22847bf7e65d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/changes/routines/:id/run/post.md)

---

[API](https://skmtc.dev/elicitlabs/apis/elicit-labs-api.md) - [All operations](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/revisions/cbbe29509d04?raw)
