> Source: https://wexa.ai/docs/agents/pause-execution

# pause-execution

Pause a running execution, the same as Pause in the console. Only a run that is `running` or `ready` can be paused. Needs the `fabric:agent.run` grant.

The shape of `result` for `pause-execution` is not recorded here: it was not captured against a live deployment. Call it once and read what comes back rather than assuming a shape.

**Pause a run**

**Wexa MCP server**

```bash
curl -sS -X POST https://fabric.wexa.ai/mcp/$FABRIC_PROJECT_ID \
  -H "authorization: Bearer $FABRIC_API_KEY" \
  -H "Mcp-Session-Id: $MCP_SESSION_ID" \
  -H "content-type: application/json" -H "accept: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"pause-execution","arguments":{"execution_id":"0b6f6f5e-6b43-4c0e-9a51-6d9f6a1c2e11"}}}'
```

**REST API**

```bash
curl -sS https://fabric.wexa.ai/v1/pause-execution \
  -H "authorization: Bearer $FABRIC_API_KEY" \
  -H "content-type: application/json" \
  -d '{"execution_id":"0b6f6f5e-6b43-4c0e-9a51-6d9f6a1c2e11"}'
```

**TypeScript SDK**

```ts
import { Fabric } from '@wexa-fabric/sdk'

const fabric = new Fabric()
const result = await fabric.pauseExecution({
  execution_id: '0b6f6f5e-6b43-4c0e-9a51-6d9f6a1c2e11'
})
```

**Python SDK**

```python
from wexa import Fabric

fabric = Fabric()
out = fabric.pause_execution(execution_id="0b6f6f5e-6b43-4c0e-9a51-6d9f6a1c2e11")
```

## Parameters

| Parameter | Type | Required | Notes |
| --- | --- | --- | --- |
| `execution_id` | string | Required | The execution, from `run-process-flow` or `list-executions`. An execution in this project. It must be `running` or `ready`; any other state is refused (409). |

**More details**

The run is paused in place: `execution_id` does not change, and [resume-execution](/docs/agents/resume-execution) carries it on from where it stopped. A run in any other state is refused with a `409` (stage `S8:execution-state`) and nothing changes: `execution … is completed; it can be paused only when it is running, ready`. A run in another project, or one started by someone else, reads as not found, exactly as it does for `get-execution`.

Not marked consequential: a call is audited lightly and never held for approval.

### Result fields

- `execution_id`: The execution you paused.
- `status`: `paused`.

Every tool call works the same way: [How every tool call works](/docs/sdks-and-apis/how-every-tool-call-works).
