Advanced Online Surveys, Forms and Quizzes. 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 look and feel, and can even use your custom widgets inside questions.
Those are the capabilities make SurveyJS Library a superior survey solution.

Many Web Development Platforms, Simple Integration

SurveyJS Library integrates with several popular JavaScript Frameworks, and we made sure to document the integration well.
Please see examples for: Angular2+, jQuery, Knockout, React, and Vue.js

Visit our Service Examples page to get examples for different server platforms (PHP, ASP.Net Core MVC, NodeJS).

Transparent solution

Unlike the most others solutions, SurveyJS consists of three fully independent parts: run-time SurveyJS library, Survey Creator 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 Survey Creator or integrate it into your own web site.



SurveyJS Library is open source and free, but don’t let the looks deceive you - it’s not somebody’s side project. We’ve assembled a team of professionals, most of us working on developer libraries since the 90s, and this is our full-time, 8am-to-late-at-night project. You don’t have to take our word for it – look at our GitHub commits, inspect the source code, unit tests, functional tests and examples. You’ll see an agile team, hard at work, producing quality code and docs.

See SurveyJS in action

Built-in question types

SurveyJS Library includes all types of questions you’d expect from survey software – from simple text entry and check boxes to dynamic matrixes with different input types, like shown in this live example. We even implemented a special Panel container so you can easily handle groups of questions as one. For the complete list of supported question types with live samples, refer to our documentation.

Integrate your favorite JavaScript widgets

It’s things like this that make it worth using a programming library over an end-user service. We saw lots of survey products and they all limit you to the built-in question types. Our library, on the other hand, is easily extensible with your favorite JavaScript widgets. Live example shown here features a range track bar, but it’s easy to imagine dozens and dozens other custom widgets in questions – an image gallery, a tree view, a chart, and so on.

Design and Bootstrap support

If you’re using an end-user service, and we’ve seen many, you’re likely to be very limited in design options. You can select a pre-defined color scheme and insert your logo – but rarely anything else. And it’s totally expected from a user-oriented product, which targets people that don’t want anything to do with “raw” CSS. So to give users any real customization freedom, the service would have to implement a survey creator of enormous complexity.

SurveyJS, as a developer library, is free from those limitations. You can customize each and every element with CSS and if your site uses Bootstrap, you can simply tell SurveyJS to render itself using your Bootstrap theme. You may re-use any of several themes that comes with the library.

Markdown for Text Formatting

The questions, the answer options – all the text in your survey can be easily formatted using markdown. SurveyJS supports integration with markdown libraries – and there’s a number of very reliable and popular ones, including open source solutions with the MIT license. It’s just another example of SurveyJS flexibility. Look at the sample – just a few lines of code for complete text formatting support via a third-party library.

Survey Model in JSON

SurveyJS is fully transparent in any aspect, including this one. The survey model – the question types, the order, the skipping logic, the answer variants – everything is stored in human-readable JSON. Even if you use WYSIWYG Survey Creator to create the survey, the results is JSON that you can feed to SurveyJS Library. This step will of course happen automatically if you choose to store and load the model using our SurveyJS Service.
To update your survey, you can edit JSON directly, or load it up into the Survey Creator, or even modify it in code - the entire structure is just JavaScript objects.

Survey Results in JSON

It would only be logical to assume that SurveyJS generates results as JSON as well. Pick any moment to obtain your data: on survey completion, or when a user navigates to the next page, or picks a value out of a list. You can even pre-load a JSON with suggested answers. And you can manipulate results on a lower level, by freely obtaining or setting data in individual questions at any time.

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.

Create complex Forms

Using Dynamic Panel Question, Expression Question, supporting built-in and custom functions, you may create complex forms.
Our users created forms with dozens of pages and master detail relations between objects in those forms. The coolest part, you may setup SurveyJS Library in a way, your back-end users do not require to write a line of code to create/edit large surveys.

Create Quiz

You may create a survey with the start page, use built-in time management functionality, and of course, compare given answers with the corrected. In other words, you have everything to create a Quiz.

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 our support center and we do our best to assist you.