Integration

formcarry integration

formcarry is a hosted form backend: an HTML form posts to its endpoint and formcarry stores the submission, filters spam, emails it and forwards it to webhooks. With this API an agent can create, read, update and delete forms and their configuration (spam filter, captcha, email notification and auto response, thank you page or redirect, validation rules), upload a logo, list, count, search, read, delete or move submissions to and from spam, check where each submission was delivered, and manage webhooks and their delivery log. Not returned: submitter IP addresses and browser user agents, attachment download links, notification recipient addresses, webhook target URLs and signing secrets, email delivery targets, SMTP hosts and the API key's prefix and last digits. Not exposed: the health check and the add-one or remove-one notification recipient routes (they answer with the recipient address list); recipients can still be set with update_form, which replaces the whole list. Each key carries scopes (forms:read, forms:write, submissions:read, submissions:write) chosen when it is created; webhooks and image uploads need a plan that includes them, and the vendor documents a limit of 10 requests per second per key (HTTP 429 rate_limited with Retry-After). Authentication is an API key (fc_live_...) from the dashboard's API Keys page, sent as a Bearer token in the Authorization header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in formcarry.Built from the 25 formcarry tools below, on the connection you add once.

What you can do with formcarry

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Submission, 7 operations

  • count_submissionsCount submissionsGETCounts a form's submissions matching the filters instead of returning them; group_by counts per day, week, month, country, spam, read or a submitted field (largest 20 groups, the rest in other).
  • delete_submissionDelete submissionDELETEPermanently deletes one submission; this cannot be undone. Files uploaded with it are not deleted.
  • get_submissionGet submissionGETReturns one submission with its submitted fields, the names and types of its uploaded files, country and referring page.
  • list_form_submissionsList form submissionsGETLists a form's submissions, newest first, with their submitted fields. Filters combine with AND. Pages with cursor: pass next_cursor until it is null (a page may hold fewer than limit).
  • mark_submission_spamMark submission spamPOSTMoves a submission to spam and returns it. Spam is left out of lists unless status is spam or all.
  • restore_submissionRestore submissionPOSTMoves a spam submission back to the inbox and returns it.
  • search_submissionsSearch submissionsGETSearches submissions across up to 25 forms (default: the most recently active the key can read) and returns at most limit matches, each with its form_id; complete is false when not every form was reached. No pages.

Form, 5 operations

  • create_formCreate formPOSTCreates a form for real and returns it with its endpoint URL, where an HTML form posts. Only name is required; blocks left out get defaults. A setting the plan does not include refuses the call and creates nothing.
  • delete_formDelete formDELETEPermanently deletes the form; this cannot be undone. Its submissions, exports and connected integrations are not deleted.
  • get_formGet formGETReturns one form and its full configuration: endpoint, storage, spam, notification email, auto response, after-submit page or redirect, webhooks and validation rules.
  • list_formsList formsGETLists the forms the key can access, newest first, each with its full configuration. Pages with cursor: pass next_cursor until it is null.
  • update_formUpdate formPATCHChanges only the settings sent; nested objects are merged, lists (recipients, rules) are replaced whole. Applies for real, and enabling auto_response sends emails to submitters.

Webhook, 5 operations

  • create_webhookCreate webhookPOSTAdds a webhook for real: every new submission of the form is then POSTed as signed JSON to url. Up to 10 per form, one per URL; needs a plan with webhooks. The signing secret is not returned here.
  • delete_webhookDelete webhookDELETERemoves the webhook, so no later submission is delivered to it.
  • get_webhookGet webhookGETReturns one webhook: enabled state, description, events, signing algorithm and header, and creation time. The target URL and secret are not returned.
  • list_webhooksList webhooksGETLists a form's webhooks with their state, events and signing method. Target URLs are not returned.
  • update_webhookUpdate webhookPATCHChanges only what is sent (url, enabled, description, events); the signing secret does not change. Turning enabled off keeps the webhook but stops deliveries.

Delivery, 2 operations

  • get_webhook_deliveryGet webhook deliveryGETReturns the latest outcome of one submission's delivery to this webhook: status, attempts, HTTP status and error text.
  • list_webhook_deliveriesList webhook deliveriesGETLists the webhook's delivery log, newest first: one entry per submission with its latest outcome, HTTP status and error text. Next page: pass the last occurred_at as before. Kept 18 months.

Api key, 1 operation

  • get_current_keyGet current keyGETReturns the credential used for this call: whether it is an API key or an OAuth app, its scopes, and the teams and forms it can access. Use it to check what the key may do.

Email server, 1 operation

  • list_email_serversList email serversGETLists the email servers set up in the dashboard that a form can send its notification from (kind email_server: own SMTP server; premium_server: verified sending domain). Pass an id as self_email_notification.sender.server_id.

Field, 1 operation

  • list_form_fieldsList form fieldsGETLists the field names in the newest 2,000 submissions of a form, most used first (at most 200), each with how many submissions carry it and when it was last seen. Use it to find field names for filters.

Form image, 1 operation

  • upload_form_imageUpload form imagePOSTUploads a logo image (paid plans, up to 5 MB) and returns its url; the form does not change until that url is set with update_form in the field matching use.

Submission delivery, 1 operation

  • list_submission_deliveriesList submission deliveriesGETReturns, for up to 20 submissions of a form, the latest outcome of every email, webhook, Zapier zap and integration it was sent to, plus one rolled-up status per submission. The log is kept 18 months.

Webhook delivery, 1 operation

  • redeliver_webhook_submissionRedeliver webhook submissionPOSTSends one submission to this webhook again for real (even a paused one), repeating whatever the endpoint does with it. Confirms it was queued only: read get_webhook_delivery for the outcome.

Use formcarry from Claude Code, Cursor or Codex

Connect formcarry in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its formcarry operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect formcarry

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect formcarry once

    Add your formcarry connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

formcarry integration FAQ

What can you do with the formcarry integration?

LiveContext exposes 25 operations on formcarry, covering submission, form, webhook and delivery.

Popular integrations

Browse the whole catalog