Cart Buy Licenses Contact Support Login/Register
v 1.8.6

JavaScript Surveys and Forms Library

The most Advanced and Free
developer tool
for the modern web.

Different Web Development
Platforms, Simple Integration

The SurveyJS Library has versions for several popular JavaScript Frameworks. Examples are available for: Angular2+, jQuery , Knockout , React , and Vue.js



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

Easy to start

We facilitated integrating the survey into your web application. Go to our survey creator page, create a survey, then go to Survey Creator's “Embed Survey” tab and get the code you need to insert into your page. Refer to our Add Survey into your Web Page document for more information.

Right library for many projects and scenarios

We have been developing and supporting our library for several years. We helped hundreds of companies across many industries. We carefully reviewed every survey and form from our customerscustomers to add the necessary functionality that covers all the popular scenarios.
We are confident, that you can build almost everything, that popular cloud services offer, using SurveyJS library. You can extend our SurveyJS Library and change its behavior.

See SurveyJS in action

Built-in question types

Built-in question types

The SurveyJS Library includes all types of questions you’d expect from survey software – from simple text entry and checkboxes to a dynamic matrix with different input types. We implemented a special Panel container so you can easily handle groups of questions as one. The complete list of supported question types is available here.

Integrate your favorite
JavaScript widgets

Integrate your favorite JavaScript widgets

It’s things like these that make it worth using a programming library over an end-user services that are limited to built-in questions. Our library can be extended with your favorite JavaScript widgets. The live example shown here features a range track bar, but it’s easy to imagine other custom widgets – a tree view, a chart, and so on.

Survey Logic

Survey Logic

You can change elements visibility, make elements enable/disable and require/unrequire by writting expressions. The expression can be as simple as: "{single} = ‘yes’" or complex with many boolean conditions, arithmetic operations, built-in, or your own, JavaScript functions registered in our Library.

You can validate question answer using regular expression or our expression engine.

Perform operations, change question values, complete the survey, skip to a question, run expression, or change the text for ‘Thank you page’, when a Boolean expression is succeeded.

Our survey library allows you to run JavaScript functions asynchronously. This means you can call a web service, get the result on client, and check it in our expression engine

SurveyJS is a JavaScript library. Its events can be used to change to write the custom JavaScript code, and change the library's behavior.

Responsive Web Design
Design and Bootstrap support

Responsive Web Design

The SurveyJS Library is rendered differently on desktop and on mobile devices, and we created a UI that adapts to different types of devices.

Design and Bootstrap support

SurveyJS allows you to customize every element with CSS, re-use the built-in themes, or apply your site's Bootstrap theme.

Markdown for Text Formatting

Markdown for Text Formatting

Questions and possible answers – you can use markdown to format all the text in your survey. SurveyJS allows you to integrate markdown libraries – and there’s a number of very reliable and popular libraries, including open source solutions with an MIT license. In this example, we used only a few lines of code to add text formatting support via a third-party library.

Survey Model in JSON
Survey Results in JSON

Survey Model in JSON

The survey model – the question types, the order, the skipping logic, the answer variants – everything is stored in JSON format. Even if you use WYSIWYG Survey Creator to create the survey, you can use the resulting JSON in the SurveyJS Library. This happens automatically when you use the SurveyJS Service to store and load models.
To create a survey, you can deserialize JSON, create SurveyJS object’s instances in JavaScript, or use JSON and then modify SurveyJS objects in JavaScript.

Survey Results in JSON

It would only be logical to assume that SurveyJS generates results as JSON as well. You can specify when data is obtained: when the survey is completed, when a user navigates to the next page, or picks a value from a list. You can even pre-load a JSON with possible answers.

Dynamic questions

Dynamic questions

In many cases, the survey question models have to be dynamic when the data comes from different services. SurveyJS allows you to load the data from restful API without writing any code. The survey model can also be changed in code and gives you unlimited possibilities.

Localization and
Multi-languages support

Localization and Multi-languages support

We understand the importance of product localization. Like many other libraries, we provide translations of SurveyJS strings. What about multi-language support in one survey? What happens if you have to run the same survey, for example, in English and Spanish? With SurveyJS's built-in multi-language support, you do not need to create two different surveys.

Create complex Forms

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 many pages and master-detail relationships between objects in those forms. Here is an example.

Create a Quiz

Create a Quiz

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

Find out even more

SurveyJS library has functionality, like display mode (for reviewing the results), answers validation, text pre-processing, custom navigation, and more. If you need additional functionality from the SurveyJS library, create an issue in our support center
and we'll do our best to assist you.