Plan Enforcement

Plan limits by tier, feature flag mappings, integration status, and corrected default values for quota enforcement

Corrected plan limit values aligned with the feature-plan-integration specification.

Plan Limits by Tier

FeatureFreeStarterProEnterprise
Surveys530100,000Unlimited
Responses/Month1,000100,00010,000,000Unlimited
Storage (MB)5,120 (5 GB)102,400 (100 GB)524,288 (512 GB)Unlimited
Max Webhooks110100Unlimited
Team Members505001,000Unlimited
Max Tenants15100Unlimited
Exports/Month201001,000Unlimited
API Calls/Min1005001,000Unlimited
Max File Size (MB)5121,0242,048Unlimited
Max Questions/Survey501,000UnlimitedUnlimited

Service Integration Summary

ServiceEndpointLimit KeyStatus
survey-servicePOST /surveys/surveysIntegrated
survey-servicePOST /surveys/import-xlsformsurveysIntegrated
data-servicePOST /responses/responses_per_monthIntegrated
media-servicePOST /media/uploadstorage_mbIntegrated
sync-servicePOST /sync/pushresponses_per_monthIntegrated
webhook-servicePOST /webhooks/subscriptionswebhooksIntegrated
workspace-servicePOST /workspaces/tenantsIntegrated
workspace-servicePOST /workspaces/{id}/membersteam_membersIntegrated

Feature Flag Key Mapping

ServiceFeature Flag KeyQuota KeyUnit Conversion
survey-servicesurvey.max_surveyssurveys1:1
data-servicedata.responses_per_monthresponses_per_month1:1
media-servicestorage.max_gbstorage_mbMB (multiply GB x 1024)
webhook-servicenotification.webhookswebhooks1:1
workspace-servicecore.max_usersteam_members1:1
workspace-servicecore.max_tenantstenants1:1
media-servicestorage.max_file_sizemax_file_size_mb1:1
survey-servicesurvey.max_questionsquestions_per_survey1:1

Feature Flags per Plan Tier

FeatureFreeStarterProEnterprise
xlsform_importYesYesYesYes
odk_syncNoYesYesYes
dashboardsYesYesYesYes
sms_notificationsNoNoYesYes
slack_notificationsYesYesYesYes
api_accessNoNoYesYes

Files Requiring Updates

FileLocation
quota-service/config.pyquota-service/src/quota_service/
plans.pyfeature-flags-service/api/interfaces/api_controllers/