_ registry / mcp streamable-http · checked 30m ago

fillout-mcp

https://fillout.usefulapi.io

Registry code: d4dcd71f20ad9421

api record

Read Fillout forms and submissions, export responses, and create submissions and webhooks.

from a public catalogue that lists it, not from the operator

endpoint
https://fillout.usefulapi.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
171ms

last good check

priced tools
0

of 9 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 9 tools
9 never probed 0 of 9 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • fillout_remove_webhook unknown never probed

    Stop a webhook from receiving submissions. Recoverable: create it again with fillout_create_webhook (it gets a new id). Fillout: POST /webhook/delete.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "webhookId"
      ],
      "properties": {
        "webhookId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            }
          ],
          "description": "The webhook id returned by fillout_create_webhook."
        }
      }
    }
    arguments 23 lines
  • fillout_list_forms unknown never probed

    List every form in the Fillout account — each form's name and formId. Start here to find the formId the other tools need. Fillout: GET /forms.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • fillout_get_form unknown never probed

    Fetch one form's metadata: every question (id, name, type), calculations, URL parameters, scheduling and payment fields, and quiz settings. Use the question ids to read answers or to create submissions. Fillout: GET /forms/{formId}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        }
      }
    }
    arguments 14 lines
  • fillout_list_submissions unknown never probed

    List one page of a form's submissions (answers to every question, calculations, URL parameters, scheduling, payments, quiz score, login email), filtered by date range, status or free-text search. Offset pagination: the response carries totalResponses and pageCount. Fillout: GET /forms/{formId}/submissions.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId"
      ],
      "properties": {
        "sort": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort by submission time: 'asc' (default) or 'desc' for newest first."
        },
        "limit": {
          "type": "integer",
          "maximum": 150,
          "minimum": 1,
          "description": "Submissions per page, 1-150 (Fillout default 50)."
        },
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        },
        "offset": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Starting position (0-based) for this page."
        },
        "search": {
          "type": "string",
          "description": "Only submissions containing this text."
        },
        "status": {
          "enum": [
            "finished",
            "in_progress"
          ],
          "type": "string",
          "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions."
        },
        "afterDate": {
          "type": "string",
          "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z."
        },
        "beforeDate": {
          "type": "string",
          "description": "Only submissions submitted before this ISO 8601 date-time."
        },
        "includePreview": {
          "type": "boolean",
          "description": "Also include preview (test) responses."
        },
        "includeEditLink": {
          "type": "boolean",
          "description": "Include an editLink for each submission."
        }
      }
    }
    arguments 62 lines
  • fillout_get_submission unknown never probed

    Fetch a single submission by id, with every answer. Fillout: GET /forms/{formId}/submissions/{submissionId}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId",
        "submissionId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        },
        "submissionId": {
          "type": "string",
          "minLength": 1,
          "description": "The submission's id (submissionId)."
        },
        "includeEditLink": {
          "type": "boolean",
          "description": "Include an editLink for the submission."
        }
      }
    }
    arguments 24 lines
  • fillout_count_submissions unknown never probed

    Count a form's submissions matching the same filters as fillout_list_submissions (date range, status, search) without pulling the answers — e.g. 'how many responses this week?' or 'how many partial submissions?'. Reads totalResponses from GET /forms/{formId}/submissions with limit=1.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        },
        "search": {
          "type": "string",
          "description": "Only submissions containing this text."
        },
        "status": {
          "enum": [
            "finished",
            "in_progress"
          ],
          "type": "string",
          "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions."
        },
        "afterDate": {
          "type": "string",
          "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z."
        },
        "beforeDate": {
          "type": "string",
          "description": "Only submissions submitted before this ISO 8601 date-time."
        },
        "includePreview": {
          "type": "boolean",
          "description": "Also include preview (test) responses."
        }
      }
    }
    arguments 38 lines
  • fillout_export_submissions unknown never probed

    Fetch many submissions in one call by walking the offset pagination (150 per page, paced under Fillout's 5 requests/second limit), up to max_submissions. Same filters as fillout_list_submissions. Use this for analysis across a whole response set; the result says whether it was truncated. Fillout: GET /forms/{formId}/submissions (repeated).

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId"
      ],
      "properties": {
        "sort": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "'asc' (default, oldest first) or 'desc'."
        },
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        },
        "search": {
          "type": "string",
          "description": "Only submissions containing this text."
        },
        "status": {
          "enum": [
            "finished",
            "in_progress"
          ],
          "type": "string",
          "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions."
        },
        "afterDate": {
          "type": "string",
          "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z."
        },
        "beforeDate": {
          "type": "string",
          "description": "Only submissions submitted before this ISO 8601 date-time."
        },
        "includePreview": {
          "type": "boolean",
          "description": "Also include preview (test) responses."
        },
        "max_submissions": {
          "type": "integer",
          "maximum": 3000,
          "minimum": 1,
          "description": "Stop after this many submissions (default 500, max 3000)."
        }
      }
    }
    arguments 52 lines
  • fillout_create_submissions unknown never probed

    Create up to 10 new submissions on a form, as if respondents had filled it in — e.g. to import responses collected elsewhere. Each submission needs its question answers (question ids from fillout_get_form); URL parameters, scheduling, payments, login email and timestamps are optional. Creates real records that trigger the form's integrations. Fillout: POST /forms/{formId}/submissions.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId",
        "submissions"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        },
        "submissions": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "questions"
            ],
            "properties": {
              "login": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "Verified respondent email."
                  }
                },
                "description": "Login-page information."
              },
              "payments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "value"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Payment field id."
                    },
                    "value": {
                      "type": "object",
                      "required": [
                        "paymentId"
                      ],
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "currency": {
                          "type": "string"
                        },
                        "paymentId": {
                          "type": "string",
                          "description": "Stripe payment id."
                        },
                        "totalAmount": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "description": "Amount in cents."
                        },
                        "stripeCustomerId": {
                          "type": "string"
                        },
                        "stripePaymentUrl": {
                          "type": "string"
                        },
                        "stripeCustomerUrl": {
                          "type": "string"
                        },
                        "stripeSubscriptionId": {
                          "type": "string"
                        }
                      },
                      "description": "A record of an existing Stripe payment — this does NOT charge anyone."
                    }
                  }
                },
                "description": "Payment answers (records only; no money moves)."
              },
              "questions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "value"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The question id (from fillout_get_form)."
                    },
                    "value": {
                      "description": "The answer, shaped for the question type (string, number, array of choices, object...)."
                    }
                  }
                },
                "description": "Answers, one per question id."
              },
              "scheduling": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "value"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Scheduling field id."
                    },
                    "value": {
                      "type": "object",
                      "required": [
                        "fullName",
                        "email",
                        "eventStartTime",
                        "eventEndTime",
                        "timezone"
                      ],
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991
                        },
                        "eventId": {
                          "type": "string"
                        },
                        "eventUrl": {
                          "type": "string"
                        },
                        "fullName": {
                          "type": "string"
                        },
                        "timezone": {
                          "type": "string",
                          "description": "IANA timezone, e.g. Europe/Prague."
                        },
                        "eventEndTime": {
                          "type": "string",
                          "description": "ISO 8601."
                        },
                        "meetingNotes": {
                          "type": "string"
                        },
                        "eventStartTime": {
                          "type": "string",
                          "description": "ISO 8601."
                        },
                        "scheduledUserEmail": {
                          "type": "string"
                        },
                        "rescheduleOrCancelUrl": {
                          "type": "string"
                        }
                      },
                      "description": "Booking details."
                    }
                  }
                },
                "description": "Scheduling (booking) answers."
              },
              "lastUpdatedAt": {
                "type": "string",
                "description": "When it was last updated, ISO 8601."
              },
              "urlParameters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "value"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "URL parameter id (from fillout_get_form)."
                    },
                    "name": {
                      "type": "string",
                      "description": "URL parameter name."
                    },
                    "value": {
                      "type": "string",
                      "description": "URL parameter value."
                    }
                  }
                },
                "description": "URL parameter values."
              },
              "submissionTime": {
                "type": "string",
                "description": "When it was submitted, ISO 8601 (default now)."
              }
            }
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "1-10 submissions to create."
        }
      }
    }
    arguments 221 lines
  • fillout_create_webhook unknown never probed

    Subscribe a URL to a form's new submissions: Fillout will POST each submission (same shape as a fillout_list_submissions entry) to it. Returns the webhook id — keep it, it is the only handle for removing the webhook later. Fillout: POST /webhook/create.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "formId",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The HTTPS endpoint that should receive submissions."
        },
        "formId": {
          "type": "string",
          "minLength": 1,
          "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
        }
      }
    }
    arguments 20 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/d4dcd71f20ad9421/badge.svg)](https://brick.blue/agent/d4dcd71f20ad9421)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on usefulapi.io 45 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

37 more sit on this domain. All of them.