# Basin — how to use (mcp.ai)

Connect your Basin account and use 19 tools for forms and surveys straight from your AI agent. Connect with your own API key. Basin is a no-code form backend that enables users to set up powerful, reliable forms quickly without writing server-side code.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_basin?ms=1787293380000`
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. `basin_create_form`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/basin`
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/basin/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/basin/create/form` — Tool to create a new form in Basin. Use when you need to automate form setup with name, timezone, and project association; optionally configure redirect, notifications, or spam protection.
  - body: { name: string, timezone: string, use_ajax?: boolean, project_id: integer, redirect_url?: string, notifications?: object, spam_settings?: object }
- `POST https://api.mcp.ai/api/basin/create/form/webhook` — Tool to create a new webhook for a specific form. Use when you need to programmatically add a webhook once you have the form ID and callback URL confirmed.
  - body: { url: string, name: string, format?: string, enabled?: boolean, form_id: integer, trigger_when_spam?: boolean }
- `POST https://api.mcp.ai/api/basin/create/project` — Tool to create a new Basin project. Use when you need a new organizational container for forms. Example: "Create a project named Marketing Leads."
  - body: { name: string }
- `POST https://api.mcp.ai/api/basin/delete/form` — Tool to delete a form. Use when permanently removing a form after it's no longer needed. Ensure the form_id is correct; this operation is irreversible.
  - body: { form_id: string }
- `POST https://api.mcp.ai/api/basin/delete/project` — Tool to delete a project. Use when you need to remove a project after confirming its ID. Returns the deleted project's details.
  - body: { project_id: integer }
- `POST https://api.mcp.ai/api/basin/delete/submission` — Tool to permanently delete a form submission by its ID. Use when you need to remove a submission after confirming its ID. This operation is irreversible.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/basin/delete/webhook` — Tool to delete a specific webhook. Use when you need to remove a webhook from a form after confirming its ID.
  - body: { webhook_id: integer }
- `POST https://api.mcp.ai/api/basin/get/domains` — Tool to retrieve a list of all custom domains associated with the Basin account. Custom domains allow you to send emails from your own domain through Basin forms. Supports pagination and filtering by 
  - body: { page?: integer, query?: string }
- `POST https://api.mcp.ai/api/basin/get/form/details` — Retrieves comprehensive details about a specific Basin form including configuration, notification settings, security options, branding, webhooks, and submission counts. Use this when you need complete
  - body: { form_id: string }
- `POST https://api.mcp.ai/api/basin/get/form/webhook` — Tool to retrieve details of a specific form webhook by its ID. Use when you need to view webhook configuration including URL, format, and trigger settings.
  - body: { id: string }
- `POST https://api.mcp.ai/api/basin/get/forms` — Retrieves a list of all Basin forms with their configuration and metadata. Supports optional pagination via the 'page' parameter and filtering via the 'query' parameter (searches across form id, name,
  - body: { page?: integer, query?: string }
- `POST https://api.mcp.ai/api/basin/get/project/details` — Tool to retrieve detailed information about a specific project. Use when you have a project ID and need its metadata (name, created_at, updated_at).
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/basin/get/projects` — Retrieves a list of Basin projects from your account. Returns project details including IDs, names, and timestamps. Use this to list all projects or filter by name/ID. The response includes pagination
  - body: { page?: integer, query?: string }
- `POST https://api.mcp.ai/api/basin/get/submissions` — Retrieve form submissions from Basin with optional filtering, sorting, and search capabilities. Can retrieve all submissions across forms or filter by specific form_id. Supports filtering by status (n
  - body: { query?: string, form_id?: string, order_by?: string, filter_by?: string, date_range?: string }
- `POST https://api.mcp.ai/api/basin/get/webhooks` — Tool to retrieve all webhooks associated with a specific form. Use after obtaining the form ID.
  - body: { page?: integer, query?: string, form_id: integer }
- `POST https://api.mcp.ai/api/basin/list/form/views` — Retrieves a list of all Basin form views with their configuration and metadata. Supports optional pagination via the 'page' parameter and filtering via the 'query' parameter (searches across form view
  - body: { page?: integer, query?: string }
- `POST https://api.mcp.ai/api/basin/update/form` — Tool to update an existing Basin form by ID. Use when you need to modify form settings including name, notifications, spam protection, redirects, or other configuration options.
  - body: { id: string, logo?: string, name?: string, timezone?: string, use_ajax?: boolean, autoreply?: boolean, domain_id?: integer, project_id?: integer, domain_email?: string, redirect_url?: string, autoreply_body?: string, autoreply_name?: string, force_hcaptcha?: boolean, honeypot_field?: string, retention_days?: integer, allowed_domains?: string[], autoreply_email?: string, autoreply_title?: string, blocked_domains?: string[], custom_template?: string, force_recaptcha?: boolean, force_turnstile?: boolean, duplicate_filter?: boolean, redirect_heading?: string, redirect_message?: string, turnstile_secret?: string, autoreply_subject?: string, button_text_color?: string, content_blacklist?: string[], autoreply_greeting?: string, data_receipt_email?: boolean, turnstile_site_key?: string, autoreply_from_name?: string, notification_emails?: string, use_custom_template?: boolean, notification_subject?: string, recaptcha_failed_url?: string, redirect_button_text?: string, hide_dashboard_button?: boolean, smtp_email_validation?: boolean, notification_cc_emails?: string, notification_from_name?: string, button_background_color?: string, notification_bcc_emails?: string, whitelist_source_domains?: string, autoreply_custom_template?: string, redirect_button_text_color?: string, exclude_submitter_from_reply?: boolean, autoreply_use_custom_template?: boolean, confirmation_mail_template_id?: integer, notification_mail_template_id?: integer, auto_response_mail_template_id?: integer, redirect_button_background_color?: string }
- `POST https://api.mcp.ai/api/basin/update/project` — Tool to update details of an existing project. Use when you need to change a project's name after confirming the project ID. Example: "Update project 123 to 'Rebrand Launch'".
  - body: { name: string, project_id: integer }
- `POST https://api.mcp.ai/api/basin/update/webhook` — Tool to update settings of an existing webhook for a form. Use after obtaining the webhook's ID.
  - body: { url?: string, name?: string, format?: string, enabled?: boolean, form_id?: integer, webhook_id: integer, trigger_when_spam?: boolean }

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

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