Star us on GitHub
SurveyJS also offers a visual survey builder and a service for data storage and analysis
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
Visit our Service Examples page to get examples for different server platforms (PHP, ASP.Net Core MVC, NodeJS).
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.
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 an editor 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 SurveyJS Builder 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.
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.
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.
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.
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.