get_submissions
Retrieve submissions for a Tally form by specifying form ID, limit, offset, and date filters. Streamline submission management with direct access to form data.
Instructions
Retrieve submissions for a specific form
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | ID of the form | |
| limit | No | Maximum number of submissions to return | |
| offset | No | Number of submissions to skip | |
| since | No | ISO date string to filter submissions since |
Implementation Reference
- src/server.ts:1446-1458 (registration)Registration of the MCP tool 'get_submissions' in the tools list response (_handleToolsList method), including input schema definitionname: 'get_submissions', description: 'Retrieve submissions for a specific Tally form', inputSchema: { type: 'object', properties: { formId: { type: 'string', description: 'ID of the form to get submissions for' }, limit: { type: 'number', description: 'Maximum number of submissions to return', minimum: 1, maximum: 100 }, offset: { type: 'number', description: 'Number of submissions to skip for pagination', minimum: 0 }, since: { type: 'string', description: 'Only return submissions created after this ISO 8601 timestamp' } }, required: ['formId'] } },
- Core implementation for fetching form submissions via Tally API in the API client servicepublic async getSubmissions( formId: string, options: { page?: number; limit?: number; status?: 'all' | 'completed' | 'partial'; } = {} ): Promise<TallySubmissionsResponse> { if (this.isMockEnabled()) { const mockRes = await tallyApiMock.getSubmissions(formId, options); return mockRes.data; } const params = new URLSearchParams(); if (options.page) params.append('page', options.page.toString()); if (options.limit) params.append('limit', options.limit.toString()); if (options.status) params.append('status', options.status); const query = params.toString(); const url = `/forms/${formId}/submissions${query ? `?${query}` : ''}`; const response = await this.get(url); return validateTallyResponse(TallySubmissionsResponseSchema, response.data); }
- Service layer method getFormSubmissions used by submission tools to retrieve submissionspublic async getFormSubmissions( formId: string, options: SubmissionFilters & { page?: number; limit?: number } = {} ): Promise<TallySubmissionsResponse> { const endpoint = `/forms/${formId}/submissions`; const params: Record<string, any> = { page: options.page, limit: options.limit, filter: options.status, startDate: options.startDate, endDate: options.endDate, afterId: options.afterId, }; return this.apiClient.requestWithValidation( 'GET', endpoint, TallySubmissionsResponseSchema, undefined, params, ); }
- src/tools/submission-tool.ts:45-48 (helper)SubmissionAnalysisTool.list method which retrieves and returns submissions for a form (likely intended for get_submissions tool)public async list(formId: string, filters: SubmissionFilters = {}): Promise<TallySubmission[]> { const response = await this.submissionService.getFormSubmissions(formId, filters); return response.submissions; }
- Schema definition for 'get_submissions' tool used in project validation script (matches server.ts registration)name: 'get_submissions', description: 'Retrieve submissions for a specific Tally form', inputSchema: { type: 'object', properties: { formId: { type: 'string', description: 'ID of the form to get submissions for' }, limit: { type: 'number', description: 'Maximum number of submissions to return', minimum: 1, maximum: 100 }, offset: { type: 'number', description: 'Number of submissions to skip for pagination', minimum: 0 }, since: { type: 'string', description: 'Only return submissions created after this ISO 8601 timestamp' } }, required: ['formId'] } },