# Plan Enforcement {#plan-enforcement}


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


## Plan Limits by Tier {#plan-limits-by-tier}


| Feature | Free | Starter | Pro | Enterprise |
|---------|------|---------|-----|------------|
| Surveys | 5 | 30 | 100,000 | Unlimited |
| Responses/Month | 1,000 | 100,000 | 10,000,000 | Unlimited |
| Storage (MB) | 5,120 (5 GB) | 102,400 (100 GB) | 524,288 (512 GB) | Unlimited |
| Max Webhooks | 1 | 10 | 100 | Unlimited |
| Team Members | 50 | 500 | 1,000 | Unlimited |
| Max Tenants | 1 | 5 | 100 | Unlimited |
| Exports/Month | 20 | 100 | 1,000 | Unlimited |
| API Calls/Min | 100 | 500 | 1,000 | Unlimited |
| Max File Size (MB) | 512 | 1,024 | 2,048 | Unlimited |
| Max Questions/Survey | 50 | 1,000 | Unlimited | Unlimited |


## Service Integration Summary {#service-integration-summary}


| Service | Endpoint | Limit Key | Status |
|---------|----------|-----------|--------|
| survey-service | POST /surveys/ | surveys | Integrated |
| survey-service | POST /surveys/import-xlsform | surveys | Integrated |
| data-service | POST /responses/ | responses_per_month | Integrated |
| media-service | POST /media/upload | storage_mb | Integrated |
| sync-service | POST /sync/push | responses_per_month | Integrated |
| webhook-service | POST /webhooks/subscriptions | webhooks | Integrated |
| workspace-service | POST /workspaces/ | tenants | Integrated |
| workspace-service | POST /workspaces/{id}/members | team_members | Integrated |


## Feature Flag Key Mapping {#feature-flag-key-mapping}


| Service | Feature Flag Key | Quota Key | Unit Conversion |
|---------|-----------------|-----------|-----------------|
| survey-service | survey.max_surveys | surveys | 1:1 |
| data-service | data.responses_per_month | responses_per_month | 1:1 |
| media-service | storage.max_gb | storage_mb | MB (multiply GB x 1024) |
| webhook-service | notification.webhooks | webhooks | 1:1 |
| workspace-service | core.max_users | team_members | 1:1 |
| workspace-service | core.max_tenants | tenants | 1:1 |
| media-service | storage.max_file_size | max_file_size_mb | 1:1 |
| survey-service | survey.max_questions | questions_per_survey | 1:1 |


## Feature Flags per Plan Tier {#feature-flags-per-plan-tier}


| Feature | Free | Starter | Pro | Enterprise |
|---------|:----:|:-------:|:---:|:----------:|
| xlsform_import | Yes | Yes | Yes | Yes |
| odk_sync | No | Yes | Yes | Yes |
| dashboards | Yes | Yes | Yes | Yes |
| sms_notifications | No | No | Yes | Yes |
| slack_notifications | Yes | Yes | Yes | Yes |
| api_access | No | No | Yes | Yes |


## Files Requiring Updates {#files-requiring-updates}


| File | Location |
|------|---------|
| quota-service/config.py | `quota-service/src/quota_service/` |
| plans.py | `feature-flags-service/api/interfaces/api_controllers/` |
