@thenavidm/fluent-wp-mcp-cli
v3.0.0
Published
Remote Fluent WordPress task CLI and local MCP for current FluentCRM, FluentCommunity and Fluent Forms, isolated site profiles, reviewed cross-plugin tasks and private snapshots.
Maintainers
Keywords
Readme
Fluent WordPress MCP Server & CLI
Fluent WordPress MCP server and CLI for Codex and AI agents. 54 shared tools for current FluentCRM, FluentCommunity and Fluent Forms, isolated private sites, reviewed cross-plugin tasks and bounded snapshots.
One package provides a task CLI, local stdio MCP and versioned desktop bundle. Built and maintained by Navid Moazzez. Built on Slipway, which turns one definition of each tool into the MCP server and the CLI. Complete setup: navid.me.
The terminal illustrates actual commands, not a recorded provider account session. Node 22+ is required for manual installs; private WordPress authentication, installed plugin versions and native user permissions remain separate.
Two ways to use it
Command line
A shell or terminal agent runs only the requested task through the shared handlers.
npx -y --package @thenavidm/fluent-wp-mcp-cli@latest fluent-wp-cli list-accounts --agentMCP server, for your AI app
Register the local stdio package after privately configuring your intended site and user.
codex mcp add fluent-wp -- npx -y @thenavidm/fluent-wp-mcp-cli@latestWhich one
Use task-specific CLI help/compact output for scripts and shell agents, or local MCP for structured AI tool access. Both enforce the same native handlers and guard. Complete client setup is in INSTALL.md.
Features
| Capability | CLI command | MCP tool |
| --- | --- | --- |
| fcrm list contacts | fluent-wp-cli fcrm-list-contacts | fcrm_list_contacts |
| fcrm update contact | fluent-wp-cli fcrm-update-contact | fcrm_update_contact |
| fcrm list campaigns | fluent-wp-cli fcrm-list-campaigns | fcrm_list_campaigns |
| fc list spaces | fluent-wp-cli fc-list-spaces | fc_list_spaces |
| fc create feed | fluent-wp-cli fc-create-feed | fc_create_feed |
| fc create comment | fluent-wp-cli fc-create-comment | fc_create_comment |
| ff list submissions | fluent-wp-cli ff-list-submissions | ff_list_submissions |
| ff form stats | fluent-wp-cli ff-form-stats | ff_form_stats |
| List configured sites | fluent-wp-cli list-accounts | list_accounts |
| Read one native Community member report | fluent-wp-cli fc-analytics-overview | fc_analytics_overview |
| Review exact ordered cross-plugin tasks | fluent-wp-cli preview-site-batch | preview_site_batch |
| Execute reviewed cross-plugin tasks | fluent-wp-cli submit-site-batch | submit_site_batch |
| Save bounded cross-plugin responses privately | fluent-wp-cli save-site-snapshot | save_site_snapshot |
Contents
| Number | Section | What it covers | | --- | --- | --- | | 1 | What you can ask it | What you can ask it | | 2 | Quick install | Quick install | | 3 | Set up Fluent WordPress access | Set up Fluent WordPress access | | 4 | Connect your client | Connect your client | | 5 | Check it works | Check it works | | 6 | Output, flags and exit codes | Output, flags and exit codes | | 7 | MCP or CLI and token cost | MCP or CLI and token cost | | 8 | Every tool and argument | Every tool and argument | | 9 | CRM, Community and Forms workflows | CRM, Community and Forms workflows | | 10 | Exact reviewed batches and snapshots | Exact reviewed batches and snapshots | | 11 | Several private sites | Several private sites | | 12 | Writing safely | Writing safely | | 13 | How the two surfaces work | How the two surfaces work | | 14 | Your data | Your data | | 15 | Environment variables | Environment variables | | 16 | Updates and removal | Updates and removal | | 17 | Troubleshooting | Troubleshooting | | 18 | API coverage and comparisons | API coverage and comparisons | | 19 | Versions and migration | Versions and migration | | 20 | FAQ | FAQ |
1. What you can ask it
Read selected CRM contacts, campaigns and automations; inspect Community spaces, feeds, comments, courses and member analytics; read Forms definitions/submissions/stats; apply exactly approved native changes and save requested private snapshots. Actual shared discovery exposes 54 tools: 41 reads and 13 confirmed operations. The 47 selected native routes and seven local/selector/workflow helpers retain all43 legacy names with documented native corrections.
2. Quick install
npm install -g @thenavidm/fluent-wp-mcp-cli@latest
fluent-wp-cli --version
fluent-wp-cli tools
fluent-wp-cli loginNode22+ for manual installation. INSTALL.md includes Codex, every declared client/OS and the versioned desktop bundle.
3. Set up Fluent WordPress access
Create a dedicated WordPress Application Password
- Sign into the intended HTTPS WordPress site. Confirm the site and user before connecting any client. Use a dedicated user with the native Fluent permissions needed for your requested work.
- Open Users > Profile > Application Passwords. Give this connection a descriptive name, create an Application Password and save it privately. This is a separate credential, not your main WordPress login password. If the section is unavailable, check HTTPS, WordPress version, hosting/security policy and the user's capabilities with your site administrator.
- Configure FLUENT_WP_SITE_URL, FLUENT_WP_USER and either FLUENT_WP_APP_PASSWORD or FLUENT_WP_PASSWORD_FILE. Use the HTTPS site root, optionally its WordPress install subdirectory. Do not append wp-json, put a password in the URL, or include a query/fragment. No redirects or HTTP fallback are followed.
- Keep secrets in private client settings or a token-only file outside repositories. Password files must be absolute regular non-symlink files, at most 64 KiB. On macOS/Linux, use an owner-private 0600 file and private parent directory. On Windows, restrict the file and parent directory ACLs separately; POSIX modes do not prove Windows privacy.
- Run fluent-wp-cli doctor for local configuration, then deliberately run doctor --network for one GET /wp/v2/users/me with context=view. Its output reports a positive user ID only. This verifies one authenticated WordPress read, not site ownership, all plugin permissions, Pro eligibility or a successful mutation.
WordPress Application Password authentication uses HTTP Basic with username:applicationPassword over HTTPS. The client constructs the header; do not supply a Bearer token or import browser cookies. The package does not log into WordPress, load .env files, create an Application Password, or enable plugins for you.
Plugins, permissions and costs
Install and activate the specific FluentCRM, FluentCommunity and Fluent Forms plugins you intend to use. A site's installed plugin versions and native user capabilities determine its routes and output. Discovery exposes the packaged catalogue before authentication; it does not prove every plugin is present. The package is free under AGPL-3.0. Hosting, paid Pro features, plugin licenses and email delivery services remain separate.
CRM contact/tag/list changes and double opt-in may trigger actual emails or automations. Community announcements, comments and reactions can notify real members. Native Forms reports can update stored metadata. Do not create a contact, publish a feed, or run a stateful report merely to test setup.
The source review covers CRM v2, Community v2 and Forms v1, with Forms plugin source 6.2.14 pinned in provenance. This is a reviewed subset of 47 routes, not every Fluent API. Community analytics/admin course routes require their native permissions and may require Pro. Read native permission notes and inspect your installed versions before account work.
Several isolated sites
FLUENT_WP_ACCOUNTS is a private JSON array of unique {name,site_url,username,app_password,password_file} entries. Choose one password method per profile. Each site requires its own URL, user and credential; a selected profile never falls back to global settings or another site after a missing password or 401/403. FLUENT_WP_DEFAULT_ACCOUNT and --account select an exact label.
list_accounts returns labels, the default and credential source only. It does not reveal site URLs, usernames, password paths or credentials, make requests, or prove provider ownership. Password files are cached until restart. Review hashes bind the selected label, normalized site URL, username, ordered inputs/requests and packaged schema; they do not bind a password fingerprint or validate server state.
Native and local limits
There is no universal vendor quota advertised here. The process spaces requests by 250 ms by default, with a 30-second timeout; hosting, security plugins and other clients can impose different limits. Local pacing is not shared quota enforcement. Requests cap JSON bodies at 1 MiB and responses at 5 MiB. No automatic retries, redirect following, polling or page walking occurs.
Native paginated operations accept only their actual arguments. Where page/per_page are exposed, this wrapper bounds them to 10000/100 locally; this is not a universal provider maximum. Course students and space members do not acquire invented pagination flags. Forms single-entry reads that mark entries as read are intentionally outside this subset.
Revoke and remove
Revoke the dedicated Application Password through the intended WordPress user's Profile. Replace or remove private client/file settings, then restart all server processes. Official plugin MCP credentials and WP-CLI access are separate connections. Uninstalling this package does not undo contact edits, messages, announcements, report migrations or saved private snapshots.
4. Connect your client
INSTALL.md covers Codex first, Claude Code, Claude Desktop bundle/manual config, Cursor, VS Code/Copilot, Windsurf, Zed, Gemini CLI, Cline, Docker and other local stdio clients on macOS/Windows/Linux. Codex requires no Claude Code installation. GUI/remote runtimes need their own private URL/user/password settings and accessible files. This package supplies local stdio, not a public HTTP connector.
codex mcp add fluent-wp -- npx -y @thenavidm/fluent-wp-mcp-cli@latest
codex mcp list5. Check it works
fluent-wp-cli --version
fluent-wp-cli tools
fluent-wp-cli list-accounts --agent
fluent-wp-cli doctor
fluent-wp-cli doctor --network
fluent-wp-cli fcrm-list-contacts --per-page 1 --agent --select data.idCredential-free discovery, native request fixtures and direct full/read-only guard checks are separate from actual provider validation. A positive current-user read establishes neither ownership nor every Fluent permission. Authenticated plugin outcomes and desktop GUI installation remain unverified until independently exercised. Section 7 has the measured token costs.
6. Output, flags and exit codes
Native JSON is preserved after recognized credential redaction; ordinary records remain private. --select keeps only requested output fields. Repeated primitive array flags serialize to native PHP [] query fields. Nested subscriber/note objects use JSON values, and --payload or a private absolute --payload-file provides a complete native body. Do not mix body flags with payload/payload_file. A 202 means acceptance, not completed downstream work. HTTP200 JSON success:false/status:false/native error objects refuse.
| Flag | Behavior | | --- | --- | | --agent | Compact JSON and no prompts; never confirms a write | | --confirm | Explicit approval for exactly requested confirmed work | | --account LABEL | Exact private site profile | | --select a,b.c | Filter returned fields locally | | --payload / --payload-file | Whole native body, exclusive with flat body flags/each other | | --tasks JSON | Repeat one task object per flag | | --review-sha256 HASH | Exact unchanged local preview hash | | --output-file PATH | Exclusive new private snapshot file |
| Exit | Meaning | | --- | --- | | 0 | Native response/receipt returned; inspect status and downstream effects | | 1 | Unexpected error | | 2 | Usage, schema, a refused or unapproved operation, an unknown command or a hidden write | | 3 | Not found | | 4 | Authentication/permissions | | 5 | API/network or unknown mutation outcome | | 7 | Rate limited | | 10 | Missing or invalid private configuration |
7. MCP or CLI and token cost
Both surfaces call the same MCP handlers and guard. MCP clients choose their own tool discovery/loading strategy. The CLI supports selected command help/schema and compact results; it also consumes command/help/output/reasoning tokens.
Measured on 2026-10-05 against 2.0.1, with Claude Code 2.1.286 on Claude Opus 5.5 (one short prompt with and without the server connected, the difference read from the API's own usage figures) and Codex 0.159.3 on gpt-6.1-sol:
| Cost | 2.0.1 | 3.0.0 |
| --- | --- | --- |
| Claude Code, every tool loaded, every message | 26,470 | 25,728 |
| Claude Code's default, tool search, every message | 1,295 | 1,294 |
| SKILL.md, read once | 1,325 | 1,385 |
| Codex over the CLI, one task, median of five | 150,331 | 83,099 |
| Codex over MCP, the same task, median of five | 76,977 | 76,746 |
The task was "find the command that adds a note to a CRM contact, and the flags it requires". Every tool loaded costs less because a contact's fields and a note's, each written out twice as their own arguments and inside payload, are now written once and referred to. Over the CLI, every 2.0.1 run guessed at least once, with commands, crm --help or a bare schema, because 2.0.1's help never said how to list commands, then read the whole command list and the command's schema as well as its help; every extra step carries the whole conversation forward. Every 3.0.0 run asked which and read one command's help. SKILL.md costs 60 more because it now says how approval works over MCP and lists every exit code.
Tool-list bytes or characters divided by four are not API usage, and no other offering was measured.
8. Every tool and argument
fcrm_dashboard_stats
Retrieve overall dashboard statistics including active contacts count, campaigns count, emails sent, active automations, onboarding progress, quick links, recent contacts, recent campaigns, active automations list, and system recommendations.
Required capability: fcrm_view_dashboard
Enforced by ReportPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-dashboard-stats --help
fluent-wp-cli schema fcrm-dashboard-statsfcrm_list_contacts
Retrieve a paginated list of contacts. Supports both simple filtering (by tags, lists, statuses) and advanced filtering with complex filter groups. Optionally includes custom field values.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| filter_type | Optional; native body and guard rules still apply | string | Type of filtering to apply. enum: ["simple", "advanced"]. default: "simple". |
| search | Optional; native body and guard rules still apply | string | Search contacts by name, email, or other searchable fields. |
| sort_by | Optional; native body and guard rules still apply | string | Column to sort by. default: "id". |
| sort_type | Optional; native body and guard rules still apply | string | Sort direction. enum: ["ASC", "DESC"]. default: "DESC". |
| has_commerce | Optional; native body and guard rules still apply | string | Filter by commerce integration availability. |
| custom_fields | Optional; native body and guard rules still apply | string | Set to true to include custom field values in the response. enum: ["true", "false"]. |
| tags | Optional; native body and guard rules still apply | array | Filter by tag IDs (simple filter mode only). |
| tags[] | Per item when supplied | integer | Array item schema. |
| statuses | Optional; native body and guard rules still apply | array | Filter by contact statuses (simple filter mode only). |
| statuses[] | Per item when supplied | string | Array item schema. Enum: ["subscribed", "pending", "unsubscribed", "bounced", "complained"] |
| sms_statuses | Optional; native body and guard rules still apply | array | Filter by SMS statuses (simple filter mode only). |
| sms_statuses[] | Per item when supplied | string | Array item schema. Enum: ["sms_subscribed", "sms_unsubscribed", "sms_pending", "sms_bounced"] |
| lists | Optional; native body and guard rules still apply | array | Filter by list IDs (simple filter mode only). |
| lists[] | Per item when supplied | integer | Array item schema. |
| company_ids | Optional; native body and guard rules still apply | array | Filter by company IDs. |
| company_ids[] | Per item when supplied | integer | Array item schema. |
| advanced_filters | Optional; native body and guard rules still apply | string | JSON-encoded advanced filter groups (advanced filter mode only). |
| per_page | Optional; native body and guard rules still apply | integer | Number of contacts per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number for pagination. default: 1. minimum: 1. maximum: 10000. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-contacts --help
fluent-wp-cli schema fcrm-list-contactsfcrm_get_contact
Retrieve a single contact by ID or email. Supports eager-loading related data like stats, custom values, custom field definitions, and commerce stats via the with[] parameter.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The contact ID. minimum: 1. |
| get_by_email | Optional; native body and guard rules still apply | string | If set, looks up the contact by email address instead of the path id. format: "email". |
| with | Optional; native body and guard rules still apply | array | Relationships and extra data to include. Supported values: stats, subscriber.custom_values, custom_fields, commerce_stat. |
| with[] | Per item when supplied | string | Array item schema. Enum: ["stats", "subscriber.custom_values", "custom_fields", "commerce_stat"] |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-get-contact --help
fluent-wp-cli schema fcrm-get-contactfcrm_search_contacts
Search contacts by name or email. Returns a lightweight object of contacts keyed by ID, suitable for dropdowns and autocomplete widgets. Optionally loads default contacts when no search term is provided.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| search | Optional; native body and guard rules still apply | string | Search term to match against contact name and email. |
| limit | Optional; native body and guard rules still apply | integer | Maximum number of results to return. default: 20. minimum: 1. maximum: 100. |
| load_default | Optional; native body and guard rules still apply | string | If truthy and no search term is provided, returns the most recent contacts. enum: ["true", "false", "1", "0", "yes"]. |
| values | Optional; native body and guard rules still apply | array | Array of contact IDs to always include in results (useful for pre-selected values). |
| values[] | Per item when supplied | integer | Array item schema. |
| offset | Optional; native body and guard rules still apply | integer | Rows to skip before the first result. Combine with limit to page through matches. default: 0. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-search-contacts --help
fluent-wp-cli schema fcrm-search-contactsfcrm_create_contact
Create a new contact. If __force_update is set to yes, it will update an existing contact with the same email instead of returning an error. Optionally sends a double opt-in email.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group. Explicit local confirmation is required; hooks, announcements and automations may affect other people. No retries.
Kind: Confirmed operation. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| email | Optional; native body and guard rules still apply | string | Contact email address. Must be unique unless __force_update is yes. format: "email". |
| status | Optional; native body and guard rules still apply | string | Contact subscription status. enum: ["subscribed", "pending", "unsubscribed", "bounced", "complained"]. |
| first_name | Optional; native body and guard rules still apply | string | First name. |
| last_name | Optional; native body and guard rules still apply | string | Last name. |
| prefix | Optional; native body and guard rules still apply | string | Name prefix (e.g., Mr, Mrs, Ms). |
| contact_type | Optional; native body and guard rules still apply | string | Contact type. enum: ["lead", "customer"]. |
| address_line_1 | Optional; native body and guard rules still apply | string | Address line 1. |
| address_line_2 | Optional; native body and guard rules still apply | string | Address line 2. |
| postal_code | Optional; native body and guard rules still apply | string | Postal/zip code. |
| city | Optional; native body and guard rules still apply | string | City. |
| state | Optional; native body and guard rules still apply | string | State or province. |
| country | Optional; native body and guard rules still apply | string | Two-letter country code. |
| phone | Optional; native body and guard rules still apply | string | Phone number. |
| timezone | Optional; native body and guard rules still apply | string | Timezone identifier. |
| date_of_birth | Optional; native body and guard rules still apply | string | Date of birth (YYYY-MM-DD). |
| source | Optional; native body and guard rules still apply | string | Contact source. |
| tags | Optional; native body and guard rules still apply | array | Tag IDs to assign. |
| tags[] | Per item when supplied | integer | Array item schema. |
| lists | Optional; native body and guard rules still apply | array | List IDs to assign. |
| lists[] | Per item when supplied | integer | Array item schema. |
| double_optin | Optional; native body and guard rules still apply | boolean | Send double opt-in confirmation email. |
| __force_update | Optional; native body and guard rules still apply | string | If yes, updates existing contact with the same email instead of failing. enum: ["yes", "no"]. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
| confirm | Optional; native body and guard rules still apply | boolean | Set true only when the user asked for exactly this action. |
| payload | Optional; native body and guard rules still apply | object | Complete native JSON body; do not mix with body flags or payload_file. Arrays use repeated JSON object flags or a whole native array in a private file. additionalProperties: false. required: ["email", "status"]. |
| payload.email | Yes | string | Contact email address. Must be unique unless __force_update is yes. format: "email". |
| payload.status | Yes | string | Contact subscription status. enum: ["subscribed", "pending", "unsubscribed", "bounced", "complained"]. |
| payload.first_name | Optional; native body and guard rules still apply | string | First name. |
| payload.last_name | Optional; native body and guard rules still apply | string | Last name. |
| payload.prefix | Optional; native body and guard rules still apply | string | Name prefix (e.g., Mr, Mrs, Ms). |
| payload.contact_type | Optional; native body and guard rules still apply | string | Contact type. enum: ["lead", "customer"]. |
| payload.address_line_1 | Optional; native body and guard rules still apply | string | Address line 1. |
| payload.address_line_2 | Optional; native body and guard rules still apply | string | Address line 2. |
| payload.postal_code | Optional; native body and guard rules still apply | string | Postal/zip code. |
| payload.city | Optional; native body and guard rules still apply | string | City. |
| payload.state | Optional; native body and guard rules still apply | string | State or province. |
| payload.country | Optional; native body and guard rules still apply | string | Two-letter country code. |
| payload.phone | Optional; native body and guard rules still apply | string | Phone number. |
| payload.timezone | Optional; native body and guard rules still apply | string | Timezone identifier. |
| payload.date_of_birth | Optional; native body and guard rules still apply | string | Date of birth (YYYY-MM-DD). |
| payload.source | Optional; native body and guard rules still apply | string | Contact source. |
| payload.tags | Optional; native body and guard rules still apply | array | Tag IDs to assign. |
| payload.tags[] | Per item when supplied | integer | Array item schema. |
| payload.lists | Optional; native body and guard rules still apply | array | List IDs to assign. |
| payload.lists[] | Per item when supplied | integer | Array item schema. |
| payload.double_optin | Optional; native body and guard rules still apply | boolean | Send double opt-in confirmation email. |
| payload.__force_update | Optional; native body and guard rules still apply | string | If yes, updates existing contact with the same email instead of failing. enum: ["yes", "no"]. |
| payload_file | Optional; native body and guard rules still apply | string | Absolute regular non-symlink JSON body file, at most 1 MiB. Cannot mix with payload/body flags. minLength: 1. |
fluent-wp-cli fcrm-create-contact --help
fluent-wp-cli schema fcrm-create-contactfcrm_update_contact
Update an existing contact's fields, custom values, tags, and lists. Supports attaching and detaching tags/lists in a single request. The subscriber object or individual fields can be passed in the request body.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group. Explicit local confirmation is required; hooks, announcements and automations may affect other people. No retries.
Kind: Confirmed operation. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The contact ID. minimum: 1. |
| subscriber | Optional; native body and guard rules still apply | object | Contact data can be nested inside a subscriber object or passed at the top level. minProperties: 1. additionalProperties: false. |
| subscriber.email | Optional; native body and guard rules still apply | string | Email address (must be unique). format: "email". |
| subscriber.first_name | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.last_name | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.prefix | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.status | Optional; native body and guard rules still apply | string | Actual shared argument definition. enum: ["subscribed", "pending", "unsubscribed", "bounced", "complained"]. |
| subscriber.contact_type | Optional; native body and guard rules still apply | string | Actual shared argument definition. enum: ["lead", "customer"]. |
| subscriber.address_line_1 | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.address_line_2 | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.postal_code | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.city | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.state | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.country | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.phone | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.timezone | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.date_of_birth | Optional; native body and guard rules still apply | ['string', 'null'] | Date of birth (YYYY-MM-DD). Send null or empty string to clear. |
| subscriber.source | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| subscriber.custom_values | Optional; native body and guard rules still apply | object | Custom field key-value pairs to update. additionalProperties: {"type": "string"}. |
| subscriber.attach_tags | Optional; native body and guard rules still apply | array | Tag IDs to attach. |
| subscriber.attach_tags[] | Per item when supplied | integer | Array item schema. |
| subscriber.detach_tags | Optional; native body and guard rules still apply | array | Tag IDs to detach. |
| subscriber.detach_tags[] | Per item when supplied | integer | Array item schema. |
| subscriber.attach_lists | Optional; native body and guard rules still apply | array | List IDs to attach. |
| subscriber.attach_lists[] | Per item when supplied | integer | Array item schema. |
| subscriber.detach_lists | Optional; native body and guard rules still apply | array | List IDs to detach. |
| subscriber.detach_lists[] | Per item when supplied | integer | Array item schema. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
| confirm | Optional; native body and guard rules still apply | boolean | Set true only when the user asked for exactly this action. |
| payload | Optional; native body and guard rules still apply | object | Complete native JSON body; do not mix with body flags or payload_file. Arrays use repeated JSON object flags or a whole native array in a private file. additionalProperties: false. required: ["subscriber"]. |
| payload.subscriber | Yes | object | Contact data can be nested inside a subscriber object or passed at the top level. minProperties: 1. additionalProperties: false. |
| payload.subscriber.email | Optional; native body and guard rules still apply | string | Email address (must be unique). format: "email". |
| payload.subscriber.first_name | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.last_name | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.prefix | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.status | Optional; native body and guard rules still apply | string | Actual shared argument definition. enum: ["subscribed", "pending", "unsubscribed", "bounced", "complained"]. |
| payload.subscriber.contact_type | Optional; native body and guard rules still apply | string | Actual shared argument definition. enum: ["lead", "customer"]. |
| payload.subscriber.address_line_1 | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.address_line_2 | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.postal_code | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.city | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.state | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.country | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.phone | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.timezone | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.date_of_birth | Optional; native body and guard rules still apply | ['string', 'null'] | Date of birth (YYYY-MM-DD). Send null or empty string to clear. |
| payload.subscriber.source | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.subscriber.custom_values | Optional; native body and guard rules still apply | object | Custom field key-value pairs to update. additionalProperties: {"type": "string"}. |
| payload.subscriber.attach_tags | Optional; native body and guard rules still apply | array | Tag IDs to attach. |
| payload.subscriber.attach_tags[] | Per item when supplied | integer | Array item schema. |
| payload.subscriber.detach_tags | Optional; native body and guard rules still apply | array | Tag IDs to detach. |
| payload.subscriber.detach_tags[] | Per item when supplied | integer | Array item schema. |
| payload.subscriber.attach_lists | Optional; native body and guard rules still apply | array | List IDs to attach. |
| payload.subscriber.attach_lists[] | Per item when supplied | integer | Array item schema. |
| payload.subscriber.detach_lists | Optional; native body and guard rules still apply | array | List IDs to detach. |
| payload.subscriber.detach_lists[] | Per item when supplied | integer | Array item schema. |
| payload_file | Optional; native body and guard rules still apply | string | Absolute regular non-symlink JSON body file, at most 1 MiB. Cannot mix with payload/body flags. minLength: 1. |
fluent-wp-cli fcrm-update-contact --help
fluent-wp-cli schema fcrm-update-contactfcrm_contact_notes
Retrieve a paginated list of notes for a contact. Supports searching notes by title. Each note includes the user who created it.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The contact ID. minimum: 1. |
| search | Optional; native body and guard rules still apply | string | Search notes by title. |
| per_page | Optional; native body and guard rules still apply | integer | Number of notes per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number. default: 1. minimum: 1. maximum: 10000. |
| include_id | Optional; native body and guard rules still apply | integer | Id of a note that must appear in the response even when it falls outside the current page. When it is not already on the page it is returned separately as included_note, scoped to this contact. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-contact-notes --help
fluent-wp-cli schema fcrm-contact-notesfcrm_add_contact_note
Add a new note to a contact. The note description supports SmartCode/merge tags which are parsed before saving. If created_at is not provided, it defaults to the current WordPress time.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group. Explicit local confirmation is required; hooks, announcements and automations may affect other people. No retries.
Kind: Confirmed operation. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The contact ID. minimum: 1. |
| note | Optional; native body and guard rules still apply | object | Actual shared argument definition. required: ["title", "description", "type"]. |
| note.title | Yes | string | Note title. |
| note.description | Yes | string | Note content (HTML). Supports SmartCode/merge tags. |
| note.type | Yes | string | Note type. enum: ["note", "call", "email", "meeting", "activity"]. |
| note.created_at | Optional; native body and guard rules still apply | string | Custom creation date. Defaults to current time if not provided. format: "date-time". |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
| confirm | Optional; native body and guard rules still apply | boolean | Set true only when the user asked for exactly this action. |
| payload | Optional; native body and guard rules still apply | object | Complete native JSON body; do not mix with body flags or payload_file. Arrays use repeated JSON object flags or a whole native array in a private file. additionalProperties: false. required: ["note"]. |
| payload.note | Yes | object | Actual shared argument definition. required: ["title", "description", "type"]. |
| payload.note.title | Yes | string | Note title. |
| payload.note.description | Yes | string | Note content (HTML). Supports SmartCode/merge tags. |
| payload.note.type | Yes | string | Note type. enum: ["note", "call", "email", "meeting", "activity"]. |
| payload.note.created_at | Optional; native body and guard rules still apply | string | Custom creation date. Defaults to current time if not provided. format: "date-time". |
| payload_file | Optional; native body and guard rules still apply | string | Absolute regular non-symlink JSON body file, at most 1 MiB. Cannot mix with payload/body flags. minLength: 1. |
fluent-wp-cli fcrm-add-contact-note --help
fluent-wp-cli schema fcrm-add-contact-notefcrm_list_tags
Retrieve a paginated list of tags. Optionally includes subscriber counts and a separate array of all tags for dropdown/select usage.
Required capability: fcrm_manage_contact_cats
Enforced by TagPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| search | Optional; native body and guard rules still apply | string | Search tags by title, slug, or description. |
| sort_by | Optional; native body and guard rules still apply | string | Column to sort by. enum: ["id", "title", "slug", "created_at"]. default: "id". |
| sort_order | Optional; native body and guard rules still apply | string | Sort direction. enum: ["ASC", "DESC"]. default: "DESC". |
| per_page | Optional; native body and guard rules still apply | integer | Number of tags per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number for pagination. default: 1. minimum: 1. maximum: 10000. |
| exclude_counts | Optional; native body and guard rules still apply | boolean | If set to any truthy value, subscriber counts will not be included for each tag. |
| all_tags | Optional; native body and guard rules still apply | boolean | If set to any truthy value, includes a flat all_tags array with id, title, and slug of every tag (useful for dropdowns). |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-tags --help
fluent-wp-cli schema fcrm-list-tagsfcrm_list_lists
Retrieve a paginated list of contact lists. Optionally includes subscriber counts and a separate array of all lists for dropdown/select usage.
Required capability: fcrm_manage_contact_cats
Enforced by ListPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| search | Optional; native body and guard rules still apply | string | Search lists by title, slug, or description. |
| sort_by | Optional; native body and guard rules still apply | string | Column to sort by. enum: ["id", "title", "slug", "created_at"]. default: "id". |
| sort_order | Optional; native body and guard rules still apply | string | Sort direction. enum: ["ASC", "DESC"]. default: "DESC". |
| per_page | Optional; native body and guard rules still apply | integer | Number of lists per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number for pagination. default: 1. minimum: 1. maximum: 10000. |
| exclude_counts | Optional; native body and guard rules still apply | boolean | If set to any truthy value, totalCount and subscribersCount will not be included for each list. |
| all_lists | Optional; native body and guard rules still apply | boolean | If set to any truthy value, includes a flat all_lists array with id, title, and slug of every list (useful for dropdowns). |
| with | Optional; native body and guard rules still apply | array | Extra data to include. subscribersCount adds per-list contact counts via one grouped pivot query. |
| with[] | Per item when supplied | string | Array item schema. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-lists --help
fluent-wp-cli schema fcrm-list-listsfcrm_list_campaigns
Retrieve a paginated list of email campaigns. Supports filtering by status, search term, labels, and sorting. Optionally includes campaign statistics.
Required capability: fcrm_read_emails or fcrm_manage_emails : which one applies depends on the action being performed.
Enforced by CampaignPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| searchBy | Optional; native body and guard rules still apply | string | Search campaigns by title. |
| statuses | Optional; native body and guard rules still apply | array | Filter by campaign statuses. |
| statuses[] | Per item when supplied | string | Array item schema. Enum: ["draft", "processing", "pending-scheduled", "scheduled", "working", "paused", "archived"] |
| sort_by | Optional; native body and guard rules still apply | string | Column to sort by. default: "created_at". |
| sort_type | Optional; native body and guard rules still apply | string | Sort direction. enum: ["ASC", "DESC"]. default: "DESC". |
| with | Optional; native body and guard rules still apply | array | Include related data. Use stats to include campaign statistics and labels. |
| with[] | Per item when supplied | string | Array item schema. Enum: ["stats"] |
| labels | Optional; native body and guard rules still apply | array | Filter by label IDs. |
| labels[] | Per item when supplied | integer | Array item schema. |
| per_page | Optional; native body and guard rules still apply | integer | Number of results per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number. default: 1. minimum: 1. maximum: 10000. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-campaigns --help
fluent-wp-cli schema fcrm-list-campaignsfcrm_get_campaign
Retrieve a single campaign by ID. Optionally include related data (template, subjects) via the with parameter. When viewCampaign is set, returns the campaign with its paginated emails. Also returns available email templates and the server's current time.
Required capability: fcrm_read_emails or fcrm_manage_emails : which one applies depends on the action being performed.
Enforced by CampaignPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The campaign ID. minimum: 1. |
| with | Optional; native body and guard rules still apply | array | Include related data (e.g., template, subjects). |
| with[] | Per item when supplied | string | Array item schema. |
| viewCampaign | Optional; native body and guard rules still apply | string | If set, returns the campaign with paginated emails instead of the standard response. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-get-campaign --help
fluent-wp-cli schema fcrm-get-campaignfcrm_campaign_stats
Get overview statistics for a campaign including sent count, email status breakdown, and open/click analytics. This is a lighter-weight alternative to the full campaign status endpoint, suitable for dashboard widgets or summary views.
Required capability: fcrm_read_emails or fcrm_manage_emails : which one applies depends on the action being performed.
Enforced by CampaignPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The campaign ID. minimum: 1. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-campaign-stats --help
fluent-wp-cli schema fcrm-campaign-statsfcrm_list_sequences
Retrieve a paginated list of email sequences. Optionally include statistics (email count, subscriber count, revenue) for each sequence. Requires FluentCampaign Pro.
Required capability: fcrm_read_emails or fcrm_manage_emails : which one applies depends on the action being performed.
Enforced by SequencePolicy::verifyRequest(), the policy default for this route group.
Requires: FluentCampaign Pro. Without it the route does not exist.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| order | Optional; native body and guard rules still apply | string | Sort direction. enum: ["asc", "desc"]. default: "desc". |
| orderBy | Optional; native body and guard rules still apply | string | Column to sort by. default: "id". |
| search | Optional; native body and guard rules still apply | string | Search sequences by title. |
| with | Optional; native body and guard rules still apply | array | Include additional data. Use stats to include email count, subscriber count, and revenue for each sequence. |
| with[] | Per item when supplied | string | Array item schema. Enum: ["stats"] |
| per_page | Optional; native body and guard rules still apply | integer | Number of sequences per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number for pagination. default: 1. minimum: 1. maximum: 10000. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-sequences --help
fluent-wp-cli schema fcrm-list-sequencesfcrm_list_automations
Retrieve a paginated list of automation funnels. Supports sorting, searching by title, and filtering by label IDs. Optionally includes trigger definitions.
Required capability: fcrm_read_funnels or fcrm_write_funnels : which one applies depends on the action being performed.
Enforced by FunnelPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| sort_by | Optional; native body and guard rules still apply | string | Column to sort by. default: "id". |
| sort_type | Optional; native body and guard rules still apply | string | Sort direction. enum: ["ASC", "DESC"]. default: "DESC". |
| search | Optional; native body and guard rules still apply | string | Search funnels by title (partial match). |
| labels | Optional; native body and guard rules still apply | array | Filter funnels by label IDs. |
| labels[] | Per item when supplied | integer | Array item schema. |
| with | Optional; native body and guard rules still apply | array | Include additional related data. Supported values: triggers. |
| with[] | Per item when supplied | string | Array item schema. Enum: ["triggers"] |
| per_page | Optional; native body and guard rules still apply | integer | Number of funnels per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number for pagination. default: 1. minimum: 1. maximum: 10000. |
| tags | Optional; native body and guard rules still apply | array | Only automations whose contacts carry these tag ids. |
| tags[] | Per item when supplied | integer | Array item schema. |
| lists | Optional; native body and guard rules still apply | array | Only automations whose contacts are on these list ids. |
| lists[] | Per item when supplied | integer | Array item schema. |
| statuses | Optional; native body and guard rules still apply | array | Filter automations by status, e.g. published or draft. |
| statuses[] | Per item when supplied | string | Array item schema. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-list-automations --help
fluent-wp-cli schema fcrm-list-automationsfcrm_automation_report
Retrieve statistical reporting data for a specific automation funnel. Returns aggregated stats generated by the Reporting service.
Required capability: fcrm_read_funnels or fcrm_write_funnels : which one applies depends on the action being performed.
Enforced by FunnelPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The funnel ID. minimum: 1. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-automation-report --help
fluent-wp-cli schema fcrm-automation-reportfcrm_contact_emails
Retrieve a paginated list of emails sent to a contact. Supports filtering by open/click status. Can also show FluentSMTP logs when the tab parameter is set to fluentsmtp.
Required capability: fcrm_read_contacts or fcrm_manage_contacts : which one applies depends on the action being performed.
Enforced by SubscriberPolicy::verifyRequest(), the policy default for this route group.
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| id | Yes | integer | The contact ID. minimum: 1. |
| filter | Optional; native body and guard rules still apply | string | Filter emails by engagement status. enum: ["open", "click", "unopened"]. |
| tab | Optional; native body and guard rules still apply | string | Email source tab. Use fluentsmtp to show FluentSMTP logs instead of CRM campaign emails. enum: ["crm", "fluentsmtp"]. default: "crm". |
| per_page | Optional; native body and guard rules still apply | integer | Number of emails per page. default: 15. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page number. default: 1. minimum: 1. maximum: 10000. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fcrm-contact-emails --help
fluent-wp-cli schema fcrm-contact-emailsfc_list_spaces
Returns the paginated list of spaces with each one formatted for display, including the current user permissions and membership within it.
Controller: SpaceController@getAllSpaces
Route source: fluent-community/app/Http/Routes/api.php:34
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fc-list-spaces --help
fluent-wp-cli schema fc-list-spacesfc_get_space
Returns one space with its settings, topics, the current user membership and the permissions they hold inside it.
Controller: SpaceController@getBySlug
Route source: fluent-community/app/Http/Routes/api.php:10
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| slug | Yes | string | SpaceSlug extracted from the URL path. minLength: 1. pattern: "^(?!\.{1,2}$)[^/\\\x00-\x1f?#]+$". |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fc-get-space --help
fluent-wp-cli schema fc-get-spacefc_list_feeds
Returns a page of posts the current user is allowed to read, transformed for display, with the pinned post of a space returned separately on the first page.
Controller: FeedsController@get
Route source: fluent-community/app/Http/Routes/api.php:45
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| space | Optional; native body and guard rules still apply | string | Space read via $request->get() in get(). |
| user_id | Optional; native body and guard rules still apply | string | User ID read via $request->getSafe() in get(). |
| topic_slug | Optional; native body and guard rules still apply | string | Topic Slug read via $request->getSafe() in get(). |
| search | Optional; native body and guard rules still apply | string | Search read via $request->getSafe() in get(). |
| status | Optional; native body and guard rules still apply | string | Status read via $request->getSafe() in get(). |
| per_page | Optional; native body and guard rules still apply | integer | Per Page read via $request->get() in get(). default: 10. minimum: 1. maximum: 100. |
| page | Optional; native body and guard rules still apply | integer | Page read via $request->get() in get(). default: 1. minimum: 1. maximum: 10000. |
| search_in | Optional; native body and guard rules still apply | array | Search In read via $request->get() in get(). default: ["post_content"]. |
| order_by_type | Optional; native body and guard rules still apply | string | Order By Type read via $request->getSafe() in get(). |
| disable_sticky | Optional; native body and guard rules still apply | string | Disable Sticky read via $request->get() in get(). |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fc-list-feeds --help
fluent-wp-cli schema fc-list-feedsfc_get_feed
Returns a single post by numeric id; the id is resolved to a slug and then handled exactly as the by-slug endpoint.
Controller: FeedsController@getFeedById
Route source: fluent-community/app/Http/Routes/api.php:53
Kind: Read. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| feed_id | Yes | integer | Feed ID extracted from the URL path. minimum: 1. |
| context | Optional; native body and guard rules still apply | string | Prose-documented delegated edit context, requiring native post edit access. enum: ["view", "edit"]. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
fluent-wp-cli fc-get-feed --help
fluent-wp-cli schema fc-get-feedfc_create_feed
Creates a post, renders its Markdown, attaches media and topics, and returns the transformed post ready to prepend to the feed.
Controller: FeedsController@store
Route source: fluent-community/app/Http/Routes/api.php:46 Explicit local confirmation is required; hooks, announcements and automations may affect other people. No retries.
Kind: Confirmed operation. Native plugin/user permissions apply.
| Argument | Required | Type | Details |
| --- | --- | --- | --- |
| space | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| topic_ids | Optional; native body and guard rules still apply | array | Actual shared argument definition. |
| topic_ids[] | Per item when supplied | string | Array item schema. |
| send_announcement_email | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| content_type | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| message | Optional; native body and guard rules still apply | string | Actual shared argument definition. minLength: 1. |
| survey | Optional; native body and guard rules still apply | object | Actual shared argument definition. required: []. |
| survey.options | Optional; native body and guard rules still apply | array | Actual shared argument definition. |
| survey.options[] | Per item when supplied | string | Array item schema. |
| survey.end_date | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| survey.type | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| title | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| account | Optional; native body and guard rules still apply | string | Exact configured private account profile label; not a tenant or provider account ID. |
| confirm | Optional; native body and guard rules still apply | boolean | Set true only when the user asked for exactly this action. |
| payload | Optional; native body and guard rules still apply | object | Complete native JSON body; do not mix with body flags or payload_file. Arrays use repeated JSON object flags or a whole native array in a private file. additionalProperties: false. required: ["message"]. |
| payload.space | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.topic_ids | Optional; native body and guard rules still apply | array | Actual shared argument definition. |
| payload.topic_ids[] | Per item when supplied | string | Array item schema. |
| payload.send_announcement_email | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.content_type | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.message | Yes | string | Actual shared argument definition. minLength: 1. |
| payload.survey | Optional; native body and guard rules still apply | object | Actual shared argument definition. required: []. |
| payload.survey.options | Optional; native body and guard rules still apply | array | Actual shared argument definition. |
| payload.survey.options[] | Per item when supplied | string | Array item schema. |
| payload.survey.end_date | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.survey.type | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload.title | Optional; native body and guard rules still apply | string | Actual shared argument definition. |
| payload_file | Optional; native body and guard rules still apply | string | Absolute regular non-symlink JSON body file, at most 1 MiB. Cannot mix with payload/body flags. minLength: 1. |
fluent-wp-cli fc-create-feed --help
fluent-wp-cli schema fc-create-feedfc_update_feed
Replaces the body and metadata of an existing post, re-renders it, reconciles its media and topics, and records an edit history entry.
Controller: FeedsController@update
Route source: fluent-community/app/Http/Routes/api.php:47 Explicit local confirmation is required; hooks, announcements and automations may affect other people. No retries.
Kind: Confirmed operation. Native plugin/user permissions apply.
| Argument | Required | Type | Details | | --- |
