Surveys for the Modern Web, Free Under the MIT License

Welcome to SurveyJS Library ā€“ a developer tool for the modern web.

We believe in surveys as embedded solutions ā€“ those that keep your visitor engaged right on your webpage,
share the same Bootstrap themes, and can even use your custom widgets inside questions.
Those are the capabilities make SurveyJS Library a superior survey solution.

Scroll down to review interactive examples, seamlessly integrated into the webpage.

Many Web Development Platforms, Simple Integration

SurveyJS Library integrates with several popular JavaScript Frameworks: AngularJS, jQuery, Knockout, React, and Vue.js
and we made sure to document the integration well.

The Getting Started section and the rest of Examples all feature tabs letting you switch to your preferred framework.
You can open samples in Plunker to try out live survey questions and see how code changes affect behavior. We even
published GitHub repos with boilerplate projects that will jumpstart your Angular, React and Vue.js development.

Transparent solution

Unlike the most others solutions, Project SurveyJS consists of three fully independent parts: run-time SurveyJS library, SurveyJS editor and SurveyJS service for storing and analyzing results. You may stick with the complete solution or use only a library. You may use SurveyJS service to store your results there or store them in your own storage. You may freely use SurveyJS Editor or integrate the Editor into your own web site.


Open Source library

SurveyJS library is a free and open source solution under MIT license. However, professional full-time software developers support it. We have developed software libraries and frameworks since late 90th.We know what to do and how to do it. You can judge it for yourself by looking at our source code, unit tests, functional tests and examples.

See Survey.JS in action

A dozen question types

SurveyJS library has a dozen built-in question types, like a simple text or a complex matrix with different input types, and a panel (container). We have all question types you will likely need.

Integrate your favorite JavaScript widgets

Regardless of how many question types a survey library have, there will be always something missing. All survey solutions we have seen, allows using only built-in questions and functionality. SurveyJS gives you an easy way to integrate any JavaScript widget. There are hundreds and thousands different JavaScript widgets on the web. Absolutely the most of them, you may integrate into SurveyJS using our Custom Widget support feature. It brings a truly unlimited functionality into the library.

Design and Bootstrap support

All professional and commercial survey solutions come with beautiful design. Sometimes you may choose different look and feel. The most commercial survey solutions go further and allow, for example, you even to include your own logo into your own survey. What is a big deal! Will their design match your web site design? You may be lucky if it does. Unfortunately, there is no way they will be able to create a design for all their customers. SurveyJS allows you to customize every element in the way you need. Additionally it supports Bootstrap and Bootstrap-Material. If your website uses bootstrap, just tell SurveyJS to render itself by using your bootstrap styles.

Markdown support

Here is another good example when an open and transparent solution beats old and closed systems. SurveyJS supports markdown. However, we do not create just another markdown library; we give you the ability to use any markdown you want. Of course, we could spend another several months of work and after that couple of years to fix all issues. We are sure, at the end, we would have a good our own markdown library, but why should we do something that other people have already done. There are several good markdown libraries, including under a MIT license that you may integrate into SurveyJS with 5-10 lines of code, just check out the code.

Represent Survey Model as JSON

Do you know where a typical survey solution stores your survey model? Unfortunately, it is rhetorical question. You are likely just do not know. SurveyJS is fully transparent in any aspect, including this one. SurveyJS library uses JSON to load survey model. You may use WYSIWYG SurveyJS Editor to create the survey, and then copy the created JSON into your web page directly to feed it to the SurveyJS library. Of course, you may store and then load SurveyJS JSON model in SurveyJS service or in your own storage. Survey JSON is readable and you may easily modify it by yourself or simple copy it into SurveyJS Editor and do the needed changes at any time. Finally, nothing to stop you from creating or modifying a SurveyJS Model in the code in run-time. At the end, it is just JavaScript objects.

Survey Results as JSON

As you may imagine, the SurveyJS result is a JSON as well. You may get the JSON result at any time, for example: on survey complete, on page change or value change. You may set to the SurveyJS a previously entered result or predefined data. Of course, you may get or set the value of an individual question at any moment as well.

Survey Flow

The most complex surveys need to change the survey flow. You have to change the questions, panels and pages visibility or skip some pages. SurveyJS provides you with an easy way to achieve this.

Dynamic questions

In many cases, the survey question models have to be dynamic. The data should come from different services and could not be static. SurveyJS gives you the ability to load the data from restful API without writing a single line of code. Of course, you are free to change the survey model in the code, it gives you again an unlimited possibilities.

Localization and Multi-languages support

We are not native English speakers ourselves and of course, we fully understand the importance of product localization. Like many other libraries, we are offering the translation of SurveyJS strings to many languages. It is created and supported by the community. However, what about multi languages support in one survey? What happens if you have to run the same survey, for example, for your English and Spanish speaking clients. Should you create two different surveys? SurveyJS has a built-in support for multi-languages. Something, you will unlikely find in the most survey solutions.

Find out even more

We may continue to talk about SurveyJS library functionality, like display mode (for reviewing the results), answers validation, text pre-processing, custom navigation and more. You may look at our examples and explore them by yourself. If, for some reason, you find that SurveyJS library misses a required functionality, then create an issue in the SurveyJS GitHub repo and we do our best to assist you.