{
  "info": {
    "name": "Tally — mcp.ai",
    "description": "REST API for the Tally MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/tally",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "tally_create_form",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/form",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "form"
          ]
        },
        "description": "Tool to create a new form. Use after preparing block definitions and optional settings.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"title\": \"\",\n  \"blocks\": \"\",\n  \"status\": \"\",\n  \"settings\": {},\n  \"templateId\": \"\",\n  \"workspaceId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_create_webhook",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/webhook",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "webhook"
          ]
        },
        "description": "Tool to create a new webhook for a form. Use after confirming you have the form ID and the callback URL.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"url\": \"\",\n  \"formId\": \"\",\n  \"eventTypes\": \"\",\n  \"httpHeaders\": \"\",\n  \"signingSecret\": \"\",\n  \"externalSubscriber\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_delete_form",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/form",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "form"
          ]
        },
        "description": "Tool to delete a specific form identified by its ID. Use after confirming the form should be permanently removed.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"formId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_delete_webhook",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/webhook",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "webhook"
          ]
        },
        "description": "Tool to delete a specific webhook. Use after confirming the webhook ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"webhookId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_get_form_details",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/form/details",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "form",
            "details"
          ]
        },
        "description": "Tool to retrieve details of a specific form. Use when you need comprehensive form metadata by ID. Use after confirming the form ID to fetch its full configuration, blocks, and stats.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"formId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_get_form_responses",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/form/responses",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "form",
            "responses"
          ]
        },
        "description": "Tool to retrieve the responses of a specific form. Use after confirming the form ID and when paginated data is needed.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0,\n  \"limit\": 0,\n  \"formId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_get_user_info",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/user/info",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "user",
            "info"
          ]
        },
        "description": "Tool to retrieve information about the authenticated user. Use when you need to confirm account-level details before proceeding. Returns account/workspace context only — not form-level access; follow ",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_get_webhook_events",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/webhook/events",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "webhook",
            "events"
          ]
        },
        "description": "Tool to list events associated with a specific webhook. Use when you need to inspect delivery history after creating or listing a webhook.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0,\n  \"webhookId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_get_workspace",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/workspace",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "workspace"
          ]
        },
        "description": "Tool to retrieve a single workspace by its ID with associated members. Use when you need to get detailed information about a specific workspace.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"workspaceId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_form_questions",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/form/questions",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "form",
            "questions"
          ]
        },
        "description": "Tool to retrieve all questions from a specific form. Use when you need to list all questions and their structure after obtaining the form ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"formId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_forms",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/forms",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "forms"
          ]
        },
        "description": "Tool to retrieve a paginated list of forms. Use when you need to list all forms accessible to the authenticated user.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_organization_invites",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/organization/invites",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "organization",
            "invites"
          ]
        },
        "description": "Tool to retrieve all pending invites in your organization. Use when you need to view or manage organization invitation status.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"organizationId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_organization_users",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/organization/users",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "organization",
            "users"
          ]
        },
        "description": "Tool to retrieve all users in an organization. Use when you need to list organization members or check user permissions.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"organizationId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_webhooks",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/webhooks",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "webhooks"
          ]
        },
        "description": "Tool to retrieve a paginated list of configured webhooks. Use when you need a full listing of webhooks across your accessible forms and workspaces.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0,\n  \"limit\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_list_workspaces",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/workspaces",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "workspaces"
          ]
        },
        "description": "Tool to retrieve a paginated list of workspaces. Use when you need to browse workspaces accessible to the authenticated user.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_update_form",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/form",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "form"
          ]
        },
        "description": "Tool to update form details. Use after confirming the form exists and obtaining its ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"blocks\": \"\",\n  \"formId\": \"\",\n  \"status\": \"\",\n  \"settings\": {}\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_update_webhook",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/webhook",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "webhook"
          ]
        },
        "description": "Tool to update an existing webhook configuration. Use when you need to modify webhook settings such as URL, event types, or enable/disable status.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"url\": \"\",\n  \"formId\": \"\",\n  \"isEnabled\": false,\n  \"webhookId\": \"\",\n  \"eventTypes\": \"\",\n  \"httpHeaders\": \"\",\n  \"signingSecret\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "tally_update_workspace",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/workspace",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "workspace"
          ]
        },
        "description": "Tool to update the details of a specific workspace identified by its ID. Use when you need to rename a workspace after confirming the workspace ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"workspaceId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}