---
title: "Run the gates without publishing"
method: POST
path: "/v25-10-beta/agentic-logic/rules/{ruleId}/run-gates"
tags: ["Agentic Logic"]
---

# Run the gates without publishing

`POST /v25-10-beta/agentic-logic/rules/{ruleId}/run-gates`

## Request

- Base URL: `https://api.intelligems.io`
- URL: `https://api.intelligems.io/v25-10-beta/agentic-logic/rules/{ruleId}/run-gates`
- Auth: API key in header `intelligems-access-token`
- TypeScript: <https://skmtc.dev/intelligems/apis/intelligems-external-api-v25-10-beta/docs/v25-10-beta/agentic-logic/rules/:ruleId/run-gates/post.ts> (a function with typed inputs; its response is checked against the schema)

**Success status:** 202 Accepted.

```http
POST /v25-10-beta/agentic-logic/rules/{ruleId}/run-gates
```

Starts an asynchronous dry run: the full publish gate set against the rule's
saved draft (code rules) or template configuration (builder rules), without
deploying. It never creates a version and never changes the rule's state, so a
paused rule can be checked too.

- `idempotencyKey` (string, optional) — Client-supplied key. Replays as on
  publish, including the `autoAssist` the job was started with. Keys are shared
  with publish: a key a publish already used returns that publish job.
- `autoAssist` (boolean, optional) — Whether a failed dry run of a code rule
  starts AI repair. Defaults to `true`, as on publish. Send `false` to leave a
  failed job failed: no repair run opens, so the platform never rewrites the
  rule's source or republishes it. It does not stop a repair run that is
  already running. It is frozen into this job only.

The endpoint answers `202 Accepted` with `{ "publishJobId": "..." }`. Poll it
with [Poll a publish job](#poll-a-publish-job); its `mode` is `dry_run`, and a
passing dry run ends `succeeded` with no `resultingVersionId`.

Use the `intelligems-access-token` header. The token selects the organization; do not send `orgId`. The organization must have Agentic Logic enabled.

**Rate Limit:** 50 requests per 30s window, refilling 25 tokens every 30s.

## Path parameters

- `ruleId` string, uuid, required

## Request body

- object: Start an async dry-run job that evaluates the validation gates against the rule's current draft without publishing a version. Returns the job handle to poll.
  - `idempotencyKey` string: Client-supplied idempotency key. A repeated request for the same rule and key returns the existing job handle instead of starting another job; keys are shared with publish.
  - `autoAssist` boolean: Whether a failed dry run starts AI repair. Defaults to true. False leaves a failed job failed: this job opens no repair loop, so it never leads the platform to rewrite or republish the rule's source. A repair loop already running for the rule is not stopped. A replay of an existing idempotencyKey returns that job as it was started, whatever this says.

## Response `202`

Accepted

- object
  - `publishJobId` string, required

## Other responses

- `429`: Too Many Requests

---

[API](https://skmtc.dev/intelligems/apis/intelligems-external-api-v25-10-beta.md) - [All operations](https://skmtc.dev/intelligems/apis/intelligems-external-api-v25-10-beta/llms.txt) - [OpenAPI document](https://skmtc.dev/intelligems/apis/intelligems-external-api-v25-10-beta/revisions/7b769b2f90b1?raw)
