FlexiSurveyUser guide

Technical Limits

The platform limits FlexiSurvey actually enforces, including instrument size, uploads, API rates, pagination, exports, and datasets.

For: IT staff, integration engineers, procurement reviewersPlan: All plans

This page lists the limits the FlexiSurvey platform enforces today. Every number here is taken from the running code, not from a marketing target: if a request exceeds one of these values the API rejects it with a clear error, and the same values apply on every plan unless a plan quota is stricter.

Three kinds of numbers matter and this page keeps them separate:

Survey authoring

Limit Value
Questions per survey 1,000
Inline answer options per question 500
Question groups (sections and repeats) per survey 50
Instances per repeat group 200
Questions per XLSForm import 500 per file

The question and option ceilings apply on every creation path: the builder, document import, standard blocks, and XLSForm import. A survey that needs more than 1,000 questions almost always works better split into linked instruments within one project. For choice lists larger than 500 options (facility registers, commodity lists, administrative areas), attach an external dataset instead of inline options; datasets are searchable at capture time and versioned at publish.

Uploads and request sizes

Limit Value
API request body (JSON) 1 MB
Geographic file import (GPX, KML, KMZ, GeoJSON, CSV) 8 MB
Document import (survey from .docx) 8 MB
Respondent media upload (photo, signature) 10 MB per file
Dataset import file (CSV, XLSX) 10 MB
Dataset size 50,000 rows, 40 columns

File uploads travel base64-encoded inside JSON bodies, so the route limits above already account for encoding overhead.

API

Limit Value
List pagination default 20, maximum 100 per page
Incremental (delta) response reads up to 500 per page, keyset-cursored
Dashboard and default clients 100 requests per minute
API key, read-only role 1,000 requests per hour
API key, full-access role 2,000 requests per hour
API key, ingest role 5,000 requests per hour
Webhook payload 5 MB

API key limits apply per key and an administrator can adjust them per key. Rate-limited responses return 429 with standard rate-limit headers so clients can back off cleanly. Webhook deliveries are signed and retried; payloads above the cap are rejected at dispatch rather than truncated. The full API contract, including authentication and incremental pulls, is in the Developer Guide.

Exports

Limit Value
Responses per export (CSV, Excel, SPSS, PDF) 10,000

An export that hits the cap says so explicitly in the response headers and the file itself; nothing is silently dropped. For datasets larger than 10,000 responses, use the incremental API reads above: they page through any volume and support resuming from a cursor.

Plan quotas

Commercial allowances (responses per month, seats, storage, surveys on the Community plan, donor reports per month) are set by your subscription plan, enforced separately from the platform limits on this page, and listed on the pricing page.

Tested performance envelope

We distinguish enforced ceilings from tested performance, and we do not publish load-test figures we have not run. A formal load-test programme (large instruments, media-heavy submission bursts, and sustained collection) is on the engineering calendar; its results will be published here as the tested envelope, alongside the enforced limits above. Until then, treat this page as what the platform guarantees to reject, not as the maximum it can sustain.

Change policy

Limits can increase at any time. A reduction, if one is ever needed, is announced in advance through the release notes and support channels, and never applies retroactively to data already stored.