---
title: "Execute a prepared TP/SL modify"
url: https://docs.truemarkets.co/api/gateway/execute-modify-triggers
description: "Submits the client's signature over the payload POST /orders/modify/{id}/prepare returned. Each order reports the trigger price it now rests at, or the venue's error when it refused that order, for example a trigger that already fired; refused orders keep their previous trigger. A prepared modify is single-use: an unknown or spent id returns 404."
---

Docs index: https://docs.truemarkets.co/llms.txt

# Execute a prepared TP/SL modify

Submits the client's signature over the payload `POST /orders/modify/{id}/prepare`
returned. Each order reports the trigger price it now rests at, or the
venue's `error` when it refused that order, for example a trigger that
already fired; refused orders keep their previous trigger. A prepared
modify is single-use: an unknown or spent `id` returns 404.

**Rate limit:** counts against the Orders limit, 10 a second and 120 a minute (user token, per user); 100 a second and 1,200 a minute (organization api key, per organization). See [Rate limits](https://docs.truemarkets.co/developer-resources/rate-limits).

## Request

```
POST https://api.truemarkets.co/v1/gateway/orders/modify/{id}/execute
```

### Authentication

Bearer token in `Authorization`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `TM-On-Behalf-Of` | header | string (uuid) | no | Act as one of your organization's users. The value is the `user_id` returned when the user was created; the request then reads and writes that user's account. Requires an organization token and a user your organization created: `400` for a personal token, a repeated header or a non-UUID, `403` for a user outside your organization. Not accepted on organization-scoped routes. |
| `id` | path | string (uuid) | yes | The batch id prepared with `POST /orders/modify/{id}/prepare` |

### Body

`application/json`, required

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `signatures` | array of string | yes | One stamp per payload, in the same order as the payloads returned by the create endpoint. With `auth_type: api_key`, an entry is the base64url encoding, without padding, of the JSON `{"publicKey": "<compressed P-256 public key, hex>", "signature": "<DER signature, hex>", "scheme": "SIGNATURE_SCHEME_TK_API_P256"}`, signed as `UnsignedPayload` describes. With `auth_type: web_authn`, an entry is the browser's WebAuthn stamp. |
| `auth_type` | string, one of `web_authn`, `api_key` | yes | The authentication method used to sign transaction payloads. * **web_authn** — Signed using a passkey (WebAuthn/FIDO2 credential) via the browser. * **api_key** — Signed using an API key. Suitable for programmatic/headless access. |

## Responses

Every error status returns the same body, described in [Errors](https://docs.truemarkets.co/developer-resources/errors.md).

### 200

Each order's outcome

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `orders` | array of object | no | Each order's outcome, in the prepared order. |
| `orders[].order_id` | string (uuid) | no |  |
| `orders[].trigger_price` | string | no | The trigger price the order now rests at; empty when refused. |
| `orders[].error` | string | no | The venue's reason for refusing this order, when it did. |

### 400

Bad request

### 401

Unauthorized

### 403

Forbidden. On order creation this also covers an asset that is not available to trade from the country the request came from.

### 404

Not found

### 500

Internal server error
