Action Run

POST{{api_url}}/shop/action/{{action_key}}/run

Runs 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.

FieldTypeDescription
last_updated_afterdatetimeExample param for get_amazon_orders. Orders updated on or after this time. Format: 2026-10-12 00:00:00
last_updated_beforedatetimeExample 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
    }
}
FieldTypeDescription
okbooleanTrue when the action ran.
codeintegerThe HTTP status, repeated in the body.
messagestringA short result, or the reason the action did not run.
secondsintegerHow long the run took.
resultmixedWhatever the underlying function returned.
statusobjectThe action state after the run, in the same shape as Action Status.

Status codes

CodeMeaning
200The action ran.
400A param is unknown or has the wrong type. message names it.
403The connection for this action is not enabled, or the key lacks Action run permission.
404The action_key is unknown.
409The 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 mode of async, calling this again advances it: the first run requests, later runs check and finish. status.phase shows 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

KeyValueDescription
Content-Typeapplication/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"
}'