For AI agents
Tell your AI agent to set this up
Copy the block below into Claude, ChatGPT, Cursor — any agent. It contains everything needed to connect to GroZro and run the content loop: your only manual step is creating the API key.
The setup prompt
# Set up GroZro for your operator
You are configuring GroZro (https://grozro.com) — an AI social-growth
operator for X. It drafts platform-native content in the operator's voice;
every post stays behind human approval. Your job: connect to the API and run
the content loop on the human's behalf.
## 1. Get an API key (human step)
Ask your human to create a key at app.grozro.com → Settings → Developer access
(direct link: https://app.grozro.com/settings). Keys look like `ak_…`,
are shown once, and carry the scopes api:read, api:write, mcp:use.
## 2. Verify the key
```bash
curl -H "Authorization: Bearer ak_…" https://api.grozro.com/api/v1/growth/connection
```
A 200 with JSON means you are in. 401 → wrong or revoked key.
## 3. Pick your surface
**REST** (works everywhere): base URL `https://api.grozro.com`, Bearer auth with the key.
Machine spec: `https://api.grozro.com/api/v1/openapi.json` (no auth).
**MCP** (best for AI clients): streamable-HTTP server with growth tools
(growth_overview, growth_create_batch, growth_list_batches, growth_create_article, growth_list_articles, growth_list_queue, growth_approve_item, growth_reject_item, growth_mark_item_posted, growth_schedule_item, growth_post_item, growth_connection_status, growth_list_accounts, growth_set_default_account, growth_update_profile, growth_update_channel, growth_create_audit, growth_list_learnings, growth_add_learning, growth_retire_learning, growth_list_engagements, growth_create_engagement, growth_approve_engagement, growth_reject_engagement, growth_execute_engagement, growth_list_targets, growth_add_target, growth_update_target, growth_list_signals, growth_dismiss_signal, growth_engage_signal, growth_list_products, growth_add_product, growth_update_product, growth_list_hooks, growth_list_reports, growth_create_report, growth_list_experiments, growth_create_experiment, growth_conclude_experiment, growth_list_rules, growth_create_rule, growth_update_rule, growth_list_rule_runs, growth_pause_automation, growth_resume_automation).
```bash
claude mcp add grozro --transport http \
https://api.grozro.com/api/v1/mcp \
--header "Authorization: Bearer ak_…"
```
**CLI** (for terminals): `npm install -g grozro`, then
`grozro login --api-key ak_…` (non-interactive; humans can run plain
`grozro login` for browser approval). Config lands in `~/.grozro/config.json`.
## 4. Run the core loop
1. **Verify the key** — `GET /api/v1/growth/connection`
Returns the connected X account; 401 means the key is wrong.
2. **See the workspace** — `GET /api/v1/growth/overview`
Profile, channels, drafted queue, and learnings in one call.
3. **Draft a batch** — `POST /api/v1/growth/batches`
Body {"count": 6, "focus": "launch week"}. Generation is async.
4. **Draft an article** — `POST /api/v1/growth/articles`
Body {"topic": "…", "length": "medium"}. Long-form X article.
5. **Review the queue** — `GET /api/v1/growth/items?status=drafted`
Poll until drafts land (usually under a minute).
6. **Approve or reject** — `POST /api/v1/growth/items/{id}/approve`
Optional {"edited_body": "…"}; /reject takes {"reason": "…"}.
7. **Post or schedule** — `POST /api/v1/growth/items/{id}/post-now`
Or /schedule with {"post_at": ISO-8601} — the worker posts when due.
## Guardrails
- NEVER post or approve content without the human's explicit go-ahead —
the drafted → approved transition is the human checkpoint.
- Generation endpoints are subject to plan quotas; a 403 with
`plan_quota_exceeded:…` means the workspace hit its monthly limit —
surface it, don't retry.
- Full docs for everything else: https://docs.grozro.com/llms-full.txt
Agents that fetch their own instructions can skip the paste: curl https://docs.grozro.com/agents.md
Per-agent tips
- Claude Code — prefer the MCP route (
claude mcp add, included in the block); the growth tools show up natively and the agent needs no HTTP plumbing. - Cursor — add the MCP server via JSON settings (see the MCP guide).
- ChatGPT / anything else — the REST loop in the block works with plain HTTP; the OpenAPI spec at
/api/v1/openapi.jsonfills in every schema.
What agents can and cannot do
- Drafting is safe by design: nothing posts to X without an explicit approve step — the drafted → approved transition is the human checkpoint.
- Generation calls count against your plan's monthly quotas; overages return
403 plan_quota_exceededrather than billing surprises. - API keys are revocable at any time from the same settings page.