Action Run
{{api_url}}/shop/action/{{action_key}}/runRuns one action now, inline, and returns its outcome. This executes live connection traffic exactly as the cron does: an order pull creates orders, an inventory send changes quantities on the marketplace, a tracking send marks orders shipped on the channel. Every action also runs on its own cron schedule, so this is for when the result is needed now.
The call blocks until the action finishes, which can take minutes for a large pull. The same guard the cron uses applies: an action that is already running is not started again.
Body
The action's params as a JSON object, keys exactly as listed under params for that action in Action List. Send an empty body, or no body, for an action that takes none or to let it use its own defaults. Unknown keys are rejected.
| Field | Type | Description |
|---|---|---|
last_updated_after | datetime | Example param for get_amazon_orders. Orders updated on or after this time. Format: 2026-10-12 00:00:00 |
last_updated_before | datetime | Example param for get_amazon_orders. Orders updated on or before this time. |
Examples
Pull Amazon orders for one day:
{{api_url}}/shop/action/get_amazon_orders/run
{"last_updated_after": "2026-10-12 00:00:00", "last_updated_before": "2026-10-13 00:00:00"}
Send Amazon tracking now, no params:
{{api_url}}/shop/action/send_amazon_tracking_info/run
Response
{
"ok": true,
"code": 200,
"message": "Ran",
"seconds": 41,
"result": true,
"status": {
"action_key": "get_amazon_orders",
"label": "Amazon: Get Orders",
"short_ident": "azn",
"mode": "inline",
"is_running": false,
"last_run_time": "2026-10-13 10:14:30",
"minutes_running": 0,
"stale": false,
"can_run": true,
"retry_after": null
}
}
| Field | Type | Description |
|---|---|---|
ok | boolean | True when the action ran. |
code | integer | The HTTP status, repeated in the body. |
message | string | A short result, or the reason the action did not run. |
seconds | integer | How long the run took. |
result | mixed | Whatever the underlying function returned. |
status | object | The action state after the run, in the same shape as Action Status. |
Status codes
| Code | Meaning |
|---|---|
200 | The action ran. |
400 | A param is unknown or has the wrong type. message names it. |
403 | The connection for this action is not enabled, or the key lacks Action run permission. |
404 | The action_key is unknown. |
409 | The action is already running and nothing was started. status.last_run_time and status.retry_after say when a run is allowed. |
Before you build
- On
409, check Action Status rather than retrying in a loop. - For an action with
modeofasync, calling this again advances it: the first run requests, later runs check and finish.status.phaseshows where it is. - Your API key needs Action run permission. A key without it gets
403 Forbidden.
Related guides:
Authorization
Bearer token, sent in the Authorization header. Inherited from the collection.
Headers
| Key | Value | Description |
|---|---|---|
Content-Type | application/json |
Body
{
"last_updated_after": "2026-10-12 00:00:00",
"last_updated_before": "2026-10-13 00:00:00"
}Example Request
curl --location --request POST '{{api_url}}/shop/action/{{action_key}}/run' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{auth_token}}' \
--data '{
"last_updated_after": "2026-10-12 00:00:00",
"last_updated_before": "2026-10-13 00:00:00"
}'
