@thenavidm/circle-mcp-cli
v3.0.1
Published
Circle Admin API v2 MCP server and shared task CLI for community members, spaces, posts, events, courses, messages, access groups, forms and workflows.
Maintainers
Readme
Circle MCP Server & CLI
Circle MCP server and CLI for Claude Code, Codex and AI agents. 170 tools: 66 reads and 104 confirmed writes for community members, spaces, posts, comments, events, courses, access groups, messages, forms, paywalls and workflows.
One package gives you two ways in: circle-mcp connects the tools to your AI app, and circle-cli makes the same tools shell commands. Claude Desktop also has a bundled .mcpb extension.
Built and maintained by Navid Moazzez. Built on Slipway, which turns one definition of each tool into the MCP server and the CLI. Complete installation and private account setup are in INSTALL.md.
The terminal illustrates shipped tools and the draft workflow. It is a presentation preview, not a verified live account operation.
You need a private Circle Admin V2 API token and eligible Admin API access. Community permissions and plan limits apply. The community wrapper preserves AGPL-3.0-or-later licensing; Circle service charges remain separate. This is not a Circle-endorsed product.
Circle already has an official hosted MCP with broad Admin API coverage and community MCP alternatives. No dedicated task CLI was identified in the official pages reviewed. The comparison below records the evidence; this package makes no unsupported claim of broader coverage or measured efficiency.
Two ways to use it
Command line
npm install -g @thenavidm/circle-mcp-cli@latest
circle-cli
circle-cli list-spaces --help
circle-cli schema create-post
circle-cli list-spaces --per-page 5 --agentConfigure credentials privately first. Every write needs --confirm; --agent and --yes never authorize changes.
MCP server, for your AI app
claude mcp add --scope user circle -- npx -y @thenavidm/circle-mcp-cli@latestThen ask: Show this community's spaces and the latest posts in the space I choose. Full client/OS wiring is in INSTALL.md.
Which one
| Where you work | Surface | | --- | --- | | Claude Code, Codex, Cursor or another shell agent | MCP, CLI or both | | Claude Desktop chat | Local MCP or desktop bundle | | Scripts/CI | CLI or an MCP client | | Remote-URL-only web clients | Official hosted Circle MCP |
Features
| Capability | CLI | MCP | | --- | --- | --- | | Community and spaces | circle-cli get-community / list-spaces | get_community / list_spaces | | Members | circle-cli list-members / search-member | list_members / search_member | | Draft posts | circle-cli create-post / get-post | create_post / get_post | | Courses and events | circle-cli list-course-lessons / list-events | list_course_lessons / list_events | | Workflow reads | circle-cli list-workflows | list_workflows | | Access groups | circle-cli list-access-groups | list_access_groups | | Private account labels | circle-cli list-accounts | list_accounts | | Diagnosis | circle-cli doctor | CLI utility |
Contents
| Number | Section | Covers | | --- | --- | --- | | 1 | What you can ask it | Prompts and coverage | | 2 | Quick install | MCP, CLI and desktop | | 3 | Set up Circle access | Tokens, plans and auth discrepancy | | 4 | Connect your client | Clients and OS routes | | 5 | Check it works | Doctor and first read | | 6 | Output, flags and exit codes | Inputs, JSON and scripting | | 7 | MCP or CLI and token cost | Actual usage measurement | | 8 | Every tool and argument | All tools and arguments | | 9 | Community workflows | Drafts, members, events and messages | | 10 | Pagination, exports and uploads | Pages, quota and direct uploads | | 11 | Several private accounts | Named credentials | | 12 | Writing safely | Confirmation and logs | | 13 | How it works | Shared source and maintenance | | 14 | Your data | Hosts and private data | | 15 | Environment variables | Credential/safety/tuning settings | | 16 | Updates and removal | Updating and revoking | | 17 | Troubleshooting | Symptoms and remedies | | 18 | API coverage and comparisons | Official and community alternatives | | 19 | Versions | Version history and migration | | 20 | FAQ | Accordion questions |
1. What you can ask it
- Show this community's spaces and member directory.
- Find an existing member before changing their access.
- Read the latest posts and identify unanswered questions.
- Draft the community post I requested, leaving it unpublished.
- Inspect course sections, lessons, events and form submissions.
- Read an existing workflow before the activation I requested.
The pinned Admin API v2 snapshot contains 169 operations. With the private account helper, this package exposes 170 tools: 66 reads and 104 confirmed writes. It covers members, access groups, community settings, basic/image posts, comments, events, courses, tags, forms, search, transcripts, messages, paywalls and workflows.
Circle already has an official hosted MCP. It is a useful OAuth connection with broad Admin API coverage. This implementation offers a local shared task CLI, named private tokens, predictable JSON and explicit bounded page retrieval. Tool counts do not establish broader coverage or efficiency. Live account outcomes and desktop GUI installation remain unverified.
2. Quick install
npm install -g @thenavidm/circle-mcp-cli@latest
circle-cli --version
circle-cli login
circle-cli doctor
circle-cli toolsNode 22 or newer is required for manual MCP and CLI installation. Set the API token privately before a network request. The release supplies a circle-2.0.0.mcpb archive for a compatible Claude Desktop host. It bundles production dependencies, no account credentials. See INSTALL.md for client and OS configuration.
For Claude Code, after private configuration:
claude mcp add --scope user circle -- npx -y @thenavidm/circle-mcp-cli@latest
claude mcp list3. Set up Circle access
Obtain an Admin V2 token
- Sign in to the intended Circle community as an admin.
- Open Settings > Developers > Tokens.
- Create a token with type Admin V2 on an eligible plan.
- Store it only in private shell/client settings as
CIRCLE_API_TOKEN, or use the private file route below. - Run
circle-cli doctor, thencircle-cli doctor --networkfor a community read.
Follow the current quick start. Never use a Circle password, browser cookies, a member access token or a Google OAuth client as a substitute. The Admin API is intended for administrative integrations; member-facing experiences use the separate Headless APIs. The local package does not perform OAuth or host an authorization callback. login prints instructions without opening a browser or saving credentials.
Authentication discrepancy
The pinned OpenAPI security scheme specifies Authorization: Token AUTH_TOKEN; the quick-start prose and examples use Bearer. This version defaults to Token, preserving the schema and existing implementation. Explicitly set CIRCLE_AUTH_SCHEME=Bearer if your account requires the prose's scheme. Named accounts accept auth_scheme. No automatic auth fallback or write resubmission occurs. Both choices need live account validation; fixture checks establish only the outgoing request shape.
The token identifies the community. Requests use the fixed HTTPS origin app.circle.so, with its normal Host header. No arbitrary base URL or legacy community-ID override is exposed.
Private token file
Save only the token text in a regular file outside the checkout. Set CIRCLE_TOKEN_FILE to its absolute path. It takes precedence over the environment token, is limited to 64 KB, and refuses symlinks. Protect POSIX files with mode 0600 and Windows files/folders with user-only ACLs. The process caches the token in memory: restart after rotation. No automatic .env loader is included, and GUI clients may not inherit terminal variables.
Plans, usage and revocation
The official MCP is for admins on Business plans and above. Admin API allowances are Business 5,000; Enterprise/Circle Plus 30,000; Circle Plus Platform 250,000 requests/month. The documented rate limit is 2,000 requests per five minutes per IP and may change. Official MCP actions, local CLI calls, retries and every retrieved page consume the same community allowance. Many 4xx responses count too; usage may appear about five minutes later. Do not treat the old January 2025 enforcement paragraph as a current grace period.
Default local pacing is 200 ms per account/process; it is not a global quota manager. Other processes and tools share limits. Revoke a token through Circle and remove private client settings to disconnect. Uninstalling npm does not revoke access or delete community data.
4. Connect your client
INSTALL.md includes Claude Code, Codex, Claude Desktop extension/manual settings, Cursor, VS Code/Copilot, Windsurf, Zed, Gemini CLI, Docker and other local stdio clients on macOS, Windows and Linux. All examples use placeholders or environment forwarding; actual values belong in private user settings.
The local MCP launches with npx -y @thenavidm/circle-mcp-cli@latest. A client that only accepts a remote URL needs the official OAuth MCP at https://app.circle.so/api/mcp. It does not accept this package's local launch command. Keep the two server entries distinct if you configure both. Browser-only setup and official OAuth permissions are separate from this package's private Admin token.
Agents with a shell can install the CLI and make SKILL.md available using the client's supported skills location. The package does not register skills automatically. Ask your agent to read INSTALL.md, verify Node/binaries, help you configure credentials privately and run discovery/doctor. Installing the package is not proof of account access.
5. Check it works
circle-cli --version
circle-cli doctor
circle-cli doctor --network
circle-cli list-accounts --agent
circle-cli list-spaces --per-page 5 --agentDiscovery and schema inspection work without credentials. The network doctor makes a community-details read without printing private community content. It does not invite members, publish posts or change billing. Success proves only access to that read with the selected credentials. Read-only discovery exposes 66 tools.
6. Output, flags and exit codes
Tool names become dashed commands; underscores are accepted too. Path parameter names follow the discovered schema, such as post_id → --post-id. Body tools accept individual top-level flags, complete --payload JSON, or --payload-file pointing to a regular JSON body file up to 5 MB. Do not mix those body routes. Path/query flags remain separate. Nested objects take JSON and array flags repeat once per item; a whole array is not a single item.
circle-cli get-post --help
circle-cli schema create-post
circle-cli list-members --member-tag-ids 3 --member-tag-ids 4 --per-page 10 --agent
circle-cli search --query "onboarding" --filters '{"space_ids":["7"]}' --agentIDs above are illustrative; use discovered resources from your own community. Nullable fields require an actual JSON null inside payload; --field null is a string. Nested Tiptap properties preserve upstream extensibility; unknown top-level body fields are refused. Body-required fields are validated during execution even when the wrapper schema allows an alternative payload route. Operations whose upstream request body is required need body flags or an explicit payload; a deliberately supplied empty object is sent as JSON, never omitted.
| Flag | Behavior | | --- | --- | | --help / schema COMMAND | Current argument help / full JSON Schema | | --json | Structured JSON | | --compact | One-line JSON | | --agent | Compact JSON and no prompts; never confirms a write | | --select a,b.c | Keep selected fields, including nested objects/arrays | | --no-color / --no-input | Noninteractive house flags | | --yes | Never replaces write confirmation | | --confirm | Confirm only the requested mutation | | --account NAME | Select private local credentials | | --payload JSON / --payload-file PATH | Complete request body, mutually exclusive with body flags |
| Exit | Meaning | | --- | --- | | 0 | Success | | 1 | Unexpected error | | 2 | Invalid arguments or refused write, an unknown command or a hidden write | | 3 | Resource not found | | 4 | Authentication/permission failure | | 5 | API/transport failure | | 7 | Rate limit | | 10 | Missing or invalid private configuration |
Results go to stdout, errors as JSON to stderr. Selection changes local output, not the original API response or quota charge. API success is not proof of notification delivery or a completed export.
7. MCP or CLI and token cost
MCP and CLI are built by Slipway from each tool's one definition, so they share schemas, validation and HTTP handlers; there is no second API implementation.
Measured on 2026-10-05 against 2.0.1, the same day, 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 | 93,800 | 84,415 |
| Claude Code's default, tool search, every message | 2,499 | 2,499 |
| SKILL.md, read once | 903 | 940 |
| Codex over the CLI, one task, median of five | 86,128 | 82,915 |
| Codex over MCP, the same task, median of five | 77,642 | 77,488 |
The task was "find the command that refunds a member's charge, and the flags it requires". Every tool loaded costs less because many write bodies appeared twice, as their own fields and inside payload, and 3.0.0 writes each repeated part once under $defs. Over the CLI, every 3.0.0 run asked which (315 characters) where 2.0.1's read the full command list (11,631). Over MCP, Codex prints its own TypeScript rendering of the tool list and cuts it to about 10,000 tokens; the full rendering is 2,046 tokens longer on 3.0.0, while the part Codex kept was a little shorter, and two 2.0.1 runs printed only the tool names. SKILL.md costs 37 more because it now says how approval works over MCP.
API quota and service costs remain separate, and no other offering was measured.
8. Every tool and argument
All 169 API operations come from the pinned official v2 snapshot. list_accounts is the local helper. The tables document every top-level operation argument. schema returns all nested requirements, unions, nullable values and enums. A body marked required is required in the body, whether supplied by flags or payload.
| Tool | API | Mode |
| --- | --- | --- |
| add_to_access_group | POST /api/admin/v2/access_groups/{access_group_id}/community_members | Write, confirms |
| remove_from_access_group | DELETE /api/admin/v2/access_groups/{access_group_id}/community_members | Write, confirms |
| list_access_group_community_members | GET /api/admin/v2/access_groups/{access_group_id}/community_members | Read |
| get_access_group_community_member | GET /api/admin/v2/access_groups/{access_group_id}/community_member | Read |
| create_access_group | POST /api/admin/v2/access_groups | Write, confirms |
| list_access_groups | GET /api/admin/v2/access_groups | Read |
| archive_access_group | DELETE /api/admin/v2/access_groups/{id} | Write, confirms |
| update_access_group | PUT /api/admin/v2/access_groups/{id} | Write, confirms |
| unarchive_access_group | PATCH /api/admin/v2/access_groups/{id}/unarchive | Write, confirms |
| search | GET /api/admin/v2/advanced_search | Read |
| update_chat_preferences | PUT /api/admin/v2/chat_preferences | Write, confirms |
| import_chat_room_message | POST /api/admin/v2/chat_room_message_imports | Write, confirms |
| create_comment | POST /api/admin/v2/comments | Write, confirms |
| list_comments | GET /api/admin/v2/comments | Read |
| delete_comment | DELETE /api/admin/v2/comments/{id} | Write, confirms |
| get_comment | GET /api/admin/v2/comments/{id} | Read |
| get_community | GET /api/admin/v2/community | Read |
| update_community | PUT /api/admin/v2/community | Write, confirms |
| create_lead | POST /api/admin/v2/community_leads | Write, confirms |
| delete_lead | DELETE /api/admin/v2/community_leads/{id} | Write, confirms |
| export_community_member_charges | POST /api/admin/v2/community_member_charges/export | Write, confirms |
| list_charges | GET /api/admin/v2/community_member_charges | Read |
| refund_community_member_charge | POST /api/admin/v2/community_member_charges/{id}/refund | Write, confirms |
| list_member_spaces | GET /api/admin/v2/community_member_spaces | Read |
| cancel_community_member_subscription | POST /api/admin/v2/community_member_subscriptions/{id}/cancel | Write, confirms |
| export_community_member_subscriptions | POST /api/admin/v2/community_member_subscriptions/export | Write, confirms |
| list_subscriptions | GET /api/admin/v2/community_member_subscriptions | Read |
| resume_community_member_subscription | POST /api/admin/v2/community_member_subscriptions/{id}/resume | Write, confirms |
| list_member_access_groups | GET /api/admin/v2/community_members/{community_member_id}/access_groups | Read |
| ban_community_member | PUT /api/admin/v2/community_members/{id}/ban_member | Write, confirms |
| create_member | POST /api/admin/v2/community_members | Write, confirms |
| list_members | GET /api/admin/v2/community_members | Read |
| delete_community_member | PUT /api/admin/v2/community_members/{id}/delete_member | Write, confirms |
| remove_member | DELETE /api/admin/v2/community_members/{id} | Write, confirms |
| get_member | GET /api/admin/v2/community_members/{id} | Read |
| update_member | PUT /api/admin/v2/community_members/{id} | Write, confirms |
| search_member | GET /api/admin/v2/community_members/search | Read |
| create_community_segment | POST /api/admin/v2/community_segments | Write, confirms |
| list_segments | GET /api/admin/v2/community_segments | Read |
| delete_community_segment | DELETE /api/admin/v2/community_segments/{id} | Write, confirms |
| update_community_segment | PUT /api/admin/v2/community_segments/{id} | Write, confirms |
| duplicate_community_segment | POST /api/admin/v2/community_segments/{id}/duplicate | Write, confirms |
| create_contact_note | POST /api/admin/v2/contacts/{contact_id}/contact_notes | Write, confirms |
| list_contact_notes | GET /api/admin/v2/contacts/{contact_id}/contact_notes | Read |
| update_course_progress | PUT /api/admin/v2/course_lesson_progress | Write, confirms |
| create_course_lesson | POST /api/admin/v2/course_lessons | Write, confirms |
| list_course_lessons | GET /api/admin/v2/course_lessons | Read |
| delete_course_lesson | DELETE /api/admin/v2/course_lessons/{id} | Write, confirms |
| get_course_lesson | GET /api/admin/v2/course_lessons/{id} | Read |
| update_course_lesson | PATCH /api/admin/v2/course_lessons/{id} | Write, confirms |
| reorder_course_lessons | PUT /api/admin/v2/course_lessons/reorder | Write, confirms |
| create_course_section | POST /api/admin/v2/course_sections | Write, confirms |
| list_course_sections | GET /api/admin/v2/course_sections | Read |
| delete_course_section | DELETE /api/admin/v2/course_sections/{id} | Write, confirms |
| get_course_section | GET /api/admin/v2/course_sections/{id} | Read |
| update_course_section | PUT /api/admin/v2/course_sections/{id} | Write, confirms |
| create_direct_upload | POST /api/admin/v2/direct_uploads | Write, confirms |
| create_embed | POST /api/admin/v2/embeds | Write, confirms |
| get_embed | GET /api/admin/v2/embeds/{sgid} | Read |
| create_event_attendee | POST /api/admin/v2/event_attendees | Write, confirms |
| delete_event_attendee | DELETE /api/admin/v2/event_attendees | Write, confirms |
| list_event_attendees | GET /api/admin/v2/event_attendees | Read |
| create_event | POST /api/admin/v2/events | Write, confirms |
| list_events | GET /api/admin/v2/events | Read |
| delete_event | DELETE /api/admin/v2/events/{id} | Write, confirms |
| get_event | GET /api/admin/v2/events/{id} | Read |
| update_event | PUT /api/admin/v2/events/{id} | Write, confirms |
| duplicate_event | POST /api/admin/v2/spaces/{space_id}/events/{id}/duplicate | Write, confirms |
| get_filter_configuration | GET /api/admin/v2/filter_kit_configuration | Read |
| create_filter_control | POST /api/admin/v2/filter_kit_controls | Write, confirms |
| list_filter_controls | GET /api/admin/v2/filter_kit_controls | Read |
| delete_filter_control | DELETE /api/admin/v2/filter_kit_controls/{id} | Write, confirms |
| get_filter_control | GET /api/admin/v2/filter_kit_controls/{id} | Read |
| update_filter_control | PATCH /api/admin/v2/filter_kit_controls/{id} | Write, confirms |
| report_flagged_content | POST /api/admin/v2/flagged_contents | Write, confirms |
| list_flagged_content | GET /api/admin/v2/flagged_contents | Read |
| delete_form | DELETE /api/admin/v2/forms/{id} | Write, confirms |
| get_form | GET /api/admin/v2/forms/{id} | Read |
| update_form | PUT /api/admin/v2/forms/{id} | Write, confirms |
| duplicate_form | POST /api/admin/v2/forms/{id}/duplicate | Write, confirms |
| list_forms | GET /api/admin/v2/forms | Read |
| create_form_submission | POST /api/admin/v2/forms/{form_id}/submissions | Write, confirms |
| get_form_submissions | GET /api/admin/v2/forms/{form_id}/submissions | Read |
| get_leaderboard | GET /api/admin/v2/gamification/leaderboard | Read |
| create_image_post | POST /api/admin/v2/spaces/{space_id}/images/posts | Write, confirms |
| list_image_posts | GET /api/admin/v2/spaces/{space_id}/images/posts | Read |
| delete_image_post | DELETE /api/admin/v2/spaces/{space_id}/images/posts/{id} | Write, confirms |
| get_image_post | GET /api/admin/v2/spaces/{space_id}/images/posts/{id} | Read |
| duplicate_image_post | POST /api/admin/v2/spaces/{space_id}/images/posts/{id}/duplicate | Write, confirms |
| create_invitation | POST /api/admin/v2/invitation_links | Write, confirms |
| list_invitations | GET /api/admin/v2/invitation_links | Read |
| delete_invitation_link | DELETE /api/admin/v2/invitation_links/{id} | Write, confirms |
| update_invitation_link | PUT /api/admin/v2/invitation_links/{id} | Write, confirms |
| revoke_invitation_link | PATCH /api/admin/v2/invitation_links/{id}/revoke | Write, confirms |
| list_live_rooms | GET /api/admin/v2/live/rooms | Read |
| list_live_room_transcripts | GET /api/admin/v2/live/rooms/{room_id}/transcripts | Read |
| search_locations | GET /api/admin/v2/locations/search | Read |
| create_member_tag | POST /api/admin/v2/member_tags | Write, confirms |
| list_member_tags | GET /api/admin/v2/member_tags | Read |
| delete_member_tag | DELETE /api/admin/v2/member_tags/{id} | Write, confirms |
| get_member_tag | GET /api/admin/v2/member_tags/{id} | Read |
| update_member_tag | PUT /api/admin/v2/member_tags/{id} | Write, confirms |
| send_message | POST /api/admin/v2/messages | Write, confirms |
| list_page_profile_fields | GET /api/admin/v2/page_profile_fields | Read |
| get_payment_method_settings | GET /api/admin/v2/payment_method_setting | Read |
| export_paywall_affiliate_payouts | POST /api/admin/v2/paywall_affiliate_payouts/export | Write, confirms |
| mark_paywall_affiliate_payouts_paid | POST /api/admin/v2/paywall_affiliate_payouts/mark_paid | Write, confirms |
| start_paywall_affiliate_payouts | POST /api/admin/v2/paywall_affiliate_payouts/start | Write, confirms |
| list_paywall_affiliates | GET /api/admin/v2/paywall_affiliates | Read |
| invite_paywall_affiliates | POST /api/admin/v2/paywall_affiliates/invite | Write, confirms |
| update_paywall_affiliate | PATCH /api/admin/v2/paywall_affiliates/{id} | Write, confirms |
| delete_paywall_coupon | DELETE /api/admin/v2/paywall_coupons/{id} | Write, confirms |
| create_paywall_group | POST /api/admin/v2/paywall_groups | Write, confirms |
| update_paywall_group | PUT /api/admin/v2/paywall_groups/{id} | Write, confirms |
| search_paywalls | GET /api/admin/v2/paywalls/search | Read |
| delete_paywall | DELETE /api/admin/v2/paywalls/{id} | Write, confirms |
| archive_paywall | PUT /api/admin/v2/paywalls/{id}/archive | Write, confirms |
| publish_paywall | PUT /api/admin/v2/paywalls/{id}/publish | Write, confirms |
| unarchive_paywall | PUT /api/admin/v2/paywalls/{id}/unarchive | Write, confirms |
| unfollow_post | DELETE /api/admin/v2/posts/{post_id}/post_followers | Write, confirms |
| create_post | POST /api/admin/v2/posts | Write, confirms |
| list_posts | GET /api/admin/v2/posts | Read |
| delete_post | DELETE /api/admin/v2/posts/{id} | Write, confirms |
| get_post | GET /api/admin/v2/posts/{id} | Read |
| update_post | PUT /api/admin/v2/posts/{id} | Write, confirms |
| get_post_summary | GET /api/admin/v2/posts/{post_id}/summary | Read |
| archive_profile_field | PUT /api/admin/v2/profile_fields/{id}/archive | Write, confirms |
| create_profile_field | POST /api/admin/v2/profile_fields | Write, confirms |
| list_profile_fields | GET /api/admin/v2/profile_fields | Read |
| delete_profile_field | DELETE /api/admin/v2/profile_fields/{id} | Write, confirms |
| update_profile_field | PUT /api/admin/v2/profile_fields/{id} | Write, confirms |
| unarchive_profile_field | PUT /api/admin/v2/profile_fields/{id}/unarchive | Write, confirms |
| get_connect_settings | GET /api/admin/v2/settings/connect | Read |
| update_connect_settings | PATCH /api/admin/v2/settings/connect | Write, confirms |
| create_space_group_member | POST /api/admin/v2/space_group_members | Write, confirms |
| delete_space_group_member | DELETE /api/admin/v2/space_group_members | Write, confirms |
| list_space_group_members | GET /api/admin/v2/space_group_members | Read |
| get_space_group_member | GET /api/admin/v2/space_group_member | Read |
| create_space_group | POST /api/admin/v2/space_groups | Write, confirms |
| list_space_groups | GET /api/admin/v2/space_groups | Read |
| delete_space_group | DELETE /api/admin/v2/space_groups/{id} | Write, confirms |
| get_space_group | GET /api/admin/v2/space_groups/{id} | Read |
| update_space_group | PUT /api/admin/v2/space_groups/{id} | Write, confirms |
| add_space_member | POST /api/admin/v2/space_members | Write, confirms |
| remove_space_member | DELETE /api/admin/v2/space_members | Write, confirms |
| list_space_members | GET /api/admin/v2/space_members | Read |
| get_space_member | GET /api/admin/v2/space_member | Read |
| get_space_ai_summaries | GET /api/admin/v2/spaces/{space_id}/ai_summaries | Read |
| create_space | POST /api/admin/v2/spaces | Write, confirms |
| list_spaces | GET /api/admin/v2/spaces | Read |
| delete_space | DELETE /api/admin/v2/spaces/{id} | Write, confirms |
| get_space | GET /api/admin/v2/spaces/{id} | Read |
| update_space | PUT /api/admin/v2/spaces/{id} | Write, confirms |
| tag_member | POST /api/admin/v2/tagged_members | Write, confirms |
| untag_member | DELETE /api/admin/v2/tagged_members | Write, confirms |
| list_tagged_members | GET /api/admin/v2/tagged_members | Read |
| get_tagged_member | GET /api/admin/v2/tagged_members/{id} | Read |
| get_tax_settings | GET /api/admin/v2/tax_setting | Read |
| update_tax_settings | PUT /api/admin/v2/tax_setting | Write, confirms |
| create_topic | POST /api/admin/v2/topics | Write, confirms |
| list_topics | GET /api/admin/v2/topics | Read |
| delete_topic | DELETE /api/admin/v2/topics/{id} | Write, confirms |
| get_topic | GET /api/admin/v2/topics/{id} | Read |
| update_topic | PUT /api/admin/v2/topics/{id} | Write, confirms |
| activate_workflow | PUT /api/admin/v2/workflows/{id}/activate | Write, confirms |
| deactivate_workflow | PUT /api/admin/v2/workflows/{id}/deactivate | Write, confirms |
| duplicate_workflow | POST /api/admin/v2/workflows/{id}/duplicate | Write, confirms |
| list_workflows | GET /api/admin/v2/workflows | Read |
| get_workflow | GET /api/admin/v2/workflows/{id} | Read |
| list_accounts | Local settings | Read |
Shared arguments
All API tools accept account; all writes accept confirm. Tools with body properties accept payload or payload_file instead of body flags. Only the 33 reads with native page/per_page input expose all_pages and max_items. list_accounts takes no arguments.
Complete arguments
add_to_access_group
Add Member to Access Group. Changes community state and requires confirm=true for the user-requested action.
circle-cli add-to-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access group id (path input). minimum: 1. |
| email | string | Body | Email (body input). |
remove_from_access_group
Remove Access Group Member. Changes community state and requires confirm=true for the user-requested action.
circle-cli remove-from-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access group id (path input). minimum: 1. |
| email | string | Yes | Email |
list_access_group_community_members
List Access Group Community Members. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-access-group-community-members --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access Group ID minimum: 1. |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
get_access_group_community_member
Show Access Group Community Member. Reads community data.
circle-cli get-access-group-community-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access Group ID minimum: 1. |
| email | string | Yes | Email |
create_access_group
Create Access Group. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group | object | Body | Access group (body input). Object requires: name. |
list_access_groups
List Access Groups. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-access-groups --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| status | string | No | Filter by access group status Values: active, archived, all. |
| ids | array | No | Filter by access group ids Array items: integer. |
| name | string | No | Filter by access group name |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
archive_access_group
Archive Access Group. Changes community state and requires confirm=true for the user-requested action.
circle-cli archive-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access Group ID minimum: 1. |
update_access_group
Update Access Group. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access Group ID minimum: 1. |
| access_group | object | Body | Access group (body input). |
unarchive_access_group
Unarchive Access Group. Changes community state and requires confirm=true for the user-requested action.
circle-cli unarchive-access-group --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| access_group_id | integer | Yes | Access Group ID minimum: 1. |
search
Advanced Search. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli search --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| query | string | Yes | Search query |
| type | string | No | Search type Values: general, members, posts, comments, spaces, lessons, events, entity_list, mentions. |
| mention_scope | string | No | Mention scope Values: space, group_chat, thread, direct. |
| filters | object | No | Filters |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
update_chat_preferences
Update Chat Preferences. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-chat-preferences --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| messaging_enabled | boolean | No | Enable or disable messaging for the community |
| group_messaging_enabled | boolean | No | Enable or disable group messaging for the community |
| voice_messages_enabled | boolean | No | Enable or disable voice messages for the community |
| member_to_member_messaging_enabled | boolean | No | Enable or disable member-to-member messaging for the community |
import_chat_room_message
Import Chat Room Message. Changes community state and requires confirm=true for the user-requested action.
circle-cli import-chat-room-message --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| chat_room_uuid | string | Body | UUID of the target chat room (from a chat space) |
| user_email | string | Body | Email of the community member who is the message sender |
| rich_text_body | object | Body | TipTap rich text body, wrapped as { body: } |
| sent_at | string | Body | Timestamp for the imported message. Required and must not be in the future. format: date-time. |
| parent_message_id | integer/null | No | ID of the parent message when creating a thread reply |
create_comment
Create Comment. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-comment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| body | string | Body | Body (body input). |
| post_id | integer | Body | Post id (body input). |
| parent_comment_id | integer | No | Parent comment id (body input). |
| created_at | string | No | Created at (body input). format: date-time. |
| updated_at | string | No | Updated at (body input). format: date-time. |
| skip_notifications | boolean | No | Skip notifications (body input). |
list_comments
List Comments. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-comments --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| space_id | integer | No | Space ID |
| post_id | integer | No | Post ID |
| search_text | string | No | Search text |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
delete_comment
Destroy Comment. Changes community state and requires confirm=true for the user-requested action.
circle-cli delete-comment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| comment_id | string | Yes | Comment id (path input). |
get_comment
Show Comment. Reads community data.
circle-cli get-comment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| comment_id | string | Yes | Comment id (path input). |
get_community
Get community details. Reads community data.
circle-cli get-community --help| Argument | Type | Required | Meaning and constraints | | --- | --- | --- | --- | | None | Not applicable | No | Shared account/confirmation controls only. |
update_community
Update Community. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-community --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| community | object | No | Community (body input). |
| community_setting | object | No | Community setting (body input). |
create_lead
Create a non-member contact (lead). To add a full community member instead, use create_community_member.. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-lead --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| email | string | Body | Email address of the contact. Must not already belong to a member or an existing non-member contact in this community. |
| name | string | No | Display name of the contact. |
| member_tag_ids | array | No | IDs of existing member tags to apply to the new contact. Use the member_tags endpoints to look these up. Array items: integer. |
delete_lead
Delete a non-member contact (lead). To delete a full community member instead, use destroy_community_member.. Changes community state and requires confirm=true for the user-requested action.
circle-cli delete-lead --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| lead_id | integer | Yes | Numeric id of the non-member contact to delete minimum: 1. |
export_community_member_charges
Export Community Member Charges. Changes community state and requires confirm=true for the user-requested action.
circle-cli export-community-member-charges --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_email | string | No | Filter by community member email (partial match) |
| community_member_id | integer | No | Filter by community member ID |
| community_member_public_uid | string | No | Filter by community member public UID |
| billing_info_business_name | string | No | Filter by billing info business name (partial match) |
| paywall_price_type | string | No | Comma-separated list of paywall price types (e.g. subscription,onetime,installments) |
| processor_id | string | No | Filter by exact processor (charge) ID |
| subscription_processor_id | string | No | Filter by exact subscription processor ID |
| invoice_processor_id | string | No | Filter by exact invoice processor ID |
| currency | string | No | Comma-separated list of currency codes |
| paywall_ids | string | No | Comma-separated list of paywall IDs |
| status | string | No | Comma-separated list of statuses (e.g. paid,refunded,partial_refunded) |
| platform | string | No | Comma-separated list of platforms (web, app_store, play_store) |
| amount_gte | integer | No | Minimum charge amount (in currency subunits) |
| amount_lte | integer | No | Maximum charge amount (in currency subunits) |
| created_at_gte | string | No | Only include charges created on/after this date (ISO8601) |
| created_at_lte | string | No | Only include charges created on/before this date (ISO8601) |
| fields | string | No | Comma-separated list of CSV columns to include |
| timezone | string | No | Timezone used to render dates in the CSV (defaults to Etc/UTC) |
list_charges
Community Member Charges List. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-charges --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Records per page (max 100) minimum: 1. maximum: 100. |
| query | string | No | Free-text search |
| member_email | string | No | Filter by community member email (partial match) |
| community_member_id | integer | No | Filter by community member ID |
| community_member_public_uid | string | No | Filter by community member public UID |
| billing_info_business_name | string | No | Filter by billing info business name (partial match) |
| paywall_price_type | string | No | Comma-separated list of paywall price types (e.g. subscription,onetime,installments) |
| processor_id | string | No | Filter by exact processor (charge) ID |
| subscription_processor_id | string | No | Filter by exact subscription processor ID |
| invoice_processor_id | string | No | Filter by exact invoice processor ID |
| currency | string | No | Comma-separated list of currency codes |
| paywall_ids | string | No | Comma-separated list of paywall IDs |
| status | string | No | Comma-separated list of statuses (e.g. paid,refunded,partial_refunded) |
| platform | string | No | Comma-separated list of platforms (web, app_store, play_store) |
| amount_gte | integer | No | Minimum charge amount (in currency subunits) |
| amount_lte | integer | No | Maximum charge amount (in currency subunits) |
| created_at_gte | string | No | Only include charges created on/after this date (ISO8601) |
| created_at_lte | string | No | Only include charges created on/before this date (ISO8601) |
| sort | string | No | Sort field. Defaults to created_at. Values: amount, charge_term, community_member_name, paywall_name, platform, display_status, created_at. |
| direction | string | No | Sort direction. Defaults to desc. Values: asc, desc. |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
refund_community_member_charge
Refund Community Member Charge. Changes community state and requires confirm=true for the user-requested action.
circle-cli refund-community-member-charge --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| charge_id | integer | Yes | Community Member Charge ID minimum: 1. |
| amount | integer | No | Amount to refund (in currency subunits). Omit for a full refund. |
| reason_details | string | Body | Refund reason. Required, 255 characters max. maxLength: 255. |
list_member_spaces
List Community Member Spaces. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-member-spaces --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| community_member_id | integer | No | Community member id (query input). |
| user_email | string | No | User email (query input). |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
cancel_community_member_subscription
Cancel Community Member Subscription. Changes community state and requires confirm=true for the user-requested action.
circle-cli cancel-community-member-subscription --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| subscription_id | integer | Yes | Community Member Subscription ID minimum: 1. |
| ends_at | string | Body | Cancellation timing: 'now' or 'at_period_end'. |
| refund_type | string | No | Optional refund type when canceling immediately: 'prorated' or 'full'. |
export_community_member_subscriptions
Export Community Member Subscriptions. Changes community state and requires confirm=true for the user-requested action.
circle-cli export-community-member-subscriptions --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_email | string | No | Filter by community member email (partial match) |
| community_member_id | integer | No | Filter by community member ID |
| community_member_public_uid | string | No | Filter by community member public UID |
| billing_info_business_name | string | No | Filter by billing info business name (partial match) |
| paywall_price_type | string | No | Comma-separated list of paywall price types (e.g. subscription,onetime,installments) |
| billing_interval | string | No | Filter by paywall price billing interval (e.g. month, year) |
| subscription_processor_id | string | No | Filter by exact subscription processor ID |
| currency | string | No | Comma-separated list of currency codes |
| paywall_ids | string | No | Comma-separated list of paywall IDs |
| status | string | No | Comma-separated list of statuses (e.g. active,trial,canceled) |
| scheduled_to_cancel | boolean | No | Filter by whether the subscription is scheduled to cancel |
| platform | string | No | Comma-separated list of platforms (web, app_store, play_store) |
| total_amount_paid_gte | integer | No | Minimum total amount paid (in currency subunits) |
| total_amount_paid_lte | integer | No | Maximum total amount paid (in currency subunits) |
| start_date_gte | string | No | Only include subscriptions started on/after this date (ISO8601) |
| start_date_lte | string | No | Only include subscriptions started on/before this date (ISO8601) |
| fields | string | No | Comma-separated list of CSV columns to include |
| timezone | string | No | Timezone used to render dates in the CSV (defaults to Etc/UTC) |
list_subscriptions
Community Member Subscriptions List. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-subscriptions --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Records per page (max 100) minimum: 1. maximum: 100. |
| query | string | No | Free-text search |
| member_email | string | No | Filter by community member email (partial match) |
| community_member_id | integer | No | Filter by community member ID |
| community_member_public_uid | string | No | Filter by community member public UID |
| billing_info_business_name | string | No | Filter by billing info business name (partial match) |
| paywall_price_type | string | No | Comma-separated list of paywall price types (e.g. subscription,onetime,installments) |
| billing_interval | string | No | Filter by paywall price billing interval (e.g. month, year) |
| subscription_processor_id | string | No | Filter by exact subscription processor ID |
| currency | string | No | Comma-separated list of currency codes |
| paywall_ids | string | No | Comma-separated list of paywall IDs |
| status | string | No | Comma-separated list of statuses (e.g. active,trial,canceled) |
| scheduled_to_cancel | boolean | No | Filter by whether the subscription is scheduled to cancel |
| platform | string | No | Comma-separated list of platforms (web, app_store, play_store) |
| total_amount_paid_gte | integer | No | Minimum total amount paid (in currency subunits) |
| total_amount_paid_lte | integer | No | Maximum total amount paid (in currency subunits) |
| start_date_gte | string | No | Only include subscriptions started on/after this date (ISO8601) |
| start_date_lte | string | No | Only include subscriptions started on/before this date (ISO8601) |
| sort | string | No | Sort field (one of: charges_quantity, subscription_term, renews_on, community_member_name, paywall_name, platform, status, created_at). Defaults to created_at |
| direction | string | No | Sort direction (asc or desc). Defaults to desc |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
resume_community_member_subscription
Resume Community Member Subscription. Changes community state and requires confirm=true for the user-requested action.
circle-cli resume-community-member-subscription --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| subscription_id | integer | Yes | Community Member Subscription ID minimum: 1. |
list_member_access_groups
List Community Member's Access Groups. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-member-access-groups --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| community_member_id | integer | Yes | Community Member ID minimum: 1. |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
ban_community_member
Ban Community Member. Changes community state and requires confirm=true for the user-requested action.
circle-cli ban-community-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_id | integer | Yes | Community member ID to ban minimum: 1. |
create_member
Create/Invite a community member. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| email | string | Body | Email (body input). |
| password | string | No | Password (body input). |
| skip_invitation | boolean | No | Skip invitation (body input). |
| avatar | string | No | signed_id of the avatar returned from the direct upload endpoint |
| name | string | No | Name (body input). |
| headline | string | No | Headline (body input). |
| is_flagged | boolean | No | Is flagged (body input). |
| preferences | object | No | Preferences (body input). |
| space_ids | array | No | Space ids (body input). Array items: integer. |
| space_group_ids | array | No | Space group ids (body input). Array items: integer. |
| member_tag_ids | array | No | Member tag ids (body input). Array items: integer. |
| community_member_profile_fields | object | No | Profile fields key value pairs |
list_members
List Community Members. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-members --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| status | string | No | Filter by member status. Defaults to active. - active: members who have completed profile setup (profile_confirmed_at is set). - inactive: invited members who have not yet completed profile setup. This is the same set shown in the admin UI under Audience → Manage → Invited. - all: both of the above. Values: active, all, inactive. |
| member_tag_ids | array | No | Filter by Member Tag IDs (OR logic, comma-separated) Array items: integer. |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
delete_community_member
Delete Community Member. Changes community state and requires confirm=true for the user-requested action.
circle-cli delete-community-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_id | integer | Yes | Community member ID to delete minimum: 1. |
remove_member
Deactivate a community member. Changes community state and requires confirm=true for the user-requested action.
circle-cli remove-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_id | string | Yes | ID of the community member |
get_member
Show a community member. Reads community data.
circle-cli get-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_id | string | Yes | ID of the community member |
update_member
Update a community member. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| member_id | string | Yes | ID of the community member |
| avatar | string | No | signed_id of the avatar returned from the direct upload endpoint |
| name | string | No | Name (body input). |
| headline | string | No | Headline (body input). |
| is_flagged | boolean | No | Is flagged (body input). |
| member_since | string | No | Effective "member since" / joined date. Cannot be in the future. format: date-time. |
| preferences | object | No | Preferences (body input). |
| space_ids | array | No | Space ids (body input). Array items: integer. |
| space_group_ids | array | No | Space group ids (body input). Array items: integer. |
| member_tag_ids | array | No | Member tag ids (body input). Array items: integer. |
| community_member_profile_fields | object | No | Profile fields key value pairs |
search_member
Search a community member. Reads community data.
circle-cli search-member --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| email | string | Yes | Email of the community member |
create_community_segment
Create a community segment. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-community-segment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| title | string | Body | Title (body input). |
| visible | boolean | Body | Visible (body input). |
| rules | object | Body | Rules (body input). Object requires: rule_type, rules. |
| community_segment_consumer_attributes | object | No | Community segment consumer attributes (body input). |
list_segments
List Community Segments. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-segments --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| title | string | No | Filter by title |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
delete_community_segment
Delete a community segment. Changes community state and requires confirm=true for the user-requested action.
circle-cli delete-community-segment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| segment_id | string | Yes | ID of the community segment to delete |
update_community_segment
Update a community segment. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-community-segment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| segment_id | string | Yes | ID of the community segment to update |
| title | string | Body | Title (body input). |
| visible | boolean | Body | Visible (body input). |
| rules | object | Body | Rules (body input). Object requires: rule_type, rules. |
| community_segment_consumer_attributes | object | No | Community segment consumer attributes (body input). |
duplicate_community_segment
Duplicate a community segment. Changes community state and requires confirm=true for the user-requested action.
circle-cli duplicate-community-segment --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| segment_id | string | Yes | ID of the community segment to duplicate |
| title | string | Yes | Title for the duplicated community segment |
create_contact_note
Create Contact Note. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-contact-note --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| contact_id | string | Yes | Contact ID or sqid |
| tiptap_body | object | Body | Rich text note in Tiptap document format Object requires: body. |
list_contact_notes
List Contact Notes. Reads community data.
circle-cli list-contact-notes --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| contact_id | string | Yes | Contact ID or sqid |
| page | integer | No | Page number minimum: 1. |
update_course_progress
Update Course Lesson Progress. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-course-progress --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| lesson_id | integer | Body | Lesson id (body input). |
| member_email | string | Body | Member email (body input). |
| status | string | Body | Status (body input). Values: incomplete, completed. |
create_course_lesson
Create a course lesson. Changes community state and requires confirm=true for the user-requested action.
circle-cli create-course-lesson --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| section_id | integer | Body | Section id (body input). |
| name | string | Body | Name (body input). |
| status | string | No | Status (body input). Values: draft, published. |
| body_html | string | No | Body html (body input). |
| is_comments_enabled | boolean | No | Is comments enabled (body input). |
| is_featured_media_enabled | boolean | No | Is featured media enabled (body input). |
| is_featured_media_download_enabled | boolean | No | Is featured media download enabled (body input). |
| thumbnail | string | No | signed_id of the lesson thumbnail image returned from the direct upload endpoint |
| featured_media | string | No | signed_id of the lesson featured media file returned from the direct upload endpoint |
| rich_text_body | object | No | Rich text body (body input). |
list_course_lessons
List course lessons. Reads community data. Supports bounded all_pages; every page counts against the API quota.
circle-cli list-course-lessons --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| page | integer | No | Page number minimum: 1. |
| per_page | integer | No | Number of records per page minimum: 1. maximum: 100. |
| section_id | integer | No | Section ID |
| space_id | integer | No | Space ID |
| status | string | No | Status Values: draft, published. |
| sort | string | No | Sorting parameters (sort by name in ascending order, name in descending order, and by newest. Default is oldest) Values: oldest, newest, alphabetical, alphabetical_desc. |
| all_pages | boolean | No | Bounded page retrieval; each page consumes quota. |
| max_items | integer | No | Max items (control input). minimum: 1. maximum: 10000. default: 1000. |
delete_course_lesson
Delete a course lesson. Changes community state and requires confirm=true for the user-requested action.
circle-cli delete-course-lesson --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| lesson_id | integer | Yes | Course lesson ID minimum: 1. |
get_course_lesson
Show a course lesson. Reads community data.
circle-cli get-course-lesson --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| lesson_id | integer | Yes | ID of the course lesson minimum: 1. |
update_course_lesson
Update a course lesson. Changes community state and requires confirm=true for the user-requested action.
circle-cli update-course-lesson --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| lesson_id | integer | Yes | ID of the course lesson minimum: 1. |
| name | string | No | Name (body input). |
| status | string | No | Status (body input). Values: draft, published. |
| body_html | string | No | Body html (body input). |
| is_comments_enabled | boolean | No | Is comments enabled (body input). |
| is_featured_media_enabled | boolean | No | Is featured media enabled (body input). |
| is_featured_media_download_enabled | boolean | No | Is featured media download enabled (body input). |
| thumbnail | string | No | signed_id of the lesson thumbnail image returned from the direct upload endpoint |
| featured_media | string | No | signed_id of the lesson featured media file returned from the direct upload endpoint |
| rich_text_body | object | No | Rich text body (body input). |
reorder_course_lessons
Reorder course lessons. Changes community state and requires confirm=true for the user-requested action.
circle-cli reorder-course-lessons --help| Argument | Type | Required | Meaning and constraints |
| --- | --- | --- | --- |
| space_id | integer | Body | ID of the course space |
| new_order | array | Body | All course sections and lessons in their final order Array items: object. |
create_course_section
Create a course sec
