Module Install Dry Run
POST
/api/v1/modules/install/{module_id}/dry-run
Plans installation for selected module and components.
Authorizations
SessionAuth
Session ID for authenticated requests
Type
API Key (header: X-Session-ID)
Parameters
Path Parameters
module_id*
Type
Requiredstring
Request Body
application/json
JSON "target": "core", "components": [ "string" ], "runtime_scope": "flowless-core", "verify_checksum": true, "repair_missing": false
{
}
Responses
Install plan generated
Plans installation for one module without applying SQL.
Auth: session + admin / superadmin.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
module_id | path | string | Yes | e.g. post-types, blog, two-factor |
Request Body
Optional. Empty body or {} uses defaults (target: "core", runtime_scope: "flowless-core").
json
{
"target": "all",
"runtime_scope": "flowless-core",
"verify_checksum": true,
"repair_missing": false
}| Field | Notes |
|---|---|
target | core | selected | all. With core, components is ignored. |
components | Used only when target is selected. |
runtime_scope | Default flowless-core. |
Always send Content-Type: application/json and plain ASCII JSON (no NBSP / smart quotes from rich-text copy-paste).
Response 200
json
{
"data": {
"module_id": "post-types",
"runtime_scope": "flowless-core",
"dry_run": true,
"resolved_order": ["core", "ext-seo-per-type", "ext-type-restrictions"]
},
"user_context": { "authenticated": true },
"meta": { "cached": false }
}Response Errors
| Status | error / code | Meaning |
|---|---|---|
400 | Invalid JSON body / VALIDATION_ERROR | Body failed JSON.parse before schema checks |
400 | Invalid input / VALIDATION_ERROR | JSON ok; Zod rejected fields (see fields) |
401 | — | Missing session |
403 | — | Admin required |
404 | — | Unknown module_id |
Notes
- Dry-run does not write registry rows or apply SQL. Use Run Module Install after a good plan.
- For Post Types, prefer
target: "all"so SEO and restrictions extensions install with core. - Installing schema does not enable CPT — set
POST_TYPES_ENABLED=trueseparately. - See Post Types API and Post Types module.