# GroZro developer docs (full) > Your AI growth operator — drafts the content, you stay editor-in-chief. GroZro is an AI-native social growth operator. It drafts platform-native post batches from your growth profile, learns from your analytics, and keeps every post behind your approval. ## Authentication Create a tenant API key at app.grozro.com → Settings → Developer access (https://app.grozro.com/settings). Keys are prefixed `ak_`, shown once, and carry the scopes api:read, api:write, mcp:use. Pass them as a Bearer token. The API-key-reachable surface is `/api/v1/growth/*`, `/api/v1/mcp`, and the public spec at `/api/v1/openapi.json`; every other route serves the web app with session JWTs. ## REST API Base URL: `https://api.grozro.com`. ```bash curl -H "Authorization: Bearer ak_…" \ https://api.grozro.com/api/v1/growth/items?status=drafted ``` The core loop: - `GET /api/v1/growth/connection` — Verify the key. Returns the connected X account; 401 means the key is wrong. - `GET /api/v1/growth/overview` — See the workspace. Profile, channels, drafted queue, and learnings in one call. - `POST /api/v1/growth/batches` — Draft a batch. Body {"count": 6, "focus": "launch week"}. Generation is async. - `POST /api/v1/growth/articles` — Draft an article. Body {"topic": "…", "length": "medium"}. Long-form X article. - `GET /api/v1/growth/items?status=drafted` — Review the queue. Poll until drafts land (usually under a minute). - `POST /api/v1/growth/items/{id}/approve` — Approve or reject. Optional {"edited_body": "…"}; /reject takes {"reason": "…"}. - `POST /api/v1/growth/items/{id}/post-now` — Post or schedule. Or /schedule with {"post_at": ISO-8601} — the worker posts when due. Plan limits: generation endpoints return 403 with `plan_quota_exceeded:` or `plan_feature_disabled:` when the workspace plan does not allow the call. Full endpoint reference: `https://api.grozro.com/api/v1/openapi.json`. ## CLI Install: `npm install -g grozro` (Node 20+). `grozro login` does a browser device-flow login (approve a one-time code in the app); `--api-key` is the non-interactive path. Config is stored in `~/.grozro/config.json` (0600). `--api-url` targets another stack. - `grozro login` — Browser login: approve a code in the app. CI/agents: --api-key ak_… - `grozro overview` — Workspace snapshot: profile, channels, drafted queue, learnings - `grozro batch [--count 6] [--focus …]` — Draft a batch of ready-to-post content (async — poll the batch) - `grozro batches list` — List recent batches - `grozro batches get ` — One batch with its drafted items (settles in-flight generation) - `grozro article [--outline …] [--length short|medium|long]` — Draft one long-form X article (async — poll GET /articles) - `grozro articles [get ]` — List long-form articles - `grozro articles get ` — One article - `grozro queue [--status drafted]` — List content items by status - `grozro approve [--body …]` — Approve a drafted item (optional edited body; articles may retitle) - `grozro reject [--reason …]` — Reject a drafted item - `grozro item posted [--url …]` — Mark an approved item posted (manual publish path) - `grozro item schedule --at ` — Schedule an approved item; the worker posts it when due - `grozro post ` — Post an approved item to X immediately (articles go out as one long post) - `grozro whoami` — Connected X account state - `grozro connection disconnect` — Disconnect the X account - `grozro accounts [set-default ]` — List connected X accounts (multi-account) - `grozro accounts set-default ` — Make an account the default new content posts from - `grozro profile update [--goal …] [--voice …] [--json {…}]` — Update the growth profile (voice, goal, audience…) - `grozro channels update [--status active|inactive] [--json {…}]` — Update a platform channel (status, format rules, cadence) - `grozro audit` — Run an analytics audit (from synced metrics by default) - `grozro audits get ` — Audit result with extracted learnings - `grozro learnings [add|retire]` — List learnings (what worked / flopped / hypotheses) - `grozro learnings add --kind worked|flopped|hypothesis --note …` — Add a learning - `grozro learnings retire ` — Retire a learning - `grozro engage list [--status …]` — List engagement suggestions/drafts (replies, quotes) - `grozro engage create --action reply|quote|repost|like` — Draft an engagement against an X post - `grozro engage approve [--body …]` — Approve a drafted engagement - `grozro engage reject [--reason …]` — Reject a drafted engagement - `grozro engage execute ` — Execute an approved engagement on X - `grozro targets list` — List target accounts - `grozro targets add [--category …] [--priority 1-3]` — Add a target account to watch - `grozro targets update [--status active|paused] [--priority 1-3]` — Update or pause a target - `grozro signals list` — List open signals from watched targets - `grozro signals dismiss ` — Dismiss a signal - `grozro signals engage --action reply|quote|repost|like` — Engage a signal (drafts a reply/quote) - `grozro products list` — List products available for self-promotion weaving - `grozro products add --name … --one-liner … [--url …]` — Add a product - `grozro products update [--status active|archived] [--json {…}]` — Update or archive a product - `grozro hooks` — Hook-pattern library with usage stats - `grozro reports list` — List weekly reports - `grozro reports create` — Generate a weekly report - `grozro experiments list` — List experiments - `grozro experiments create --name … --hypothesis …` — Create an experiment - `grozro experiments conclude --result …` — Conclude an experiment with a verdict - `grozro rules list [update|pause-all|resume-all|runs]` — List automation rules - `grozro rules update [--status active|paused] [--json {…}]` — Update an automation rule - `grozro rules runs [--rule-id ]` — List recent automation rule runs - `grozro rules pause-all` — Pause all automation (kill switch) - `grozro rules resume-all` — Resume automation - `grozro calendar` — List scheduled/approved items (alias for `queue --status approved`) ## MCP Streamable-HTTP MCP server at `https://api.grozro.com/api/v1/mcp` (scope `mcp:use`). ```bash claude mcp add grozro --transport http \ https://api.grozro.com/api/v1/mcp \ --header "Authorization: Bearer ak_…" ``` Growth tools: - `growth_overview` — Workspace snapshot: profile, channels, drafted queue, learnings - `growth_create_batch` — Draft a batch of ready-to-post content (async — poll the batch) - `growth_list_batches` — List recent batches - `growth_create_article` — Draft one long-form X article (async — poll GET /articles) - `growth_list_articles` — List long-form articles - `growth_list_queue` — List content items by status - `growth_approve_item` — Approve a drafted item (optional edited body; articles may retitle) - `growth_reject_item` — Reject a drafted item - `growth_mark_item_posted` — Mark an approved item posted (manual publish path) - `growth_schedule_item` — Schedule an approved item; the worker posts it when due - `growth_post_item` — Post an approved item to X immediately (articles go out as one long post) - `growth_connection_status` — Connected X account state - `growth_list_accounts` — List connected X accounts (multi-account) - `growth_set_default_account` — Make an account the default new content posts from - `growth_update_profile` — Update the growth profile (voice, goal, audience…) - `growth_update_channel` — Update a platform channel (status, format rules, cadence) - `growth_create_audit` — Run an analytics audit (from synced metrics by default) - `growth_list_learnings` — List learnings (what worked / flopped / hypotheses) - `growth_add_learning` — Add a learning - `growth_retire_learning` — Retire a learning - `growth_list_engagements` — List engagement suggestions/drafts (replies, quotes) - `growth_create_engagement` — Draft an engagement against an X post - `growth_approve_engagement` — Approve a drafted engagement - `growth_reject_engagement` — Reject a drafted engagement - `growth_execute_engagement` — Execute an approved engagement on X - `growth_list_targets` — List target accounts - `growth_add_target` — Add a target account to watch - `growth_update_target` — Update or pause a target - `growth_list_signals` — List open signals from watched targets - `growth_dismiss_signal` — Dismiss a signal - `growth_engage_signal` — Engage a signal (drafts a reply/quote) - `growth_list_products` — List products available for self-promotion weaving - `growth_add_product` — Add a product - `growth_update_product` — Update or archive a product - `growth_list_hooks` — Hook-pattern library with usage stats - `growth_list_reports` — List weekly reports - `growth_create_report` — Generate a weekly report - `growth_list_experiments` — List experiments - `growth_create_experiment` — Create an experiment - `growth_conclude_experiment` — Conclude an experiment with a verdict - `growth_list_rules` — List automation rules - `growth_create_rule` — Create an automation rule - `growth_update_rule` — Update an automation rule - `growth_list_rule_runs` — List recent automation rule runs - `growth_pause_automation` — Pause all automation (kill switch) - `growth_resume_automation` — Resume automation Plus general workspace tools (memory, scheduling, playbooks, artifacts, documents search) depending on enabled modules. ## Agent onboarding Copy-paste block for AI agents: https://docs.grozro.com/agents.md Human version: https://docs.grozro.com/docs/agents