# Iterate — how to use (mcp.ai)

Connect your Iterate account and use 13 tools for forms and surveys straight from your AI agent. Connect with your own API key. Iterate is a customer feedback platform for distributing surveys, analyzing responses, and managing company user privacy data.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_iterate?ms=1787291220000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `iterate_add_survey_recipient`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/iterate`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/iterate/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/iterate/add/survey/recipient` — Add one email recipient to a survey for a later send without sending the survey now.
  - body: { email: string, last_name?: string, survey_id: string, first_name?: string }
- `POST https://api.mcp.ai/api/iterate/anonymize/company/user` — Irreversibly remove one Iterate user's email and attributes while retaining survey responses. Optionally also remove response properties. Requires an exact user ID and explicit confirm_anonymization=t
  - body: { user_id: string, confirm_anonymization: boolean, include_response_properties?: boolean }
- `POST https://api.mcp.ai/api/iterate/bulk/anonymize/company/users` — Irreversibly remove identifying data from every Iterate company user matching at least one explicit email, external-ID, or typed user-property selector while retaining survey responses. Requires confi
  - body: { emails?: string[], external_ids?: string[], user_properties?: object[], confirm_bulk_anonymization: boolean, include_response_properties?: boolean }
- `POST https://api.mcp.ai/api/iterate/bulk/delete/company/user/data` — Permanently delete every matching Iterate company user and all matching users' survey responses using explicit non-empty selectors. This cannot be undone and requires confirm_bulk_permanent_deletion=t
  - body: { emails?: string[], external_ids?: string[], user_properties?: object[], confirm_bulk_permanent_deletion: boolean }
- `POST https://api.mcp.ai/api/iterate/delete/company/user/data` — Permanently delete one Iterate user object and all of that user's survey responses. This cannot be undone and requires an exact user ID plus explicit confirm_permanent_deletion=true.
  - body: { user_id: string, confirm_permanent_deletion: boolean }
- `POST https://api.mcp.ai/api/iterate/get/survey` — Return one survey's configuration and questions by survey ID. The action fails when Iterate embeds an error in an HTTP 200 response.
  - body: { survey_id: string }
- `POST https://api.mcp.ai/api/iterate/get/survey/stats` — Return delivery, display, response-count, and response-rate statistics for one survey.
  - body: { survey_id: string }
- `POST https://api.mcp.ai/api/iterate/import/survey/recipients` — Add a non-empty batch of email recipients to a survey without sending it, and return duplicate, failure, and success counts.
  - body: { survey_id: string, recipients: object[] }
- `POST https://api.mcp.ai/api/iterate/list/survey/response/groups` — Return one reverse-chronological page of completed survey submissions grouped by user, plus a continuation cursor.
  - body: { cursor?: string, survey_id: string }
- `POST https://api.mcp.ai/api/iterate/list/survey/responses` — Return one reverse-chronological page of individual answers for a survey, with an optional date range and continuation cursor.
  - body: { cursor?: string, end_date?: number, survey_id: string, start_date?: number }
- `POST https://api.mcp.ai/api/iterate/list/surveys` — Return all surveys available to the connected Iterate API key, including the survey and company IDs needed by other tools.
- `POST https://api.mcp.ai/api/iterate/search/company/users` — Find one user in the connected Iterate company by email, external ID, or one typed user property and return survey participation totals.
  - body: { email?: string, external_id?: string, user_property_name?: string, user_property_value?: string|integer|number|boolean }
- `POST https://api.mcp.ai/api/iterate/send/survey` — Irreversibly send or schedule an email survey to one specified recipient or every previously added recipient. Requires an explicit audience and confirmation.
  - body: { email?: string, send_at?: integer|number, audience: string, last_name?: string, survey_id: string, first_name?: string, confirm_send: boolean, custom_fields?: object, delay_seconds?: integer|number }

## Example prompts
- "What can I do in Iterate?"
- "Show me a summary of my Iterate account"

## More
- Page: https://mcp.ai/iterate
- Agent spec (llms.txt): https://mcp.ai/iterate/llms.txt
- Postman collection: https://mcp.ai/iterate/postman.json
