apijotform.precisionglassandshower1.com Open in urlscan Pro
104.130.255.68  Public Scan

Submitted URL: https://apijotform.precisionglassandshower1.com/
Effective URL: https://apijotform.precisionglassandshower1.com/docs/
Submission: On September 25 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Developers
Sign Up
 * API
 * Libraries
 * Tools
 * Integrations
 * Widgets
 * Forum

 * Login
 * Sign Up for Free

API Documentation
API Documentation
 * cURL PHP Javascript Java Python NodeJS GO C# Ruby Scala
 * Overview
 * Getting Started
 * Authentication
 * Libraries
 * Use Cases
 * FAQ
 * * /user
     * GET /user
     * GET /user/usage
     * GET /user/submissions
     * GET /user/subusers
     * GET /user/folders
     * GET /user/reports
     * POST /user/login
     * GET /user/logout
     * GET /user/settings
     * POST /user/settings
     * GET /user/history
     * GET /user/forms
     * POST /user/forms
     * PUT /user/forms
   * /form
     * POST /form
     * PUT /form
     * GET /form/{id}
     * DELETE /form/{id}
     * POST /form/{id}/clone
     * GET /form/{id}/questions
     * POST /form/{id}/questions
     * PUT /form/{id}/questions
     * GET /form/{id}/question/{qid}
     * POST /form/{id}/question/{qid}
     * DELETE /form/{id}/question/{qid}
     * GET /form/{id}/properties
     * POST /form/{id}/properties
     * PUT /form/{id}/properties
     * GET /form/{id}/properties/{key}
     * GET /form/{id}/reports
     * POST /form/{id}/reports
     * GET /form/{id}/files
     * GET /form/{id}/webhooks
     * POST /form/{id}/webhooks
     * DELETE /form/{id}/webhooks/{whid}
     * GET /form/{id}/submissions
     * POST /form/{id}/submissions
     * PUT /form/{id}/submissions
   * /submission
     * GET /submission/{id}
     * POST /submission/{id}
     * DELETE /submission/{id}
   * /report
     * GET /report/{id}
     * DELETE /report/{id}
   * /folder
     * GET /folder/{id}
     * POST /folder
     * PUT /folder/{id}
     * DELETE /folder/{id}
   * /system
     * GET /system/plan/{planName}
   


OVERVIEW

The Jotform API makes it possible to connect to your form data without using the
Jotform web site.

The Jotform API is written for Jotform users and 3rd party developers who would
like to serve Jotform users. For example, Zapier uses the Jotform API to connect
form submission data with other services.

Care to tell us how you would like to use Jotform API? Feel free to fill this
form. We'd be happy to help you—we’ll even assign a developer to help you with
your task!


API ENDPOINTS

You can access our API through the following URLs:

 * Standard API Usage: Use the default API URL: https://api.jotform.com
 * For EU: Use the EU API URL: https://eu-api.jotform.com
 * For HIPAA: Use the HIPAA API URL: https://hipaa-api.jotform.com

Upgrade to Enterprise to make your API url your-domain.com/API or
subdomain.jotform.com/API instead of api.jotform.com Learn more about Jotform
Enterprise


GETTING STARTED

To get started using Jotform API you need a valid API key. Obtaining an API key
is very simple.

 * 1. Go to My Account
 * 2. Navigate to API Section
 * 3. Create a new API Key



Get started with the Jotform API by using an API library in the language of your
choice. See libraries section for a complete list.


AUTHENTICATION

The Jotform API supports more than one authentication method to simplify the
authentication process in different programming languages.



1. AUTHENTICATE WITH QUERY PARAMETERS

You can send your API Key with your query as a parameter

GET An example call to get user details



curl -X GET "https://apijotform.precisionglassandshower1.com/user?apiKey={myApiKey}"


POST An example call to setup a new webhook



curl -X POST -d "webhookURL=http://my.webhook.url/connect-to-DB.ext" -d "apiKey={myApiKey}" "https://apijotform.precisionglassandshower1.com/v1/form/{myFormID}/webhooks"



2. AUTHENTICATE WITH HTTP HEADERS

You can send your API Key with your query as a HTTP header

An example call to get user details by HTTP header



curl -H "APIKEY: {myApiKey}" "https://apijotform.precisionglassandshower1.com/user"



3. AUTHENTICATE WITH JAVASCRIPT SDK

You can authenticate users through Jotform by using our Javascript SDK.

1. First, you should call JF.login() to launch a login form within an iFrame
pop-up to prompt a user to sign-in. If the user authenticates successfully,
(s)he will be asked to allow permissions to access to her account. You can pass
callback functions to JF.login for both successful and failed authorizations.


<script src="https://js.jotform.com/JotForm.js"></script>
<script>
//JF.login(success, error) method takes two optional arguments
//Both arguments should be function 
//First argument will be called after successful login
//Second argument will be called if authorization fails
JF.login(
function success(){
JF.getForms(function(response){
for(var i=0; i<response.length; i++){
document.write( "<li> " + response[i].title);
}
});
},
function error(){
window.alert("Could not authorize user");
}
); 
</script> 


2. At this point, we can use the API to perform actions. But, what if we want to
be able to store this authentication so that we can use it in the future? To be
able to do that, you need to get the user's API key and save it in your servers.
In order to obtain API key from SDK, call JF.getAPIKey method.


var apiKey = JF.getAPIKey();
console.log(apiKey); //should log currently used API key




Once you have the API key, you can call JF.initialize({apiKey: "123456789"}) and
then call any other API methods. Note that JF.login method will automatically
call initialize method after successful login.


JF.initialize( {apiKey: "123456789"} ); 


Login with Jotform


LIBRARIES


GITHUB REPOSITORIES

Android : https://github.com/jotform/jotform-api-android - ZIP or Tarball
C# : https://github.com/jotform/jotform-api-csharp - ZIP or Tarball
GO : https://github.com/jotform/jotform-api-go - ZIP or Tarball
iOS : https://github.com/jotform/jotform-api-ios - ZIP or Tarball
Java : https://github.com/jotform/jotform-api-java - ZIP or Tarball
NodeJS : https://github.com/jotform/jotform-api-nodejs - ZIP or Tarball
PHP : https://github.com/jotform/jotform-api-php - ZIP or Tarball
Python : https://github.com/jotform/jotform-api-python - ZIP or Tarball
Ruby : https://github.com/jotform/jotform-api-ruby - ZIP or Tarball
Scala : https://github.com/jotform/jotform-api-scala - ZIP or Tarball


--------------------------------------------------------------------------------


INSTALLATION NOTES


PHP Client Library


Simply download Jotform.php into your application path and include in your php
file as:

include "../Jotform.php";


More info available on repository page at Github.


Python Client Library


There is currently no package submitted to PyPi. You need to download and import
jotform.py as follows.

from jotform import JotformAPIClient


More info available on repository page at Github.


Java Client Library


Java client library is not available as a '.jar' file so you have to copy the
folder structure of Jotform Java package into your project. Jotform API Java
client uses Apache HTTP Client 4.2.5 and org.json packages. So in order to work
with the api client you need to add them to your project.

First check out the git repository and add the following files into your src
folder as:

/src/com/jotform/api/JotformAPIWrapper.java
/src/com/jotform/api/JotformException.java
/src/com/jotform/api/samples/GetTodaysSubmissions.java
/src/com/jotform/api/samples/PrintFormList.java
/src/org/json/JSONArray.java
/src/org/json/JSONException.java
/src/org/json/JSONObject.java
/src/org/json/JSONString.java
/src/org/json/JSONStringer.java
/src/org/json/JSONTokener.java
/src/org/json/JSONWriter.java


Then copy the contents of the /lib/ folder into your project with the same path.

/lib/commons-logging-1.1.1.jar
/lib/httpclient-4.2.5.jar
/lib/httpcore-4.2.4.jar


Then you will need to add these .jars into your buildpath. If you are using
eclipse, you can simply right click on each jar file and click Build Path->Add
To Build Path. If the jars are not visible in your project explorer even though
you copied them into your lib/ folder, try right clicking on your project in
Package Explorer and then clicking refresh.

More information available on repository page at Github.

Javascript Client Library Copy and paste the script below to your page

<script src="https://js.jotform.com/JotForm.js"></script>


NodeJS Client Library

npm install jotform


More information available on repository page at Github.


USE CASES

You can find some use cases in API Use Cases Repository

Calculate Survey Result Percentages : Example written with API PHP library to
calculate the percentages of star rates/radio buttons in the form submissions.
Download your submissions' uploaded files to your computer, implemented with
Ruby. Combine Submissions from different forms into one .csv file. Implemented
with JavaScript and PHP. Contribution Map : See where submissions come from.
Implemented with JavaScript only. Jotform Views : List and display Submissions
blended with your imagination. Made so easy. Implemented with JavaScript and
PHP. Populate Fields : A script that creates urls to prepopulate your forms with
your desired values. Implemented with JavaScript. Answer Comparator : This
script compares the current form entries to those that have already been
submitted by previous users. Implemented with JavaScript and PHP. Import
Submissions : This script imports data from .CSV and Microsoft Excel files and
submits them to Jotform via the PHP API. Implemented with JavaScript and PHP.
Do you have an use case to share with us? Fork our repository, commit your code
and open a pull request!

Do you want us to implement examples for you? Contact Us and let us know your
request!




FAQ


WHAT IS JOTFORM API?

Jotform API allows you to access your Jotform account, forms and form
submissions. Writing applications, integrations and scripts with Jotform API is
very easy since it is based on REST principles. Code samples are also available
on most common languages such as PHP, Java, Python, NodeJS and GO.


WHAT ARE THE MOST COMMON USES FOR JOTFORM API?

Integration with a 3rd party app to process existing form submission data, or to
receive submission notifications with webhooks. Mobile frontend apps for
Jotform. To Process form submission data to with your own scripts.


WHAT IS COVERED IN VERSION 1?

Jotform API v1 is mostly read only. You can get information about the Jotform
user and forms. You can also download existing form data.


ARE THERE ANY RESTRICTIONS?

API Keys are limited to: 1000 requests per day for the starter plan 10000
requests per day for the bronze plan 50000 requests per day for the silver plan
100000 requests per day for the gold plan Jotform Enterprise has no limits to
the number of daily API calls.

You can get more information about the limits from our article Daily API Call
Limits.
If you need your limits to be increased please contact us.


WHERE CAN I GET AN API KEY?

You can get your Jotform API Key from API section at My Account.


DOES JOTFORM API SUPPORTS JSONP?

Yes, Jotform API supports JSONP requests. You can simply add "callback" variable
with your callback function's name to your API requests.

Example usage:
https://api.jotform.com/user?apiKey={APIKey}&callback=myCallBackFunction

If you have any further question, please contact API Team.





GET /USER


GET USER INFORMATION

Get user account details for this Jotform user. Including user account type,
avatar URL, name, email, website URL.


curl -X GET "https://apijotform.precisionglassandshower1.com/user?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$userInfo = $jotformAPI->getUser();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject userInfo = client.getUser();



jotformAPI = JotformAPIClient("YOUR API KEY")
userInfo = jotformAPI.get_user()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getUser()
.then(function(r){
/**
successful response including user information
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
userInfo := client.GetUser()



JF.getUser(function(response){
/**
successful response including user information
.
*/
document.write(response.username);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var userInfo = jotformAPIClient.getUser();



jotform = JotForm.new("APIKey")
userInfo = jotform.getUser()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val userInfo = client.getUser()


Sample Response
 * Minimize
 *  
 *  
 *  
 * username, name, email, website, avatarUrl and company are basic user account
   details.
 *  
 *  
 * time_zone is in IANA format.
 * account_type list can be seen in Pricing page.
 * status can be ACTIVE, DELETED or SUSPENDED
 * created_at: YYYY-MM-DD HH:MM:SS
 * updated_at: YYYY-MM-DD HH:MM:SS
 * You should append API Key (or authenticate with header/cookie) to the usage
   URL to get the monthly usage details for a user.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"username": "johnsmith",
"name": "John Smith",
"email": "john@example.com",
"website": "http://www.jotform.com",
"time_zone": "America/New_York",
"account_type": "https://apijotform.precisionglassandshower1.com/system/plan/PREMIUM",
"status": "ACTIVE",
"created_at": "2013-06-24 18:43:21",
"updated_at": "2013-06-25 19:01:52",
"is_verified": "1",
"usage": "https://apijotform.precisionglassandshower1.com/user/usage",
"industry": "Web Development",
"securityAnswer": "",
"company": "Interlogy, LLC",
"securityQuestion": "",
"webhooks": "[\"http://www.example.com/instant_submission_notification.php\"]",
"doNotClone": "0",
"folderLayout": "{\"rootFolderID\":{\"nodes\":{\"folderID\":{\"nodes\":[]},\"folderID\":{\"nodes\":[]},}}}",
"language": "en-US",
"avatarUrl": "http://gravatar.com/avatar/c3308f0feb2f350cded9222f83fb9363",
},
"limit-left": 4999
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/USAGE


GET MONTHLY USER USAGE

Get number of form submissions received this month. Also, get number of SSL form
submissions, payment form submissions and upload space used by user.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/usage?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$usage = $jotformAPI->getUsage();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject usage = client.getUsage();



jotformAPI = JotformAPIClient("YOUR API KEY")
usage = jotformAPI.get_usage()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getUsage()
.then(function(r){
/**
successful response including user usage data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
usage := client.GetUsage()



JF.getUsage(function(response){
/**
successful response including user usage data
.
*/
document.write(response.submissions);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var usage = jotformAPIClient.getUsage();



jotform = JotForm.new("APIKey")
usage = jotform.getUsage()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val usage = client.getUsage()


Sample Response
 * Minimize
 *  
 *  
 *  
 * Number of submissions received this month
 * Number of secure submissions received this month
 * Number of payment submissions received this month
 * Total disk space used for uploaded files. In bytes.
 * Number of mobile submissions received this month
 * Number of form views received this month
 * Number of api calls used today.
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"submissions": "478",
"ssl_submissions": "234",
"payments": "35",
"uploads": "31246868",
"mobile_submissions": "21",
"views": "2014",
"api": "14",
},
"limit-left": 4986
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/SUBMISSIONS


GET USER SUBMISSIONS

Get a list of all submissions for all forms on this account. The answers array
has the submission data. Created_at is the date of the submission.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/submissions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$submissions = $jotformAPI->getSubmissions();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject submissions = client.getSubmissions();



jotformAPI = JotformAPIClient("YOUR API KEY")
submissions = jotformAPI.get_submissions()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getSubmissions()
.then(function(r){
/**
successful response including user submissions data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
submissions := client.GetSubmissions()



JF.getSubmissions(function(response){
/**
successful response including user submissions data
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].form_id);
}    
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var submissions = jotformAPIClient.getSubmissions();



jotform = JotForm.new("APIKey")
submissions = jotform.getSubmissions()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val submissions = client.getSubmissions()


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Submission ID
 *  
 * ip address of the submitter
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * status can be ACTIVE or OVERQUOTA
 * new is 1 if this submission is not read
 *  
 *  
 * text is the question label on the form
 * type is the question type such as textbox or dropdown
 * answer is the actual entry made by the submitter
 *  
 *  
 *  
 *  
 *  
 *  
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 *  
 *  
 *  
 * offset is start of each result set for submission data.
 * limit is number of results in each result set for submission data.
 * orderby orders results by a submission field name.
 * filter filters the query results to fetch a specific submissions range.
 *  
 *  
 * count is total number of results returned by the API
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{
"id": "237955080346633702",
"form_id": "31751954731962",
"ip": "123.123.123.123",
"created_at": "2013-06-25 03:38:00",
"updated_at": "2013-06-27 04:58:00",
"status": "ACTIVE",
"new": "1",
"answers": {
"3": {
"text": "Name",
"type":"control_fullname",
"answer": {
"first": "Bart",
"last": "Simpson"
},
"prettyFormat": "Bart Simpson"
},
"4": {
"text": "Your Message",
"type": "control_textarea",
"answer":"¡Ay, caramba!"
}
}],
"resultSet": {
"offset": 0,
"limit": 100,
"orderby": "id",
"filter": {
"new": "1"
},
"count": 100
},
"limit-left": 9991
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey Show Optional Fields offset
Number Start of each result set for submission data. Useful for pagination.
Default is 0.
Example: 20 offset limit
Number Number of results in each result set for submission data. Default is 20.
Maximum is 1000.
Example: 30 limit filter
jsonString Filters the query results to fetch a specific submissions range.
Example: {"new":"1"}
You can also use gt(greater than), lt(less than), ne(not equal to), formIDs and
fullText commands to get more advanced filtering :
Example: {"created_at:gt":"2013-01-01 00:00:00"}
Example: {"formIDs":["your-form-id","your-form-id#2"]}
Example: {"fullText":"John Brown"} filter orderby
Enum Order results by a submission field name: id, form_id, IP, created_at,
status, new, flag, updated_at.
Example: created_at orderby id form_id IP created_at status new flag updated_at
    Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/SUBUSERS


GET SUB-USER ACCOUNT LIST

Get a list of sub users for this accounts and list of forms and form folders
with access privileges.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/subusers?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$subusers = $jotformAPI->getSubusers();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject subusers = client.getSubUsers();



jotformAPI = JotformAPIClient("YOUR API KEY")
subusers = jotformAPI.get_subusers()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getSubusers()
.then(function(r){
/**
successful response including user subusers data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
subusers := client.GetSubusers()



JF.getSubUsers(function(response){
/**
successful response including user subusers data
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].username);
}     
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var subusers = jotformAPIClient.getSubusers();



jotform = JotForm.new("APIKey")
subusers = jotform.getSubusers()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val subusers = client.getSubusers()


Sample Response
 * Minimize
 *  
 *  
 *  
 * owner the parent account that created this sub-user.
 * status can be LIVE, DELETED or PENDING. If the user has not accepted the
   invitation sub-user is in PENDING status.
 * created_at: YYYY-MM-DD HH:MM:SS
 *  
 * type can be FORM, FOLDER or ALL.
 * resource_id is form ID or folder ID, depending on type.
 * access_type is full or readOnly. readOnly means form cannot be changed by the
   sub-user. Only submissions can be viewed.
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{ 
"owner": "johnsmith", 
"status": "LIVE", 
"email": "john@example.com", 
"username": "fredsmith",
"created_at": "2013-06-25 03:38:00",
"permissions": [{ 
"type": "FORM",
"resource_id": "22911182663957",
"access_type": "full",
"title":"Contact Us" 
}],
"limit-left": 9991
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/FOLDERS


GET USER FOLDERS

Get a list of form folders for this account. Returns name of the folder and
owner of the folder for shared folders.


curl -H "APIKEY: {apiKey}" "https://apijotform.precisionglassandshower1.com/user/folders"



$jotformAPI = new JotForm("YOUR API KEY");
$folders = $jotformAPI->getFolders();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject folders = client.getFolders();



jotformAPI = JotformAPIClient("YOUR API KEY")
folders = jotformAPI.get_folders()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFolders()
.then(function(r){
/**
successful response including user folders array
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
folders := client.GetFolders()



JF.getFolders(function(response){
/**
successful response including user folders array
.
*/
document.write(response.name);    
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var folders = jotformAPIClient.getFolders();



jotform = JotForm.new("APIKey")
folders = jotform.getFolders()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val folders = client.getFolders()


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is folder ID.
 * path is list of folders above this folder separated with comma.
 *  
 *  
 * parent is the next folder above. If this folder is a root folder parent
   returns itself.
 * forms lists all forms under this folder.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * subfolders lists all folders under this folder.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "507eb4d2ceae3f9674000000",
"path": "507eb4d2ceae3f9674000000",
"owner": "johnsmith",
"name": "Contact Forms", 
"parent": "507eb4d2ceae3f9674000000", 
"color": "rgb(94,94,94)", 
"forms": { 
"31504059977966": 
{
"id":"31504059977966",
"username":"johnsmith",
"title":"Contact Us",
"height":"501",
"status":"ENABLED",
"created_at":"2012-12-21 12:12:09",
"updated_at":"2013-04-12 02:16:44",
"new":"11",
"count":"11",
"source":"",
"slug":"23554898332968",
"url":"http://form.jotformpro.com/form/31504059977966"
}
},
"subfolders": [
{
"id": "907eb4d2ceae3f9674000000",
"path": "507eb4d2ceae3f9674000000,907eb4d2ceae3f9674000000",
"owner": "johnsmith",
"name": "Special Contact Forms", 
"parent": "507eb4d2ceae3f9674000000", 
"color": "rgb(95,95,95)",                 
"forms": [],
"subfolders": []
}
]
}
"limit-left": 4985
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/REPORTS


GET USER REPORTS

List of URLS for reports in this account. Includes reports for all of the forms.
ie. Excel, CSV, printable charts, embeddable HTML tables.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/reports?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$reports = $jotformAPI->getReports();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject reports = client.getReports();



jotformAPI = JotformAPIClient("YOUR API KEY")
reports = jotformAPI.get_reports()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getReports()
.then(function(r){
/**
successful response including user reports data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
reports := client.GetReports()



JF.getReports(function(response){
/**
successful response including user reports data
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].title);
}    
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var reports = jotformAPIClient.getReports();



jotform = JotForm.new("APIKey")
reports = jotform.getReports()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val reports = client.getReports()


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is report ID.
 *  
 *  
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * fields is a comma separated list of all fields.
 * list_type can be excel, csv, grid, table, calendar, rss or visual.
 * status can be ENABLED or DELETED
 *  
 * isProtected is true if password protected
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{ 
"id": "31673586029057",
"form_id": "31673104360950",
"title": "Report",
"created_at":"2013-06-17 08:11:49",
"updated_at":"2013-06-17 08:14:49",
"fields": "ip,dt,3,4",
"list_type": "excel",
"status": "ENABLED",
"url": "http://www.jotform.com/excel/31672077425051",
"isProtected": false 
}],
"limit-left": 4985
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /USER/LOGIN


LOGIN USER WITH GIVEN CREDENTIALS




curl -X POST -d "username=Username" -d "password=Password" -d "appName=Application Name" -d "access=Access Type" "https://apijotform.precisionglassandshower1.com/user/login"



$jotformAPI = new JotForm();
$creadentials = array(
"username" => "Username",
"password" => "Password",
"appName" => "Application Name",
"access" => "Access Type",
);
$response = $jotformAPI->loginUser($creadentials);



JotformAPIClient client = new JotformAPIClient();
HashMap<String, String> credentials = new HashMap<String, String>();
credentials.put("username", "Username");
credentials.put("password", "Password");
credentials.put("appName", "Application Name");
credentials.put("access", "Access Type");
JSONObject response = client.loginUser(credentials);



jotformAPI = JotformAPIClient()
credentials = {'username': 'Username', 'password': 'Password', 'appName': 'Application Name', 'access': 'Access Type'}
response = jotformAPI.login_user(credentials)





client := jotform.NewJotFormAPIClient("", "OUTPUT TYPE", "DEBUG MODE")
credentials := make(map[string]string)
credentials["username"] = "Username"
credentials["password"] = "Password"
credentials["appName"] = "Application Name"
credentials["access"] = "Access Type"
response := client.LoginUser(credentials)



var user = {
username: 'Username',
password: 'Password',
appName: 'Application Name',
access: 'Access type'
};
JF.userLogin(user, function(response){
/**
successful response including the logged in user
.
*/
document.write(response.username);
});



var jotformAPIClient = new JotForm.APIClient();
Dictionary<string, string> credentials = new Dictionary<string, string>();
credentials.Add("username", "Username");
credentials.Add("password", "Password");
credentials.Add("appName", "Application Name");
credentials.Add("access", "Access Type");
var response = jotformAPIClient.loginUser(credentials);



jotform = JotForm.new("APIKey")
credentials = {
'username' => 'Username', 
'password' => 'Password',
'appName' => 'Application Name', 
'access' => 'Access Type'
}
response = jotform.loginUser(credentials)



val client = new JotForm()
val credentials = Map("username" -> "Username", "password" -> "Password" ,"appName" -> "Application Name", "access" -> "Access Type")
val response = client.loginUser(credentials)


Sample Response
 * Minimize
 *  
 *  
 *  
 * username, name, email, website, avatarUrl, company, industry, security
   question and security answer are basic user account details.
 *  
 *  
 * time_zone is in IANA format.
 * account_type list can be seen in Pricing page.
 * status can be ACTIVE, DELETED or SUSPENDED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 * 1 if you verified your account otherwise 0
 * You should append API Key (or authenticate with header/cookie) to the usage
   URL to get the monthly usage details for a user.
 *  
 *  
 *  
 *  
 *  
 *  

{
"responseCode": 200,
"message": "success",
"content": {
"username": "johnsmith",
"name": "John Smith",
"email": "john@example.com",
"website": "http://www.jotform.com",
"time_zone": "America/New_York",
"account_type": "https://apijotform.precisionglassandshower1.com/system/plan/PREMIUM",
"status": "ACTIVE",
"created_at": "2013-06-24 18:43:21",
"updated_at": "2013-06-25 19:01:52",
"is_verified": "0",
"usage": "https://apijotform.precisionglassandshower1.com/user/usage",
"industry": "",
"securityAnswer": "",
"company": "Interlogy, LLC",
"securityQuestion": "",
"avatarUrl": "http://gravatar.com/avatar/c3308f0feb2f350cded9222f83fb9363",
"appKey": "APP KEY"
}
}

Parameter Description Test Console username
String User's username username password
String User's password password Show Optional Fields appName
String Your application name appName access
String Full access able to do write operations, but readOnly just for reading
operations access readOnly full     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/LOGOUT


LOGOUT USER




curl -X GET "https://apijotform.precisionglassandshower1.com/v1/user/logout"



$jotformAPI = new JotForm();
$response = $jotformAPI->logoutUser();



JotformAPIClient client = new JotformAPIClient();
JSONObject response = client.logoutUser();



jotformAPI = JotformAPIClient()
response = jotformAPI.logout_user()





client := jotform.NewJotFormAPIClient("", "OUTPUT TYPE", "DEBUG MODE")
response := client.LogoutUser()



JF.logout();



var jotformAPIClient = new JotForm.APIClient();
var response = jotformAPIClient.logoutUser();



jotform = JotForm.new("APIKey")
response = jotform.logoutUser()



val client = new JotForm()
val response = client.logoutUser()


Sample Response
 * Minimize
 *  
 *  
 *  

{
"responseCode": 200,
"message": "success",
"content": true
}

Parameter Description Test Console No parameter needed
    Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/SETTINGS


GET USER SETTINGS

Get user's time zone and language.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/settings?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$settings = $jotformAPI->getSettings();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject settings = client.getSettings();



jotformAPI = JotformAPIClient("YOUR API KEY")
settings = jotformAPI.get_settings()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getSettings()
.then(function(r){
/**
successful response including user settings data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
settings := client.GetSettings()



JF.getSettings(function(response){
/**
successful response including user settings data
.
*/
document.write(response.time_zone);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var settings = jotformAPIClient.getSettings();



jotform = JotForm.new("APIKey")
settings = jotform.getSettings()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val settings = client.getSettings()


Sample Response
 * Minimize
 *  
 *  
 *  
 * username, name, email, website, avatarUrl and company are basic user account
   details.
 *  
 *  
 * time_zone is in IANA format.
 * account_type list can be seen in Pricing page.
 * status can be ACTIVE, DELETED or SUSPENDED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * 1 if you verified your account otherwise 0
 * You should append API Key (or authenticate with header/cookie) to the usage
   URL to get the monthly usage details for a user.
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"username": "johnsmith",
"name": "John Smith",
"email": "john@example.com",
"website": "http://www.jotform.com",
"time_zone": "America/New_York",
"account_type": "https://apijotform.precisionglassandshower1.com/system/plan/PREMIUM",
"status": "ACTIVE",
"created_at": "2013-06-24 18:43:21",
"updated_at": "2013-06-25 19:01:52",
"is_verified": "1",
"usage": "https://apijotform.precisionglassandshower1.com/user/usage",
"industry": "Education",
"securityAnswer": "",
"company": "Interlogy, LLC",
"webhooks": "[\"ssl:\\/\\/gateway.sandbox.push.apple.com\"]",
"doNotClone": "0",
"avatarUrl": "http://www.gravatar.com/avatar/bf3438cb82e49ad6d37604bd1b23a9f7?s=50&d=identicon"
},
"limit-left": 4999
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /USER/SETTINGS


UPDATE USER SETTINGS

Update user's settings like time zone and language.


curl -X POST -d "email=new@email.com" -d "website=www.newwebsite.com" "https://apijotform.precisionglassandshower1.com/user/settings?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$settings = array(
'email' => 'new@email.com',
'website' => 'www.newwebsite.com',
);
$response = $jotformAPI->updateSettings($settings);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> settings = new HashMap<String, String>();
settings.put("email", "new@email.com");
settings.put("website", "www.newwebsite.com");
JSONObject response = client.updateSettings(settings);



jotformAPI = JotformAPIClient("YOUR API KEY")
settings = {'email': 'new@email.com', 'website': 'www.newwebsite.com'}
response = jotformAPI.update_settings(settings)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
settings := make(map[string]string)
settings["email"] = "new@email.com"
settings["website"] = "www.newwebsite.com"
response := jotformAPI.UpdateSettings(settings)



/**
* Create settings object array
*/
var settings = {
time_zone: "UTC+08:00",
website: "http://www.example.com"
};
JF.updateSettings(settings, function(response){
/**
successful response including user updated settings data
*/
document.write(response.website);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> settings = new Dictionary<string, string>();
settings.Add("email", "new@email.com");
settings.Add("website", "www.newwebsite.com");
var response = jotformAPIClient.updateSettings(settings);



jotform = JotForm.new("APIKey")
settings = {
'email' => 'new@email.com', 
'website' => 'www.newwebsite.com'
}
response = jotform.updateSettings(settings)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val settings = Map("email" -> "new@email.com", "website" -> "http://www.newwebsite.com")
val response = client.updateSettings(settings)


Sample Response
 * Minimize
 *  
 *  
 *  
 * username, name, email, andwebsite are basic user account details.
 *  
 *  
 * time_zone is in IANA format.
 * account_type list can be seen in Pricing page.
 * status can be ACTIVE, DELETED or SUSPENDED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"username": "johndoe",
"name": null,
"email": null,
"website": "http://www.example.com",
"time_zone": "UTC+8:00",
"account_type": null,
"status": null,
"created_at": null,
"updated_at": null
},
"limit-left": 4999
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey Show Optional Fields name
String User's name
Example: John Smith name email
String User's email
Example: john@smith.com email website
String User's website
Example: www.johnsmith.com website time_zone
String User's time zone
Example: UTC time_zone company
String User's company
Example: Interlogy, LLC. company securityQuestion
String User's security question
Example: What was your first car? securityQuestion securityAnswer
String User's security answer
Example: Ford securityAnswer industry
String User's industry
Example: Education industry Education Web Design Religious Non-Profit Event
Organizer Marketing Web Development Consultancy Photography Social Media Small
Business Sports Real Estate Human Resources Other     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/HISTORY


GET HISTORY

User activity log about things like forms created/modified/deleted, account
logins and other operations.


curl -X GET "https://apijotform.precisionglassandshower1.com/user/history?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$history = $jotformAPI->getHistory();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject history = client.getHistory();



jotformAPI = JotformAPIClient("YOUR API KEY")
history = jotformAPI.get_history()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getHistory()
.then(function(r){
/**
successful response including user history records
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
settings := client.GetHistory()



JF.getHistory(function(response){
/**
successful response including user history records
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].type);
}      
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var history = jotformAPIClient.getHistory();



jotform = JotForm.new("APIKey")
history = jotform.getHistory()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val history = client.getHistory()


Sample Response
 * Minimize
 *  
 *  
 *  
 * type can be userCreation, userLogin, formCreation, formUpdate, formDelete or
   formPurge.
 *  
 *  
 *  
 *  
 * timestamp is number of seconds since Jan 1st, 1970.
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{
"type": "formCreation",
"formID": "31751954731962",
"username": "johnsmith",
"formTitle": "Untitled Form",
"formStatus": "ENABLED",
"ip": "123.123.123.123",
"timestamp": 1372145854
}],
"limit-left": 4999
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey Show Optional Fields action
Enum Filter results by activity performed. Default is 'all'. action all
userCreation userLogin formCreation formUpdate formDelete formPurge date
Enum Limit results by a date range. If you'd like to limit results by specific
dates you can use startDate and endDate fields instead.
Example: lastWeek date lastWeek lastMonth last3Months last6Months lastYear all
sortBy
Enum Lists results by ascending and descending order
Example: ASC sortBy ASC DESC startDate
String Limit results to only after a specific date. Format: MM/DD/YYYY.
Example: 01/31/2013 startDate endDate
String Limit results to only before a specific date. Format: MM/DD/YYYY.
Example: 12/31/2013 endDate     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /USER/FORMS


GET USER FORMS

Get a list of forms for this account. Includes basic details such as title of
the form, when it was created, number of new and total submissions.


curl -H "APIKEY: {apiKey}" "https://apijotform.precisionglassandshower1.com/user/forms"



$jotformAPI = new JotForm("YOUR API KEY");
$forms = $jotformAPI->getForms();



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject forms = client.getForms();



jotformAPI = JotformAPIClient("YOUR API KEY")
forms = jotformAPI.get_forms()



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getForms()
.then(function(r){
/**
successful response including user forms array
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
forms := client.GetForms()



JF.getForms(function(response){
/**
successful response including user forms array
*
*/
for(var i=0; i<response.length; i++){
document.write(response[i].title);
}
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var forms = jotformAPIClient.getForms();



jotform = JotForm.new("APIKey")
forms = jotform.getForms()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val forms = client.getForms()


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Form ID
 *  
 *  
 * Form height in pixel. Form width can be called from
   /form/{formID}/properties/formWidth
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 * last_submission YYYY-MM-DD HH:MM:SS
 * new is the total number of unread submissions
 * count is the total number of submissions
 * type can be LEGACY or CARD
 * favorite 1 if you add the form to your favorites otherwise 0
 * archived 1 if you archive the form otherwise 0
 *  
 *  
 *  
 * offset is start of each result set for form data.
 * limit is number of results in each result set for form data.
 * count is total number of results returned by the API
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{ 
"id": "31504059977966",
"username": "johnsmith",
"title": "Contact Us",
"height": "1550",
"status": "ENABLED",
"created_at": "2013-06-24 18:43:21",
"updated_at": "2013-06-25 19:01:52",
"last_submission": "2013-06-25 19:04:52",
"new": "5",
"count": "755",
"type": "LEGACY",
"favorite": 0,
"archived": 0,
"url": "http://www.jotformpro.com/form/31504059977966",
}],
"resultSet": {
"offset": 0,
"limit": 20,
"count": 20
},
"limit-left": 4986
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey Show Optional Fields offset
Number Start of each result set for form list. Useful for pagination. Default is
0.
Example: 20 offset limit
Number Number of results in each result set for form list. Default is 20.
Maximum is 1000.
Example: 30 limit filter
jsonString Filters the query results to fetch a specific form range.
Example: {"new":"1"}
You can also use gt(greater than), lt(less than), ne(not equal to) commands to
get more advanced filtering :
Example: {"created_at:gt":"2013-01-01 00:00:00"} filter orderby
Enum Order results by a form field name: id, username, title, status(ENABLED,
DISABLED, DELETED), created_at, updated_at, new (unread submissions count),
count (all submissions count), slug (used in form URL).
Example: created_at orderby id username title status created_at updated_at new
count slug     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /USER/FORMS


CREATE A NEW FORM

Create new forms with questions, properties and email settings.


curl -X POST -d "questions[0][type]=control_head" -d "questions[0][text]=Form Title" -d "questions[0][order]=1" -d "questions[0][name]=Header" -d "questions[1][type]=control_textbox" -d "questions[1][text]=Text Box Title" -d "questions[1][order]=2" -d "questions[1][name]=TextBox" -d "questions[1][validation]=None" -d "questions[1][required]=No" -d "questions[1][readonly]=No" -d "questions[1][size]=20" -d "questions[1][labelAlign]=Auto" -d "questions[1][hint]= " -d "properties[title]=New Form" -d "properties[height]=600" -d "emails[0][type]=notification" -d "emails[0][name]=notification" -d "emails[0][from]=default" -d "emails[0][to]=noreply@jotform.com" -d "emails[0][subject]=New Submission" -d "emails[0][html]=false" "https://apijotform.precisionglassandshower1.com/user/forms?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$form = array(
'questions' => array(
array(
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
),
array(
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
),
),
'properties' => array(
'title' => 'New Form',
'height' => '600',
),
'emails' => array(
array(
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false'
),
),
);
$response = $jotformAPI->createForm($form);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question1 = new HashMap<String, String>();
question1.put("type", "control_head");
question1.put("text", "Form Title");
question1.put("order", "1");
question1.put("name", "Header");
question1.put("headerType", "Large");
HashMap<String, String> question2 = new HashMap<String, String>();
question2.put("type", "control_textbox");
question2.put("text", "Text Box Title");
question2.put("order", "2");
question2.put("name", "TextBox");
question2.put("validation", "None");
question2.put("requied", "No");
question2.put("readonly", "No");
question2.put("size", "20");
question2.put("labelAlign", "Auto");
question2.put("hint", "");
Map questions = new HashMap();
questions.put(1, question1);
questions.put(2, question2);
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("title", "New Form");
formProperties.put("height", "600");
HashMap email1 = new HashMap();
email1.put("type", "notification");
email1.put("name", "notification");
email1.put("from", "default");
email1.put("to", "YOUR EMAIL ADDRESS");
email1.put("subject", "New Submission");
email1.put("html", "false");
Map emails = new HashMap();
emails.put(1,  email1);
Map form = new HashMap();
form.put("questions", questions);
form.put("properties", formProperties);
form.put("emails", emails);
JSONObject response = client.createForm(form);



jotformAPI = JotformAPIClient("YOUR API KEY")
form = {
'questions': {
'1': {
'type': 'control_head',
'text': 'Form Title',
'order': '1',
'name': 'Header',
'headerType': 'Large',
},
'2': {
'type': 'control_textbox',
'text': 'Text Box Title',
'order': '2',
'name': 'TextBox',
'validation': 'None',
'required': 'No',
'readonly': 'No',
'size': '20',
'labelAlign': 'Auto',
'hint': '',
},
},
'properties': {
'title': 'New Form',
'height': '600',
},
'emails': {
'0': {
'type': 'notification',
'name': 'notification',
'from': 'default',
'to': 'noreply@jotform.com',
'subject': 'New Submission',
'html': 'false',
},
},
}
response = jotformAPI.create_form(form)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question1 := map[string]string {
"type": "control_head",
"text": "Form Title",
"order": "1",
"name": "Header",
"headerType": "Large",
}
question2 := map[string]string {
"type": "control_textbox",
"text": "Text Box Title",
"order": "2",
"name": "TextBox",
"validation": "None",
"required": "No",
"readonly": "No",
"size": "20",
"labelAlign": "Auto",
"hint": "",
}
questions := make(map[string]interface{})
questions["1"] = question1
questions["2"] = question2
properties := map[string]string {
"title": "New Form",
"height": "600",
}
email1 := map[string]string {
"type": "notification",
"name": "notification",
"from": "default",
"to": "noreply@jotform.com",
"subject": "New Submission",
"html": "false"
}
emails := make(map[string]interface{})
emails["1"] = email1
form := make(map[string]interface{})
form["questions"] = questions
form["properties"] = properties
form["emails"] = emails
response := client.CreateForm(form)



JF.createForm(formObject,function(response){
/**
successful response including created form object
*
*/
document.write(response.title);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question1 = new Dictionary<string, string>();
question1.Add("type", "control_head");
question1.Add("text", "Form Title");
question1.Add("order", "1");
question1.Add("name", "Header");
Dictionary<string, string> question2 = new Dictionary<string, string>();
question2.Add("type", "control_textbox");
question2.Add("text", "Text Box Title");
question2.Add("order", "2");
question2.Add("name", "TextBox");
question2.Add("validation", "None");
question2.Add("required", "No");
question2.Add("readonly", "No");
question2.Add("size", "20");
question2.Add("labelAlign", "Auto");
question2.Add("hint", "");
Dictionary<string, string>[] questions = new Dictionary<string, string>[2];
questions[0] = question1;
questions[1] = question2;
Dictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("title", "New Form");
properties.Add("height", "600");
Dictionary<string, string> email1 = new Dictionary<string, string>();
email1.Add("type", "notification");
email1.Add("name", "notification");
email1.Add("from", "default");
email1.Add("to", "noreply@jotform.com");
email1.Add("subject", "New Submission");
email1.Add("html", "false");
Dictionary<string, string>[] emails = new Dictionary<string, string>[1];
emails[0] = email1;
Dictionary<string, dynamic> form = new Dictionary<string, dynamic>();
form.Add("questions", questions);
form.Add("properties", properties);
form.Add("emails", emails);
var response = jotformAPIClient.createForm(form);



jotform = JotForm.new("APIKey")
form = {
'questions' => {
'1' => {
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
'headerType' => 'Large',
},
'2' => {
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
},
},
'properties' => {
'title' => 'New Form',
'height' => '600',
},
'emails' => {
'0' => {
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false',
}
}
}
response = jotform.createForm(form)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question1: Map[String, String] =  Map("type" -> "control_head", "text" -> "Form Title", "qid" -> "1", "order" -> "1", "name" -> "Header", "headerType" -> "Large")
val question2: Map[String, String] = Map("type" -> "control_textbox", "text" -> "Text Box Title", "qid" -> "2", "order" -> "2", "name" -> "TextBox", "validation" -> "None", "requied" -> "No", "readonly" -> "No", "size" -> "20", "labelAlign" -> "Auto", "hint" -> "")
val questions: Map[String, Any] = Map("1" -> question1, "2" -> question2)
val formProperties: Map[String, String] =Map("title" -> "New Form", "height" -> "600")
val email1: Map[String, String] = Map("type" -> "notification", "name" -> "notification", "from" -> "default", "from" -> "default", "to" -> "YOUR EMAIL ADDRESS", "subject" -> "New Submission", "html" -> "false")
val emails: Map[String, Any] = Map("1" -> email1)
val form: Map[String, Any] = Map("questions" -> questions, "properties" -> formProperties, "emails" -> emails)
val response: JSONObject = client.createForm(form)
val response = client.createForm(form)


Sample Response
 * Minimize
 *  
 *  
 * id is the ID of the created Form
 *  
 *  
 * username is user who created the Form
 * title is the specified title of the Form
 * height is the specified height of the Form
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * new is the total number of unread submissions
 * count is the total number of submissions
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "FORM ID",
"username": "username",
"title": "Form Title",
"height": "600",
"status": null,
"created_at": null,
"updated_at": null,
"new": 0,
"count": 0,
"url": "http://form.jotformpro.com/form/{formID}"
},
"limit-left": 9951
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey questions[1][type]
String Question field type questions[1][type] questions[1][text]
String Label of your question questions[1][text] questions[1][order]
String Order defines the location of the question in the form.
questions[1][order] questions[1][name]
String Slug of question label questions[1][name] properties[title]
String Form Title properties[title] Show Optional Fields questions[2][type]
String Question field type questions[2][type] questions[2][text]
String Label of your question questions[2][text] questions[2][order]
String Order defines the location of the question in the form.
questions[2][order] questions[2][name]
String Slug of question label questions[2][name] properties[height]
String Height of form properties[height] emails[1][type]
String Is this email a notification or a autoresponder? Notifications are sent
to the owner of the form and autoresponders are sent to the person who fills the
form. emails[1][type] emails[1][from]
String From email address on emails. This will only work if the email address is
validated on the account. emails[1][from] emails[1][to]
String Recipient email address for the emails. If there are more than one email
addresses separate them with a comma. emails[1][to] emails[1][subject]
String Subject of the email emails[1][subject] emails[1][html]
String Send email in HTML or plan text format. Set it to 1 if the email is HTML.
emails[1][html] emails[1][body]
String Email contents emails[1][body]     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM


CREATE A NEW FORM

Create new forms with questions, properties and email settings.


curl -X POST -d "questions[0][type]=control_head" -d "questions[0][text]=Form Title" -d "questions[0][order]=1" -d "questions[0][name]=Header" -d "questions[1][type]=control_textbox" -d "questions[1][text]=Text Box Title" -d "questions[1][order]=2" -d "questions[1][name]=TextBox" -d "questions[1][validation]=None" -d "questions[1][required]=No" -d "questions[1][readonly]=No" -d "questions[1][size]=20" -d "questions[1][labelAlign]=Auto" -d "questions[1][hint]= " -d "properties[title]=New Form" -d "properties[height]=600" -d "emails[0][type]=notification" -d "emails[0][name]=notification" -d "emails[0][from]=default" -d "emails[0][to]=noreply@jotform.com" -d "emails[0][subject]=New Submission" -d "emails[0][html]=false" "https://apijotform.precisionglassandshower1.com/form?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$form = array(
'questions' => array(
array(
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
),
array(
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
),
),
'properties' => array(
'title' => 'New Form',
'height' => '600',
),
'emails' => array(
array(
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false'
),
),
);
$response = $jotformAPI->createForm($form);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question1 = new HashMap<String, String>();
question1.put("type", "control_head");
question1.put("text", "Form Title");
question1.put("order", "1");
question1.put("name", "Header");
question1.put("headerType", "Large");
HashMap<String, String> question2 = new HashMap<String, String>();
question2.put("type", "control_textbox");
question2.put("text", "Text Box Title");
question2.put("order", "2");
question2.put("name", "TextBox");
question2.put("validation", "None");
question2.put("requied", "No");
question2.put("readonly", "No");
question2.put("size", "20");
question2.put("labelAlign", "Auto");
question2.put("hint", "");
Map questions = new HashMap();
questions.put(1, question1);
questions.put(2, question2);
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("title", "New Form");
formProperties.put("height", "600");
HashMap email1 = new HashMap();
email1.put("type", "notification");
email1.put("name", "notification");
email1.put("from", "default");
email1.put("to", "YOUR EMAIL ADDRESS");
email1.put("subject", "New Submission");
email1.put("html", "false");
Map emails = new HashMap();
emails.put(1,  email1);
Map form = new HashMap();
form.put("questions", questions);
form.put("properties", formProperties);
form.put("emails", emails);
JSONObject response = client.createForm(form);



jotformAPI = JotformAPIClient("YOUR API KEY")
form = {
'questions': {
'1': {
'type': 'control_head',
'text': 'Form Title',
'order': '1',
'name': 'Header',
'headerType': 'Large',
},
'2': {
'type': 'control_textbox',
'text': 'Text Box Title',
'order': '2',
'name': 'TextBox',
'validation': 'None',
'required': 'No',
'readonly': 'No',
'size': '20',
'labelAlign': 'Auto',
'hint': '',
},
},
'properties': {
'title': 'New Form',
'height': '600',
},
'emails': {
'0': {
'type': 'notification',
'name': 'notification',
'from': 'default',
'to': 'noreply@jotform.com',
'subject': 'New Submission',
'html': 'false',
},
},
}
response = jotformAPI.create_form(form)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question1 := map[string]string {
"type": "control_head",
"text": "Form Title",
"order": "1",
"name": "Header",
"headerType": "Large",
}
question2 := map[string]string {
"type": "control_textbox",
"text": "Text Box Title",
"order": "2",
"name": "TextBox",
"validation": "None",
"required": "No",
"readonly": "No",
"size": "20",
"labelAlign": "Auto",
"hint": "",
}
questions := make(map[string]interface{})
questions["1"] = question1
questions["2"] = question2
properties := map[string]string {
"title": "New Form",
"height": "600",
}
email1 := map[string]string {
"type": "notification",
"name": "notification",
"from": "default",
"to": "noreply@jotform.com",
"subject": "New Submission",
"html": "false"
}
emails := make(map[string]interface{})
emails["1"] = email1
form := make(map[string]interface{})
form["questions"] = questions
form["properties"] = properties
form["emails"] = emails
response := client.CreateForm(form)



JF.createForm(formObject,function(response){
/**
successful response including created form object
*
*/
document.write(response.title);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question1 = new Dictionary<string, string>();
question1.Add("type", "control_head");
question1.Add("text", "Form Title");
question1.Add("order", "1");
question1.Add("name", "Header");
Dictionary<string, string> question2 = new Dictionary<string, string>();
question2.Add("type", "control_textbox");
question2.Add("text", "Text Box Title");
question2.Add("order", "2");
question2.Add("name", "TextBox");
question2.Add("validation", "None");
question2.Add("required", "No");
question2.Add("readonly", "No");
question2.Add("size", "20");
question2.Add("labelAlign", "Auto");
question2.Add("hint", "");
Dictionary<string, string>[] questions = new Dictionary<string, string>[2];
questions[0] = question1;
questions[1] = question2;
Dictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("title", "New Form");
properties.Add("height", "600");
Dictionary<string, string> email1 = new Dictionary<string, string>();
email1.Add("type", "notification");
email1.Add("name", "notification");
email1.Add("from", "default");
email1.Add("to", "noreply@jotform.com");
email1.Add("subject", "New Submission");
email1.Add("html", "false");
Dictionary<string, string>[] emails = new Dictionary<string, string>[1];
emails[0] = email1;
Dictionary<string, dynamic> form = new Dictionary<string, dynamic>();
form.Add("questions", questions);
form.Add("properties", properties);
form.Add("emails", emails);
var response = jotformAPIClient.createForm(form);



jotform = JotForm.new("APIKey")
form = {
'questions' => {
'1' => {
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
'headerType' => 'Large',
},
'2' => {
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
},
},
'properties' => {
'title' => 'New Form',
'height' => '600',
},
'emails' => {
'0' => {
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false',
}
}
}
response = jotform.createForm(form)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question1: Map[String, String] =  Map("type" -> "control_head", "text" -> "Form Title", "qid" -> "1", "order" -> "1", "name" -> "Header", "headerType" -> "Large")
val question2: Map[String, String] = Map("type" -> "control_textbox", "text" -> "Text Box Title", "qid" -> "2", "order" -> "2", "name" -> "TextBox", "validation" -> "None", "requied" -> "No", "readonly" -> "No", "size" -> "20", "labelAlign" -> "Auto", "hint" -> "")
val questions: Map[String, Any] = Map("1" -> question1, "2" -> question2)
val formProperties: Map[String, String] =Map("title" -> "New Form", "height" -> "600")
val email1: Map[String, String] = Map("type" -> "notification", "name" -> "notification", "from" -> "default", "from" -> "default", "to" -> "YOUR EMAIL ADDRESS", "subject" -> "New Submission", "html" -> "false")
val emails: Map[String, Any] = Map("1" -> email1)
val form: Map[String, Any] = Map("questions" -> questions, "properties" -> formProperties, "emails" -> emails)
val response: JSONObject = client.createForm(form)
val response = client.createForm(form)


Sample Response


Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey questions[1][type]
String Question field type questions[1][type] questions[1][text]
String Label of your question questions[1][text] questions[1][order]
String Order defines the location of the question in the form.
questions[1][order] questions[1][name]
String Slug of question label questions[1][name] properties[title]
String Form Title properties[title] Show Optional Fields questions[2][type]
String Question field type questions[2][type] questions[2][text]
String Label of your question questions[2][text] questions[2][order]
String Order defines the location of the question in the form.
questions[2][order] questions[2][name]
String Slug of question label questions[2][name] properties[height]
String Height of form properties[height] emails[1][type]
String Is this email a notification or a autoresponder? Notifications are sent
to the owner of the form and autoresponders are sent to the person who fills the
form. emails[1][type] emails[1][from]
String From email address on emails. This will only work if the email address is
validated on the account. emails[1][from] emails[1][to]
String Recipient email address for the emails. If there are more than one email
addresses separate them with a comma. emails[1][to] emails[1][subject]
String Subject of the email emails[1][subject] emails[1][html]
String Send email in HTML or plan text format. Set it to 1 if the email is HTML.
emails[1][html] emails[1][body]
String Email contents emails[1][body]     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /USER/FORMS


CREATE NEW FORMS

Create new forms with questions, properties and email settings.


curl -X PUT -d '{"questions":[{"type":"control_head","text":"Form Title","order":"1","name":"Header"},{"type":"control_textbox","text":"Text Box Title","order":"2","name":"TextBox","validation":"None","required":"No","readonly":"No","size":"20","labelAlign":"Auto","hint":""}],"properties":{"title":"New Form","height":"600"},"emails":[{"type":"notification","name":"notification", "from":"default","to":"noreply@jotform.com","subject":"New Submission","html":"false"}]}' "https://apijotform.precisionglassandshower1.com/user/forms?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$form = array(
'questions' => array(
array(
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
),
array(
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
),
),
'properties' => array(
'title' => 'New Form',
'height' => '600',
),
'emails' => array(
array(
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false'
),
),
);
$data = json_encode($form);
/* $data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"your mail address",
"subject":"New Submission",
"html":"false"
}
]
}
*/
$response = $jotformAPI->createForms($data);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question1 = new HashMap<String, String>();
question1.put("type", "control_head");
question1.put("text", "Form Title");
question1.put("order", "1");
question1.put("name", "Header");
question1.put("headerType", "Large");
HashMap<String, String> question2 = new HashMap<String, String>();
question2.put("type", "control_textbox");
question2.put("text", "Text Box Title");
question2.put("order", "2");
question2.put("name", "TextBox");
question2.put("validation", "None");
question2.put("requied", "No");
question2.put("readonly", "No");
question2.put("size", "20");
question2.put("labelAlign", "Auto");
question2.put("hint", "");
Map questions = new HashMap();
questions.put(1, question1);
questions.put(2, question2);
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("title", "New Form");
formProperties.put("height", "600");
HashMap email1 = new HashMap();
email1.put("type", "notification");
email1.put("name", "notification");
email1.put("from", "default");
email1.put("to", "YOUR EMAIL ADDRESS");
email1.put("subject", "New Submission");
email1.put("html", "false");
Map emails = new HashMap();
emails.put(1,  email1);
Map form = new HashMap();
form.put("questions", questions);
form.put("properties", formProperties);
form.put("emails", emails);
JSONObject data = new JSONObject(form);
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
JSONObject response = client.createForms(data);



jotformAPI = JotformAPIClient("YOUR API KEY")
form = {
'questions': {
'1': {
'type': 'control_head',
'text': 'Form Title',
'order': '1',
'name': 'Header',
'headerType': 'Large',
},
'2': {
'type': 'control_textbox',
'text': 'Text Box Title',
'order': '2',
'name': 'TextBox',
'validation': 'None',
'required': 'No',
'readonly': 'No',
'size': '20',
'labelAlign': 'Auto',
'hint': '',
},
},
'properties': {
'title': 'New Form',
'height': '600',
},
'emails': {
'0': {
'type': 'notification',
'name': 'notification',
'from': 'default',
'to': 'noreply@jotform.com',
'subject': 'New Submission',
'html': 'false',
},
},
}
data = json.dumps(form)
'''data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
'''
response = jotformAPI.create_forms(data)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question1 := map[string]string {
"type": "control_head",
"text": "Form Title",
"order": "1",
"name": "Header",
"headerType": "Large",
}
question2 := map[string]string {
"type": "control_textbox",
"text": "Text Box Title",
"order": "2",
"name": "TextBox",
"validation": "None",
"required": "No",
"readonly": "No",
"size": "20",
"labelAlign": "Auto",
"hint": "",
}
questions := make(map[string]interface{})
questions["1"] = question1
questions["2"] = question2
properties := map[string]string {
"title": "New Form",
"height": "600",
}
email1 := map[string]string {
"type": "notification",
"name": "notification",
"from": "default",
"to": "noreply@jotform.com",
"subject": "New Submission",
"html": "false"
}
emails := make(map[string]interface{})
emails["1"] = email1
form := make(map[string]interface{})
form["questions"] = questions
form["properties"] = properties
form["emails"] = emails
data, err := json.Marshal(form)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
if err == nil {
response := client.CreateForms(data)
}



JF.createForms(formJSON,function(response){
/**
successful response including created form object
*
*/
document.write(response.title);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question1 = new Dictionary<string, string>();
question1.Add("type", "control_head");
question1.Add("text", "Form Title");
question1.Add("order", "1");
question1.Add("name", "Header");
Dictionary<string, string> question2 = new Dictionary<string, string>();
question2.Add("type", "control_textbox");
question2.Add("text", "Text Box Title");
question2.Add("order", "2");
question2.Add("name", "TextBox");
question2.Add("validation", "None");
question2.Add("required", "No");
question2.Add("readonly", "No");
question2.Add("size", "20");
question2.Add("labelAlign", "Auto");
question2.Add("hint", "");
Dictionary<string, string>[] questions = new Dictionary<string, string>[2];
questions[0] = question1;
questions[1] = question2;
Dictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("title", "New Form");
properties.Add("height", "600");
Dictionary<string, string> email1 = new Dictionary<string, string>();
email1.Add("type", "notification");
email1.Add("name", "notification");
email1.Add("from", "default");
email1.Add("to", "noreply@jotform.com");
email1.Add("subject", "New Submission");
email1.Add("html", "false");
Dictionary<string, string>[] emails = new Dictionary<string, string>[1];
emails[0] = email1;
Dictionary<string, dynamic> form = new Dictionary<string, string>dynamic();
form.Add("questions", questions);
form.Add("properties", properties);
form.Add("emails", emails);
String data = JsonConvert.SerializeObject(form);
var response = jotformAPIClient.createForms(data);



require 'json'
jotform = JotForm.new("APIKey")
form = {
'questions' => {
'1' => {
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
'headerType' => 'Large',
},
'2' => {
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
},
},
'properties' => {
'title' => 'New Form',
'height' => '600',
},
'emails' => {
'0' => {
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' =< 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false',
}
}
}
data = form.to_json
response = jotform.createForms(data)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question1: HashMap[String, String] = new HashMap[String, String]()
question1.put("type", "control_head")
question1.put("text", "Form Title")
question1.put("qid", "1")
question1.put("order", "1")
question1.put("name", "Header")
question1.put("headerType", "Large")
val question2: HashMap[String, String] = new HashMap[String, String]()
question2.put("type", "control_textbox")
question2.put("text", "Text Box Title")
question2.put("qid", "2")
question2.put("order", "2")
question2.put("name", "TextBox")
question2.put("validation", "None")
question2.put("requied", "No")
question2.put("readonly", "No")
question2.put("size", "20")
question2.put("labelAlign", "Auto")
question2.put("hint", "")
val questions: HashMap[String, Object] = new HashMap[String, Object]()
questions.put("1", question1)
questions.put("2", question2)
val formProperties: HashMap[String, String] = new HashMap[String, String]()
formProperties.put("title", "New Form")
formProperties.put("height", "600")
val email1: HashMap[String, String] = new HashMap[String, String]()
email1.put("type", "notification")
email1.put("name", "notification")
email1.put("from", "default")
email1.put("to", "YOUR EMAIL ADDRESS")
email1.put("subject", "New Submission")
email1.put("html", "false")
val emails: HashMap[String, Object] = new HashMap[String, Object]()
emails.put("1",  email1)
val form: HashMap[String, Object] = new HashMap[String, Object]()
form.put("questions", questions)
form.put("properties", formProperties)
form.put("emails", emails)
val data: JSONObject = new JSONObject(properties)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
val response: JSONObject = client.createForms(data)


Sample Response
 * Minimize
 *  
 *  
 * id is the ID of the created Form
 *  
 *  
 * username is user who created the Form
 * title is the specified title of the Form
 * height is the specified height of the Form
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * new is the total number of unread submissions
 * count is the total number of submissions
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "FORM ID",
"username": "username",
"title": "Form Title",
"height": "600",
"status": null,
"created_at": null,
"updated_at": null,
"new": 0,
"count": 0,
"url": "http://form.jotformpro.com/form/{formID}"
},
"limit-left": 9951
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey formContent
JSON Questions, properties and emails of new form. formContent     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /FORM


CREATE NEW FORMS

Create new forms with questions, properties and email settings.


curl -X PUT -d '{"questions":[{"type":"control_head","text":"Form Title","order":"1","name":"Header"},{"type":"control_textbox","text":"Text Box Title","order":"2","name":"TextBox","validation":"None","required":"No","readonly":"No","size":"20","labelAlign":"Auto","hint":""}],"properties":{"title":"New Form","height":"600"},"emails":[{"type":"notification","name":"notification", "from":"default","to":"noreply@jotform.com","subject":"New Submission","html":"false"}]}' "https://apijotform.precisionglassandshower1.com/form?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$form = array(
'questions' => array(
array(
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
),
array(
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
),
),
'properties' => array(
'title' => 'New Form',
'height' => '600',
),
'emails' => array(
array(
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' => 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false'
),
),
);
$data = json_encode($form);
/* $data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"your mail address",
"subject":"New Submission",
"html":"false"
}
]
}
*/
$response = $jotformAPI->createForms($data);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question1 = new HashMap<String, String>();
question1.put("type", "control_head");
question1.put("text", "Form Title");
question1.put("order", "1");
question1.put("name", "Header");
question1.put("headerType", "Large");
HashMap<String, String> question2 = new HashMap<String, String>();
question2.put("type", "control_textbox");
question2.put("text", "Text Box Title");
question2.put("order", "2");
question2.put("name", "TextBox");
question2.put("validation", "None");
question2.put("requied", "No");
question2.put("readonly", "No");
question2.put("size", "20");
question2.put("labelAlign", "Auto");
question2.put("hint", "");
Map questions = new HashMap();
questions.put(1, question1);
questions.put(2, question2);
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("title", "New Form");
formProperties.put("height", "600");
HashMap email1 = new HashMap();
email1.put("type", "notification");
email1.put("name", "notification");
email1.put("from", "default");
email1.put("to", "YOUR EMAIL ADDRESS");
email1.put("subject", "New Submission");
email1.put("html", "false");
Map emails = new HashMap();
emails.put(1,  email1);
Map form = new HashMap();
form.put("questions", questions);
form.put("properties", formProperties);
form.put("emails", emails);
JSONObject data = new JSONObject(form);
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
JSONObject response = client.createForms(data);



jotformAPI = JotformAPIClient("YOUR API KEY")
form = {
'questions': {
'1': {
'type': 'control_head',
'text': 'Form Title',
'order': '1',
'name': 'Header',
'headerType': 'Large',
},
'2': {
'type': 'control_textbox',
'text': 'Text Box Title',
'order': '2',
'name': 'TextBox',
'validation': 'None',
'required': 'No',
'readonly': 'No',
'size': '20',
'labelAlign': 'Auto',
'hint': '',
},
},
'properties': {
'title': 'New Form',
'height': '600',
},
'emails': {
'0': {
'type': 'notification',
'name': 'notification',
'from': 'default',
'to': 'noreply@jotform.com',
'subject': 'New Submission',
'html': 'false',
},
},
}
data = json.dumps(form)
'''data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
'''
response = jotformAPI.create_forms(data)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question1 := map[string]string {
"type": "control_head",
"text": "Form Title",
"order": "1",
"name": "Header",
"headerType": "Large",
}
question2 := map[string]string {
"type": "control_textbox",
"text": "Text Box Title",
"order": "2",
"name": "TextBox",
"validation": "None",
"required": "No",
"readonly": "No",
"size": "20",
"labelAlign": "Auto",
"hint": "",
}
questions := make(map[string]interface{})
questions["1"] = question1
questions["2"] = question2
properties := map[string]string {
"title": "New Form",
"height": "600",
}
email1 := map[string]string {
"type": "notification",
"name": "notification",
"from": "default",
"to": "noreply@jotform.com",
"subject": "New Submission",
"html": "false"
}
emails := make(map[string]interface{})
emails["1"] = email1
form := make(map[string]interface{})
form["questions"] = questions
form["properties"] = properties
form["emails"] = emails
data, err := json.Marshal(form)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
if err == nil {
response := client.CreateForms(data)
}



JF.createForms(formJSON,function(response){
/**
successful response including created form object
*
*/
document.write(response.title);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question1 = new Dictionary<string, string>();
question1.Add("type", "control_head");
question1.Add("text", "Form Title");
question1.Add("order", "1");
question1.Add("name", "Header");
Dictionary<string, string> question2 = new Dictionary<string, string>();
question2.Add("type", "control_textbox");
question2.Add("text", "Text Box Title");
question2.Add("order", "2");
question2.Add("name", "TextBox");
question2.Add("validation", "None");
question2.Add("required", "No");
question2.Add("readonly", "No");
question2.Add("size", "20");
question2.Add("labelAlign", "Auto");
question2.Add("hint", "");
Dictionary<string, string>[] questions = new Dictionary<string, string>[2];
questions[0] = question1;
questions[1] = question2;
Dictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("title", "New Form");
properties.Add("height", "600");
Dictionary<string, string> email1 = new Dictionary<string, string>();
email1.Add("type", "notification");
email1.Add("name", "notification");
email1.Add("from", "default");
email1.Add("to", "noreply@jotform.com");
email1.Add("subject", "New Submission");
email1.Add("html", "false");
Dictionary<string, string>[] emails = new Dictionary<string, string>[1];
emails[0] = email1;
Dictionary<string, dynamic> form = new Dictionary<string, string>dynamic();
form.Add("questions", questions);
form.Add("properties", properties);
form.Add("emails", emails);
String data = JsonConvert.SerializeObject(form);
var response = jotformAPIClient.createForms(data);



require 'json'
jotform = JotForm.new("APIKey")
form = {
'questions' => {
'1' => {
'type' => 'control_head',
'text' => 'Form Title',
'order' => '1',
'name' => 'Header',
'headerType' => 'Large',
},
'2' => {
'type' => 'control_textbox',
'text' => 'Text Box Title',
'order' => '2',
'name' => 'TextBox',
'validation' => 'None',
'required' => 'No',
'readonly' => 'No',
'size' => '20',
'labelAlign' => 'Auto',
'hint' => '',
},
},
'properties' => {
'title' => 'New Form',
'height' => '600',
},
'emails' => {
'0' => {
'type' => 'notification',
'name' => 'notification',
'from' => 'default',
'to' =< 'noreply@jotform.com',
'subject' => 'New Submission',
'html' => 'false',
}
}
}
data = form.to_json
response = jotform.createForms(data)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question1: HashMap[String, String] = new HashMap[String, String]()
question1.put("type", "control_head")
question1.put("text", "Form Title")
question1.put("qid", "1")
question1.put("order", "1")
question1.put("name", "Header")
question1.put("headerType", "Large")
val question2: HashMap[String, String] = new HashMap[String, String]()
question2.put("type", "control_textbox")
question2.put("text", "Text Box Title")
question2.put("qid", "2")
question2.put("order", "2")
question2.put("name", "TextBox")
question2.put("validation", "None")
question2.put("requied", "No")
question2.put("readonly", "No")
question2.put("size", "20")
question2.put("labelAlign", "Auto")
question2.put("hint", "")
val questions: HashMap[String, Object] = new HashMap[String, Object]()
questions.put("1", question1)
questions.put("2", question2)
val formProperties: HashMap[String, String] = new HashMap[String, String]()
formProperties.put("title", "New Form")
formProperties.put("height", "600")
val email1: HashMap[String, String] = new HashMap[String, String]()
email1.put("type", "notification")
email1.put("name", "notification")
email1.put("from", "default")
email1.put("to", "YOUR EMAIL ADDRESS")
email1.put("subject", "New Submission")
email1.put("html", "false")
val emails: HashMap[String, Object] = new HashMap[String, Object]()
emails.put("1",  email1)
val form: HashMap[String, Object] = new HashMap[String, Object]()
form.put("questions", questions)
form.put("properties", formProperties)
form.put("emails", emails)
val data: JSONObject = new JSONObject(properties)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Form Title",
"order":"1",
"name":"Header"
},
{
"type":"control_textbox",
"text":"Text Box Title",
"order":"2",
"name":"TextBox",
"validation":"None",
"required":"No",
"readonly":"No",
"size":"20",
"labelAlign":"Auto",
"hint":""
}
],
"properties":{
"title":"New Form",
"height":"600"
},
"emails":[
{
"type":"notification",
"name":"notification",
"from":"default",
"to":"noreply@jotform.com",
"subject":"New Submission",
"html":"false"
}
]
}
*/
val response: JSONObject = client.createForms(data)


Sample Response


Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey formContent
JSON Questions, properties and emails of new form. formContent     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}


GET FORM DETAILS

Get basic information about a form. Use /form/{id}/questions to get the list of
questions.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$form = $jotformAPI->getForm("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject form = client.getForm("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
form = jotformAPI.get_form("FORM ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getForm(formID)
.then(function(r){
/**
successful response including form data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
form := client.GetForm("FORM ID")



JF.getForm(formID, function(response){
/**
successful response including form data with given id
.
*/
document.write(response.title);  
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var form = jotformAPIClient.getForm("FORM ID");



jotform = JotForm.new("APIKey")
form = jotform.getForm()
form = jotform.getForm("#formID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val form = client.getForm("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Form ID
 * username is user who created the Form
 * title is the specified title of the Form
 * Form height in pixel. Form width can be called from
   /form/{formID}/properties/formWidth
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 * last_submission YYYY-MM-DD HH:MM:SS
 * new is the total number of unread submissions
 * count is the total number of submissions
 * type can be LEGACY or CARD
 * favorite 1 if you add the form to your favorites otherwise 0
 * archived 1 if you archive the form otherwise 0
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{ 
"id": "31504059977966",
"username": "johnsmith",
"title": "Contact Us",
"height": "1550",
"status": "ENABLED",
"created_at": "2013-06-24 18:43:21",
"updated_at": "2013-06-25 19:01:52",
"last_submission": "2013-06-25 19:04:52",
"new": "5",
"count": "755",
"type": "LEGACY",
"favorite": "0",
"archived": "0",
"url": "http://www.jotformpro.com/form/31504059977966"
}],
"limit-left": 4984
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966.
Example: 30693660548966 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /FORM/{ID}


DELETE A FORM

Delete an existing form.


curl -X DELETE "https://apijotform.precisionglassandshower1.com/form/{formID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$response = $jotformAPI->deleteForm("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject response = client.deleteForm("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
response = jotformAPI.delete_form("FORM ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
response := client.DeleteForm("FORM ID")



JF.deleteForm(formID, function(response){
/**
successful response including deleted form's data
.
*/
document.write(response.status); 
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var response = jotformAPIClient.deleteForm("FORM ID");



jotform = JotForm.new("APIKey")
response = jotform.deleteForm("FORM-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val response = client.deleteForm("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the ID of the created Form
 * username is user who created the Form
 * title is the specified title of the Form
 * height is the specified height of the Form
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * new is the total number of unread submissions
 * count is the total number of submissions
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "FORM ID",
"username": "username",
"title": "Form Title",
"height": "600",
"status": "DELETED",
"created_at": "2013-08-05 08:49:01",
"updated_at": "2013-08-05 08:50:41",
"new": "0",
"count": "0"
},
"limit-left": 9950
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/CLONE


CLONE FORM

Clone a single form.


curl -X POST "https://apijotform.precisionglassandshower1.com/form/{formID}/clone?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->cloneForm("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject result = client.cloneForm("FORM ID");






client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
result := client.CloneForm("FORM ID")



JF.cloneForm(formID, function(response){
/**
successful response including data of the cloned form
.
*/
document.write(response.title); 
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var result = jotformAPIClient.cloneForm("FORM ID");





val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val result = client.cloneForm("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the ID of the created Form
 * username is user who created the Form
 * title is the specified title of the Form
 * height is the specified height of the Form
 * status can be ENABLED, DISABLED or DELETED
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * last_submission YYYY-MM-DD HH:MM:SS
 * new is the total number of unread submissions
 * count is the total number of submissions
 * type can be LEGACY or CARD
 * favorite 1 if you add the form to your favorites otherwise 0
 * archived 1 if you archive the form otherwise 0
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "{formID}",
"username": "username",
"title": "form title",
"height": "527",
"status": "ENABLED",
"created_at": null,
"updated_at": null,
"last_submission": null,
"new": 0,
"count": 0,
"type": "LEGACY",
"favorite": 0,
"archived": 0,
"url": "http://form.jotform.co/form/{formID}"
},
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID. You can get form IDs when you call /user/forms.
Example: 31974353596870 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/QUESTIONS


GET FORM QUESTIONS

Get a list of all questions on a form. Type describes question field type. Order
is the question order in the form. Text field is the question label.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/questions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$questions = $jotformAPI->getFormQuestions("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject questions = client.getFormQuestions("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
questions = jotformAPI.get_form_questions("FORM ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFormQuestions(formID)
.then(function(r){
/**
successful response including questions of form with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
questions := client.GetFormQuestions("FORM ID")



JF.getFormQuestions(formID, function(response){
/**
successful response including questions of form with given id
.
*/
for(var i in response){
document.write(response[i].qid);
}      
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var questions = jotformAPIClient.getFormQuestions("FORM ID");



jotform = JotForm.new("APIKey")
questions = jotform.getFormQuestions("#formID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val questions = client.getFormQuestions("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * order defines the location of the question in the form.
 * qid is question ID.
 *  
 *  
 *  
 *  
 * text is question label
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * sublabel is used in questions with multiple fields.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"1": { 
"hint":" ",
"labelAlign":"Auto",
"name":"textboxExample1",
"order":"1",
"qid":"1",
"readonly":"No",
"required":"No",
"shrink": "No",
"size":"20",
"text":"Textbox Example",
"type":"control_textbox",
"validation":"None"
},
"2": { 
"labelAlign":"Auto",
"middle":"No",
"name":"fullName2",
"order":"1",
"prefix":"No",
"qid":"2",
"readonly":"No",
"required":"No",
"shrink": "Yes",
"sublabels":
{
"prefix":"Prefix",
"first":"First Name",
"middle":"Middle Name",
"last":"Last Name",
"suffix":"Suffix"
},
"suffix":"No",
"text":"Full Name",
"type":"control_fullname"
},
"3": {
"cols": "40",
"entryLimit": "None-0",
"labelAlign": "Auto",
"name": "yourMessage",
"order": "3",
"qid": "3",
"required": "No",
"rows": "6",
"text": "Your Message",
"type": "control_textarea",
"validation": "None"
}
},
"limit-left": 4982
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/QUESTIONS


ADD NEW QUESTION TO SPECIFIED FORM

Add new question to specified form. Form questions might have various
properties. Examples: Is it required? Are there any validations such as 'numeric
only'?


curl -X POST -d "question[type]=control_head" -d "question[text]=Header" -d "question[order]=1" -d "question[name]=clickTo" "https://apijotform.precisionglassandshower1.com/form/{formID}/questions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$question = array(
'type' => 'control_head',
'text' => 'Header',
'order' => '1', 
'name' => 'clickTo', 
);
$response = $jotformAPI->createFormQuestion("FORM ID", $question);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question = new HashMap<String, String>();
question.put("type", "control_head");
question.put("text", "Header");
question.put("order", "1");
question.put("name", "clickTo");
JSONObject response = client.createFormQuestion("FORM ID", question);



jotformAPI = JotformAPIClient("YOUR API KEY")
question = {'type': 'control_head', 'text': 'Header', 'order': '1', 'name': 'clickTo'}
response = jotformAPI.create_form_question('32134810077952', question)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question := map[string]string {
"type": "control_head",
"text": "Header",
"order": "1",
"name": "clickTo",
}
response := client.CreateFormQuestion("FORM ID", question)



questionObject = { "type": "control_head", "text" : "Header", "order" : "1"};
JF.createFormQuestion(formID, questionObject, function(response){
/**
successful response including question with given id of form with given id
.
*/
document.write(response.qid);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question = new Dictionary<string, string>();
question.Add("type", "control_head");
question.Add("text", "Header");
question.Add("order", "1");
question.Add("name", "clickTo");
var response = jotformAPIClient.createFormQuestion("FORM ID", question);



jotform = JotForm.new("APIKey")
question = {
"type" => "control_head",
"text" => "Header",
"order" => "1",
"name" => "clickTo"
}
response = jotform.createFormQuestion('FORM-ID', question)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question = Map("type" -> "control_head", "text" -> "Header", "order" -> "1", "name" -> "clickTo")
val response = client.createFormQuestion("FORM ID", question)


Sample Response
 * Minimize
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 * text is question label
 * qid is question ID.
 * order defines the location of the question in the form.
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"type": "control_head",
"text": "Header",
"qid": 1,
"order": 1,
"name": "clickTo",
"headerType": "Default"
},
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id question[type]
String Type describes question field type.
Most commonly used types are control_textbox, control_textarea, control_dropdown
control_radio, control_checkbox, control_fileupload, control_fullname,
control_email and control_datetime question[type] Show Optional Fields
question[text]
String Label of your question question[text] question[order]
String Order defines the location of the question in the form. question[order]
question[name]
String Slug of question label question[name]     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /FORM/{ID}/QUESTIONS


ADD NEW QUESTIONS TO SPECIFIED FORM

Add new questions to specified form. Form questions might have various
properties. Examples: Is it required? Are there any validations such as 'numeric
only'?


curl -X PUT -d '{"questions":{"1":{"type":"control_head","text":"Text 1","order":"1","name":"Header1"},"2":{"type":"control_head","text":"Text 2","order":"2","name":"Header2"}}}' "https://apijotform.precisionglassandshower1.com/form/{formID}/questions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$questions = array(
'questions' => array(
array(
'type' => 'control_head',
'text'=> 'Text 1',
'order' => '1',
'name' => 'Header1',
),
array(
'type' => 'control_head',
'text' => 'Text 2',
'order' => '2',
'name' => 'Header2',
)
),
);
$data = json_encode($questions);
/* $data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Text 1",
"order":"1",
"name":"Header1"
},
{
"type":"control_head",
"text":"Text 2",
"order":"2",
"name":"Header2"
}
]
}
*/
$response = $jotformAPI->createFormQuestions("FORM ID", $data);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> question1 = new HashMap<String, String>();
question1.put("type", "control_head");
question1.put("text", "Text 1");
question1.put("order", "1");
question1.put("name", "Header1");
HashMap<String, String> question2 = new HashMap<String, String>();
question2.put("type", "control_head");
question2.put("text", "Text 2");
question2.put("order", "2");
question2.put("name", "Header2");
Map questions = new HashMap();
questions.put(1,question1);
questions.put(2, question2);
Map questionObject = new HashMap();
questionObject.put("questions", questions);
JSONObject data = new JSONObject(questionObject);
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Text 1",
"order":"1",
"name":"Header1"
},
{
"type":"control_head",
"text":"Text 2",
"order":"2",
"name":"Header2"
}
]
}
*/
JSONObject response = client.createFormQuestions("FORM ID", data);



jotformAPI = JotformAPIClient("YOUR API KEY")
questions = {
'questions': {
'1': {
'type':'control_head',
'text':'Text 1',
'order':'1',
'name':'clickTo'
},
'2': {
'type':'control_head', 
'text':'Text 2', 
'order':'2', 
'name':'clickTo'
}
}
}
data = json.dumps(questions)
'''data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Text 1",
"order":"1",
"name":"Header1"
},
{
"type":"control_head",
"text":"Text 2",
"order":"2",
"name":"Header2"
}
]
}
'''
response = jotformAPI.create_form_questions('FORM ID', data)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
question1 := map[string]string{
"type": "control_head",
"text": "Text 1",
"qid": "1",
"order": "1",
"name": "clickTo",
}
question2 := map[string]string{
"type": "control_head",
"text": "Text 2",
"qid": "1",
"order": "1",
"name": "clickTo",
}
questions := make(map[string]map[string]string)
questions["1"] = question1
questions["2"] = question2
qObj := make(map[string]interface{})
qObj["questions"] = questions
data, err := json.Marshal(qObj)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Text 1",
"order":"1",
"name":"Header1"
},
{
"type":"control_head",
"text":"Text 2",
"order":"2",
"name":"Header2"
}
]
}
*/
if err == nil {
response := client.CreateFormQuestions("FORM ID", data)
}



questionsArray = new Array({
"type": "control_textbox", 
"name": "textbox", 
"text": "Label 1", 
"order":"3"
},{
"type": "control_textarea",
"name": "textarea",
"text": "Label 2",
"order":"4"
});
jsonData = JSON.stringify({ "questions" : questionsArray});
JF.createFormQuestions(formID, jsonData, function(response){
/**
successful response including new questions
*/
for(var i in response){
document.write(response[i].qid);
}
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> question1 = new Dictionary<string, string>();
question1.Add("type", "control_head");
question1.Add("text", "Text 1");
question1.Add("qid", "1");
question1.Add("order", "1");
question1.Add("name", "Header1");
Dictionary<string, string> question2 = new Dictionary<string, string>();
question2.Add("type", "control_head");
question2.Add("text", "Text 2");
question2.Add("qid", "2");
question2.Add("order", "2");
question2.Add("name", "Header 2");
Dictionary<string, string>[] questions = new Dictionary<string, string>[2];
questions[0] = question1;
questions[1] = question2;
Dictionary<String, Dictionary<string, string>[]> questionObject = new Dictionary<string, Dictionary<string, string>[]>>;
questionObject.Add("questions", questions);
var response = jotformAPIClient.createFormQuestions("FORM ID", JsonConvert.SerializeObject(questionObject, Formatting.Indented));



require 'json'
jotform = JotForm.new("APIKey")
questions = {
"questions" => {
"1" => {
"type" => "control_head",
"text" => "Header",
"order" => "1",
"name" => "Header"
},
"2" => {
"type" => "control_textbox",
"text" => "question 2",
"order" => "2",
"name" => "textBox"
}
}
}
data = questions.to_json
response = jotform.createFormQuestions("FORM-ID", data)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question1: 	HashMap[String, String]  = new HashMap[String, String]()
question1.put("type", "control_head")
question1.put("text", "Text 1")
question1.put("qid", "1")
question1.put("order", "1")
question1.put("name", "Header1")
val question2: HashMap[String, String] = new HashMap[String, String]()
question2.put("type", "control_head")
question2.put("text", "Text 2")
question2.put("qid", "2")
question2.put("order", "2")
question2.put("name", "Header2")
val questions: HashMap[String, Object] = new HashMap[String, Object]()
questions.put("1",question1)
questions.put("2", question2)
val questionObject: HashMap[String, Object] = new HashMap[String, Object]()
questionObject.put("questions", questions)
val data: JSONObject = new JSONObject(questionObject)
/* data needs to be json
{
"questions":[
{
"type":"control_head",
"text":"Text 1",
"order":"1",
"name":"Header1"
},
{
"type":"control_head",
"text":"Text 2",
"order":"2",
"name":"Header2"
}
]
}
*/
val response = client.createFormQuestions("FORM ID", data);


Sample Response
 * Minimize
 *  
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 * text is question label
 * qid is question ID.
 * order defines the location of the question in the form.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"1": {
"type": "control_head",
"text": "Text 1",
"qid": 1,
"order": "1",
"name": "Header1",
"headerType": "Default"
},
"2": {
"type": "control_head",
"text": "Text 2",
"qid": 2,
"order": "2",
"name": "Header2",
"headerType": "Small"
}
},
"limit-left": 9956
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id questions
JSON New question's properties questions     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/QUESTION/{QID}


GET DETAILS ABOUT A QUESTION

Form questions might have various properties. Examples: Is it required? Are
there any validations such as 'numeric only'?


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/question/{questionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$question = $jotformAPI->getFormQuestion("FORM ID", "QUESTION ID");





jotformAPI = JotformAPIClient("YOUR API KEY")
question = jotformAPI.get_form_question("FORM ID", "QUESTION ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFormQuestion(formID, qid)
.then(function(r){
/**
successful response including question with given id of form with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
property := client.GetFormQuestion("FORM ID", "QUESTION ID")



JF.getFormQuestion(formID, questionID, function(response){
/**
successful response including question with given id of form with given id
.
*/
document.write(response.qid);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var question = jotformAPIClient.getFormQuestion("FORM ID", "QUESTION ID");



jotform = JotForm.new("APIKey")
question = jotform.getFormQuestion("#formID", "#questionID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val question = client.getFormQuestion("FORM ID", "QUESTION ID")


Sample Response
 * Minimize
 *  
 *  
 * order defines the location of the question in the form.
 * qid is question ID.
 * text is question label
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"headerType": "Large",
"name": "Header",
"order": "1",
"qid": "1",
"text": "Form Title",
"type": "control_head"
},
"limit-left": 9994
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id qid
String Identifier for each question on a form. You can get a list of question
IDs from /form/{id}/questions end point. qid     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/QUESTION/{QID}


ADD OR EDIT A SINGLE QUESTION PROPERTIES

Edit a question property or add a new one. Form questions might have various
properties. Examples: Is it required? Are there any validations such as 'numeric
only'?


curl -X POST -d "question[text]=New Text" -d "question[order]=3" -d "question[name]=New Name of Question" "https://apijotform.precisionglassandshower1.com/form/{formID}/question/{questionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$questionProperties = array(
'text' => 'New Text',
'order' => '3',
'name' => 'New Name of Question',
);
$response = $jotformAPI->editFormQuestion("FORM ID", "QUESTION ID", $questionProperties);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> questionProperties = new HashMap<String, String>();
questionProperties.put("text", "New Text");
questionProperties.put("order", "3");
questionProperties.put("name", "New Name of Question");
JSONObject response = client.editFormQuestion("FORM ID", "QUESTION ID", questionProperties);



jotformAPI = JotformAPIClient("YOUR API KEY")
question_properties = {'text':'New Text', 'order':'3', 'name': 'New Name of Question'}
response = jotformAPI.edit_form_question('FORM ID', 'QUESTION ID', question_properties)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
questionProperties := map[string]string {
"text": "New Text",
"order": "3",
"name": "New Name of Question",
}
response := client.EditFormQuestion("FORM ID", "QUESTION ID", questionProperties)



question = { "text" : "New Text", "order" : "4", "name" : "New name"};
JF.editFormQuestion(formID, questionID, question, function(response){
/**
successful response including question with given id of form with given id
.
*/
document.write(response.qid);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> questionProperties = new Dictionary<string, string>();
questionProperties.Add("text", "New Text");
questionProperties.Add("order", "3");
questionProperties.Add("name", "New Name of Question");
var response = jotformAPIClient.editFormQuestion("FORM ID", "QUESTION ID", questionProperties);



jotform = JotForm.new("APIKey")
questionProperties = {
'text' => 'New Text',
'order' => '3', 
'name' => 'New Name of Question'
}
response = jotform.editFormQuestion("FORM-ID", "QUESTION-ID", questionProperties)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val questionProperties = Map("text" -> "New Text", "order" -> "3", "name" -> "New Name of Question")
val response = client.editFormQuestion("FORM ID", "QUESTION ID", questionProperties)


Sample Response
 * Minimize
 *  
 *  
 *  
 * text is question label
 * order defines the location of the question in the form.
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
{
"text": "New Text",
"order": "3",
"type": "control_head"
}
],
"limit-left": 9954
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id qid
String Identifier for each question on a form. You can get a list of question
IDs from /form/{id}/questions end point. qid Show Optional Fields question[text]
String Label of your question question[text] question[order]
String Order defines the location of the question in the form. question[order]
question[name]
String Slug of question label question[name]     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /FORM/{ID}/QUESTION/{QID}


DELETE FORM QUESTION

Delete a single form question.


curl -X DELETE "https://apijotform.precisionglassandshower1.com/form/{formID}/question/{questionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->deleteFormQuestion("FORM ID", "QUESTION ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject result = client.deleteFormQuestion("FORM ID", "QUESTION ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
result = jotformAPI.delete_form_question("FORM ID", "QUESTION ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
result := client.DeleteFormQuestion("FORM ID", "QUESTION ID")



JF.deleteFormQuestion(formID, questionID, function(response){
/**
successful response including response message
.
*/
document.write(response);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var result = jotformAPIClient.deleteFormQuestion("FORM ID", "QUESTION ID");



jotform = JotForm.new("APIKey")
response = jotform.deleteFormQuestion("FORM-ID", "QUESTION-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val result = client.deleteFormQuestion("FORM ID", "QUESTION ID");


Sample Response
 * Minimize
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": "QuestionID #{QuestionID} successfully deleted.",
"limit-left": 9953
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms.
Example: 31974353596870 id qid
String Question ID: You can get question IDs when you call /form/{id}/questions.
Example: 2 qid     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/PROPERTIES


GET FORM PROPERTIES

Get a list of all properties on a form.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/properties?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$properties = $jotformAPI->getFormProperties("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject properties = client.getFormProperties("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
properties = jotformAPI.get_form_properties("FORM ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
properties := client.GetFormProperties("FORM ID")



JF.getFormProperties(formID, function(response){
/**
successful response including form properties
.
*/
document.write(response.alignment);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var properties = jotformAPIClient.getFormProperties("FORM ID");



jotform = JotForm.new("APIKey")
properties = jotform.getFormProperties("FORM-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val properties = client.getFormProperties("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Form ID.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * emails is the notifications array of the form.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * formStrings contains messages of your form for your users.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "31774828724868",
"formWidth": "690",
"activeRedirect": "default",
"alignment": "Left",
"defaultEmailAssigned": "Yes",
"expireDate": "No Limit",
"font": "Lucida Grande",
"fontcolor": "#555",
"fontsize": "14",
"hash": "6t6ch3o90",
"hideMailEmptyFields": "disable",
"highlightLine": "Enabled",
"labelWidth": "150",
"limitSubmission": "No Limit",
"lineSpacing": "12",
"messageOfLimitedForm": "This form is currently unavailable!",
"optioncolor": "#000",
"pagetitle": "Form",
"sendpostdata": "No",
"styles": "nova",
"unique": "None",
"uniqueField": "",
"autoFill": {
"bindChange": "on",
"menu": "disable",
"timeout": "4",
"ttl": "86400"
},
"emails": {
"body": "\nQuestion\t\t Answer\t\t \nFull Name\t\t {fullName3}\t\t \nE-mail\t\t {email5}\t\t \nAddress\t\t {address4}\t\t \n",
"dirty": "1",
"disabled": "",
"from": "default|",
"html": "",
"name": "Notification",
"replyTo": "none",
"subject": "New submission: {form_title}",
"to": "johnsmith@example.com",
"type": "notification"
},{
"body": "\n\n\n&nbsp;\n\n\n\n\n\n\n&nbsp;\n\n&nbsp;\n\n\n\n\n\n\n&nbsp;\n\n\nQuestion\nAnswer\n\n\nFull Name{fullName1}\n\nE-mail{email3}\n\n\n&nbsp;\n\n\n&nbsp;\n&nbsp;\n&nbsp;\n\n\n\n\n\n\n&nbsp;\n\n\n\n\&nbsp;",
"dirty": "",
"disabled": "",
"from": "none|noreply@jotform.com",
"html": "1",
"name": "Auto Responder",
"replyTo": "johnsmith@example.com",
"subject": "Auto Responder",
"to": "{email3}",
"type": "autorespond"
},
"formStrings": {
"alphabetic": "This field can only contain letters",
"alphanumeric": "This field can only contain letters and numbers.",
"confirmClearForm": "Are you sure you want to clear the form?",
"confirmEmail": "E-mail does not match",
"email": "Enter a valid e-mail address",
"gradingScoreError": "Score total should only be less than or equal to",
"incompleteFields": "There are incomplete required fields. Please complete them.",
"inputCarretErrorA": "Input should not be less than the minimum value:",
"inputCarretErrorB": "Input should not be greater than the maximum value:",
"lessThan": "Your score should be less than or equal to",
"maxDigitsError": "The maximum digits allowed is",
"numeric": "This field can only contain numeric values",
"pleaseWait": "Please wait...",
"required": "This field is required.",
"requireEveryRow": "Every row is required.",
"requireOne": "At least one field required.",
"submissionLimit": "Sorry! Only one entry is allowed.  Multiple submissions are disabled for this form.",
"uploadExtensions": "You can only upload following files:",
"uploadFilesize": "File size cannot be bigger than:"
}
},
"limit-left": 9998
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/PROPERTIES


ADD OR EDIT PROPERTIES OF A SPECIFIC FORM

Edit a form property or add a new one.


curl -X POST -d "properties[thankurl]=http://www.newthankyoupage.com" -d "properties[activeRedirect]=thankurl" -d "properties[formWidth]=650" -d "properties[labelWidth]=150" -d "https://apijotform.precisionglassandshower1.com/form/{formID}/properties?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$formProperties = array(
'thankurl' => 'http://www.newthankyoupage.com',
'activeRedirect' => 'thankurl',
'formWidth' => '650',
'labelWidth' => '150',
'styles' => 'nova',
);
$response = $jotformAPI->setFormProperties("FORM ID", $formProperties);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("thankurl", "http://www.newthankyoupage.com");
formProperties.put("activeRedirect", "thankurl");
formProperties.put("formWidth", "650");
formProperties.put("labelWidth", "150");
formProperties.put("styles", "nova");
JSONObject response = client.setFormProperties("FORM ID", formProperties);






client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
formProperties := map[string]string {
"thankurl": "http://www.newthankyoupage.com",
"activeRedirect": "thankurl",
"formWidth": "650",
"labelWidth": "150",
"styles": "nova",
}
response := client.SetFormProperties("FORM ID", formProperties)



properties = new Object();
properties['alignment'] = 'Left';
properties['formWidth'] = '500';
JF.setFormProperties(formID, properties, function(response){
/**
successful response including new form properties
*/
document.write(response.alignment);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> formProperties = new Dictionary<string, string>();
formProperties.Add("thankurl", "http://www.newthankyoupage.com");
formProperties.Add("activeRedirect", "thankurl");
formProperties.Add("formWidth", "650");
formProperties.Add("labelWidth", "150");
formProperties.Add("styles", "nova");
var response = jotformAPIClient.setFormProperties("FORM ID", formProperties);



jotform = JotForm.new("APIKey")
formProperties = {
'thankurl' => 'http://www.newthankyoupage.com', 
'activeRedirect' => 'thankurl', 
'formWidth' => '650', 
'labelWidth' => '150', 
'styles' => 'nova'
}
response = jotform.setFormProperties("FORM-ID", formProperties)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val formProperties = Map("thankurl" -> "http://www.newthankyoupage.com", "activeRedirect" -> "default", "formWidth" -> "650", "labelWidth" -> "150", "styles" -> "nova")
val response = client.setFormProperties("FORM ID", formProperties)


Sample Response
 * Minimize
 *  
 *  
 * content: edited property keys and their new values
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"thankurl": "http://www.newthankyoupage.com",
"activeRedirect": "default",
"formWidth": "650",
"labelWidth": "150",
"styles": "nova"
},
"limit-left": 9998
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id Show Optional Fields
properties[thankurl]
String Redirect user to a page after submission properties[thankurl]
properties[activeRedirect]
Enum What happens when someone submits the form. default shows them a default
thank you message. thanktext and thankurl allows you to customize the thank you
message or redirect user to another page. properties[activeRedirect] default
thanktext thankurl properties[formWidth]
String Resize form width properties[formWidth] properties[labelWidth]
String Resize question label width properties[labelWidth]     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /FORM/{ID}/PROPERTIES


ADD OR EDIT PROPERTIES OF A SPECIFIC FORM

Edit a form property or add a new one.


curl -X PUT -d '{"properties":{"activeRedirect":"default","formWidth":"650","labelWidth":"150"}}' "https://apijotform.precisionglassandshower1.com/form/{formID}/properties?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$formProperties = array(
'properties' => array(
'activeRedirect' => 'default',
'formWidth' => '650',
'labelWidth' => '150',
'styles' => 'nova',
),
);
$data = json_encode($formProperties);
/* $data needs to be json
{
"properties":{
"activeRedirect":"default",
"formWidth":"650",
"labelWidth":"150",
"styles":"nova"
}
}
*/
$response = $jotformAPI->setMultipleFormProperties("FORM ID", $data);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> formProperties = new HashMap<String, String>();
formProperties.put("activeRedirect", "default");
formProperties.put("formWidth", "650");
formProperties.put("labelWidth", "100");
formProperties.put("styles", "nova");
Map properties = new HashMap();
properties.put("properties", formProperties);
JSONObject data = new JSONObject(properties);
/* data needs to be json
{
"properties":{
"activeRedirect":"default",
"formWidth":"650",
"labelWidth":"150",
"styles":"nova"
}
}
*/
JSONObject response = client.setMultipleFormProperties("FORM ID", data);



jotformAPI = JotformAPIClient("YOUR API KEY")
form_properties = {
'properties': {
'activeRedirect': 'default',
'formWidth': '650',
'labelWidth': '150',
'styles': 'nova'
}
}
data = json.dumps(form_properties)
''' data needs to be json
{
"properties":{
"activeRedirect":"default",
"formWidth":"650",
"labelWidth":"150",
"styles":"nova"
}
}
'''
response = jotformAPI.set_multiple_form_properties('FORM ID', data)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
formProperties := map[string]string {
"activeRedirect": "default",
"formWidth": "650",
"labelWidth": "150",
"styles": "nova",
}
properties := make(map[string]interface{})
properties["properties"] = formProperties
data, err := json.Marshal(properties)
/* data needs to be json
{
"properties":{
"activeRedirect":"default",
"formWidth":"650",
"labelWidth":"150",
"styles":"nova"
}
}
*/
if err == nil {
response := client.SetMultipleFormProperties("FORM ID", data)
}



propertiesArray = new Array({
"activeRedirect": "default", 
"alignment": "Left", 
"formWidth": "600", 
"styles":"nova"
});
jsonData = JSON.stringify({ "properties" : propertiesArray});
JF.setMultipleFormProperties(formID, jsonData, function(response){
/**
successful response including form properties
*/
document.write(response.alignment);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> formProperties = new Dictionary<string, string>();
formProperties.Add("activeRedirect", "default");
formProperties.Add("formWidth", "650");
formProperties.Add("labelWidth", "150");
formProperties.Add("styles", "nova");
Dictionary<String, Dictionary<string, string>> propertiesObject = new Dictionary<string, Dictionary<string, string>>();
propertiesObject.Add("properties", formProperties);
var response = client.setMultipleFormProperties("FORM ID", JsonConvert.SerializeObject(propertiesObject, Formatting.Indented));



require 'json'
jotform = JotForm.new("APIKey")
formProperties = {
"properties" => {
'thankurl' => 'http://www.newthankyoupage.com', 
'activeRedirect' => 'thankurl', 
'formWidth' => '650', 
'labelWidth' => '150', 
'styles' => 'nova'
}
}
data = formProperties.to_json
response = jotform.setFormProperties("FORM-ID", data)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val formProperties: HashMap[String, String] = new HashMap[String, String]()
formProperties.put("activeRedirect", "default")
formProperties.put("formWidth", "650")
formProperties.put("labelWidth", "100")
formProperties.put("styles", "nova")
val properties: HashMap[String, Object] = new HashMap[String, Object]()
properties.put("properties", formProperties)
val data: JSONObject = new JSONObject(properties)
/* data needs to be json
{
"properties":{
"activeRedirect":"default",
"formWidth":"650",
"labelWidth":"150",
"styles":"nova"
}
}
*/
val response = client.setMultipleFormProperties("FORM ID", data)


Sample Response
 * Minimize
 *  
 *  
 * content: edited property keys and their values
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"messageOfLimitedForm": "Limit reached!",
"labelWidth": "100"
},
"limit-left": 9952
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID: You can get form IDs when you call /user/forms. Question ID: You
can get question IDs when you call /form/{id}/questions. id formProperties
JSON New properties like label width and style. formProperties     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/PROPERTIES/{KEY}


GET A FORM PROPERTY

Get a specific property of the form.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/properties/{propertyKey}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$property = $jotformAPI->getFormProperty("FORM ID", "PROPERTY KEY");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject property = client.getFormProperty("FORM ID", "PROPERTY KEY");



jotformAPI = JotformAPIClient("YOUR API KEY")
property = jotformAPI.get_form_property("FORM ID", "PROPERTY KEY")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
property := client.GetFormProperty("FORM ID", "PROPERTY KEY")



var key = 'labelWidth';
JF.getFormProperty(formID, key, function(response){
/**
successful response including given form property
.
*/
document.write(response[key]);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var property = jotformAPIClient.getFormProperty("FORM ID", "PROPERTY KEY");



jotform = JotForm.new("APIKey")
properties = jotform.getFormProperty("FORM-ID", "PROPERTY-KEY")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
client property = client.getFormProperty("FORM ID", "PROPERTY KEY")


Sample Response
 * Minimize
 *  
 *  
 * content contains your requested property key in the request
   (Ex. formWidth)
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"formWidth": "690"
},
"limit-left": 9997
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id key
String Property key
You can find property descriptions at property list of the form. key fontsize
options hideMailEmptyFields limitSubmission messageOfLimitedForm sendpostdata
activeRedirect alignment expireDate font fontcolor formWidth highlightLine
labelWidth lineSpacing pagetitle styles thanktext unique uniqueField background
secure expiredDate injectCSS disabled thankurl     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/REPORTS


GET FORM REPORTS

Get all the reports of a specific form.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/reports?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$reports = $jotformAPI->getFormReports("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject response = client.getFormReports("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
reports = jotformAPI.get_form_reports("FORM ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
response := client.GetFormReports("FORM ID")



JF.getFormReports(formID, function(response){
/**
successful response including form reports.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].id);
} 
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var response = jotformAPIClient.getFormReports("FORM ID");



jotform = JotForm.new("APIKey")
response = jotform.getFormReports("FOLDER-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val response = client.getFormReports("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 *  
 * id is report ID.
 *  
 *  
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * fields is a comma separated list of all fields.
 * list_type can be excel, csv, grid, table, calendar, rss or visual.
 * status can be ENABLED or DELETED
 *  
 * isProtected is true if password protected
 *  
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
{
"id": "REPORT ID",
"form_id": "FORM ID",
"title": "Report",
"created_at": "2013-09-03 02:39:55",
"updated_at": null,
"url": "http://www.jotform.com/report/REPORT ID",
"isProtected": false
},
{
"id": "REPORT ID",
"form_id": "FORM ID",
"title": "Table Report",
"fields": "ip,dt,1,2",
"list_type": "table",
"status": "ENABLED",
"url": "http://www.jotform.com/table/REPORT ID",
"isProtected": false,
"settings": "{\"displayImgRaw\":{\"toggle\":\"show\",\"checked\":\"no\"}}",
"created_at": "2013-09-03 02:39:45",
"updated_at": null
}
],
"limit-left": 9962
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/REPORTS


CREATE REPORT

Create new report of a form with intended fields, type and title.


curl -X POST -d "title=Report Title" -d "list_type=grid" -d "fields=ip,dt,1" "https://apijotform.precisionglassandshower1.com/form/{formID}/reports?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$report = array(
"title" => "REPORT TITLE",
"list_type" => "REPORT TYPE",
"fields" => "ip, dt, 1"
);
$response = $jotformAPI->createReport("FORM ID", $report);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap report = new HashMap();
report.put("title", "REPORT TITLE");
report.put("list_type", "REPORT TYPE");
report.put("fields", "ip, dt, 1");
JSONObject response = client.createReport("FORM ID", report);



jotformAPI = JotformAPIClient("YOUR API KEY")
report = {'title': 'REPORT TITLE', 'list_type': 'REPORT TYPE', 'fields': 'ip, dt, 1'}
response = jotformAPI.create_report("FORM ID", report)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
report := make(map[string]string)
report["title"] = "REPORT TITLE"
report["list_type"] = "REPORT TYPE"
report["fields"] = "ip, dt, 1"
response := jotformAPI.CreateReport("FORM ID", report)



var report = {
title: 'Report Title',
list_type: 'excel', //grid, excel, table, csv, rss
fields: 'ip,dt', //ip - IP Address, submission date, question ID's
};
JF.createReport(formID, report, function(response){
/**
successful response including the created report object
*/
document.write(response.title);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary report = new Dictionary();
report.Add("title", "REPORT TITLE");
report.Add("list_type", "REPORT TYPE");
report.Add("fields", "ip, dt, 1");
var response = client.createReport("FORM ID", report);



jotform = JotForm.new("APIKey")
report = {
"title" => "REPORT-TITLE", 
"list_type" => "REPORT-TYPE",
"fields" => "ip, dt, 1"
}
response = jotformAPI.createReport("FORM-ID", report)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val report = Map("title" -> "REPORT TITLE", "list_type" -> "REPORT TYPE", "fields" -> "ip, dt, 1")
val response = client.createReport("FORM ID", report)


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is report ID.
 *  
 *  
 * fields is a comma separated list of all fields.
 * list_type can be excel, csv, grid, table, calendar, rss or visual.
 * status can be ENABLED or DELETED
 *  
 * isProtected is true if password protected
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "REPORT ID",
"form_id": "FORM ID",
"title": "REPORT TITLE",
"fields": "dt,ip",
"list_type": "REPORT TYPE",
"status": "ENABLED",
"url": "http://www.jotform.com/{reportType}/{reportID}",
"isProtected": false
},
"limit-left": 9973
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id title
String Report title title list_type
String Report type list_type csv excel grid table rss Show Optional Fields
fields
String Report fields.
User IP, submission date (dt) and question IDs. fields     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/FILES


GET FORM UPLOADS

List of files uploaded on a form. Here is how you can access a particular file:
https://www.jotform.com/uploads/{username}/{form-id}/{submission-id}/{file-name}.
Size and file type is also included.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/files?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$files = $jotformAPI->getFormFiles("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject files = client.getFormFiles("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
files = jotformAPI.get_form_files("FORM ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFormFiles(formID)
.then(function(r){
/**
successful response including files of form with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
files := client.GetFormFiles("FORM ID")



JF.getFormFiles(formID, function(response){
/**
successful response including files of form with given id
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].name);
} 
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var files = jotformAPIClient.getFormFiles();



jotform = JotForm.new("APIKey")
files = jotform.getFormFiles()



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val files = client.getFormFiles()


Sample Response
 * Minimize
 *  
 *  
 *  
 *  
 * name is file name
 * type is file type
 * size is in bytes
 *  
 *  
 *  
 * date: YYYY-MM-DD HH:MM:SS
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
{
"name": "picture.png",
"type": "image/png",
"size": "9692",
"username": "johnsmith",
"form_id": "31754366679872",
"submission_id": "237977932346236318",
"date": "2013-06-25 09:58:52",
"url": "http://www.jotform.com/uploads/johnsmith/31754366679872/237977932346236318/screen.png",
}
],
"limit-left": 9962
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/WEBHOOKS


LIST OF WEBHOOKS FOR A FORM

Webhooks can be used to send form submission data as an instant notification.
Returns list of webhooks for this form.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/webhooks?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$webhooks = $jotformAPI->getFormWebhooks("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject webhooks = client.getFormWebhooks("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
webhooks = jotformAPI.get_form_webhooks("FORM ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFormWebhooks(formID)
.then(function(r){
/**
successful response including user subusers data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
webhooks := client.GetFormWebhooks("FORM ID")



JF.getFormWebhooks(formID, function(response){
/**
successful response including user subusers data
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i]);
}
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var webhooks = jotformAPIClient.getFormWebhooks("FORM ID");



jotform = JotForm.new("APIKey")
webhooks = jotform.getFormWebhooks("#formID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val webhooks = client.getFormWebhooks("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * content: Webhook URL list of form
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode":200,
"message":"success",
"content":{
"0": "http://www.example.com/instant_submission_notification.php",
"1": "http://www.example.com/notify.php"
},
"limit-left":9959
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/WEBHOOKS


ADD A NEW WEBHOOK

Webhooks can be used to send form submission data as an instant notification.


curl -X POST -d "webhookURL=http://my.domain.tld/connect-to-DB.ext" "https://apijotform.precisionglassandshower1.com/form/{formID}/webhooks?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->createFormWebhook("FORM ID", "http://www.example.com/notify.php");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject result = client.createFormWebhook("FORM ID", "http://www.example.com/notify.php");



jotformAPI = JotformAPIClient("YOUR API KEY")
result = jotformAPI.create_form_webhook("FORM ID", "http://www.example.com/notify.php")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.createFormWebhook(formID, webhookURL)
.then(function(r){
/**
successful response including user subusers data
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
result := client.CreateFormWebhook("FORM ID", "http://www.example.com/notify.php")



JF.createFormWebhook(formID, webhookUrl, function(response){
/**
successful response including form's webhook Urls
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i]);
}
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var result = jotformAPIClient.createFormWebhook("FORM ID", "http://www.example.com/notify.php");



jotform = JotForm.new("APIKey")
result = jotform.createFormWebhook("#formID", "http://www.example.com/notify.php")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val result = client.createFormWebhook("FORM ID", "http://www.example.com/notify.php")


Sample Response
 * Minimize
 *  
 *  
 *  
 * content: Webhook URL list of form
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
"0": "http://newly.added.webhook.tld/notification.php",
"1": "http://www.example.com/instant_submission_notification.php"
],
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id webhookURL
String Webhook URL is where form data will be posted when form is submitted.
Example: http://my.web.tld/handle.php webhookURL     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /FORM/{ID}/WEBHOOKS/{WHID}


DELETE A WEBHOOK OF A SPECIFIC FORM

Delete a webhook of a specific form


curl -X DELETE "https://apijotform.precisionglassandshower1.com/form/{formID}/webhooks/{webhookID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->deleteFormWebhook("FORM ID", "WEBHOOK ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject result = client.deleteFormWebhook("FORM ID", "WEBHOOK ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
result = jotformAPI.delete("FORM ID", "WEBHOOK ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
result := client.DeleteFormWebhook("FORM ID", "WEBHOOK ID")



webhookID = '0'; //The very first one
JF.deleteFormWebhook(formID, webhookID, function(response){
/**
successful response including form's webhook Urls
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i]);
}
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var response = jotformAPIClient.deleteFormWebhook("FORM ID", "WEBHOOK ID");





val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val response = client.deleteFormWebhook("FORM ID", "WEBHOOK ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * content: Remaining webhook URLs of form
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
"0": "http://newly.added.webhook.tld/notification.php",
"1": "http://www.example.com/instant_submission_notification.php"
],
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id webhookID
String Webhook URL is where form data will be posted when form is submitted. You
can get webhook IDs when you call /form/{formID}/webhooks.
Example: 0 webhookID     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FORM/{ID}/SUBMISSIONS


GET FORM SUBMISSIONS

List of form responses. answers array has the submitted data. Created_at is the
date of the submission.


curl -X GET "https://apijotform.precisionglassandshower1.com/form/{formID}/submissions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$submissions = $jotformAPI->getFormSubmissions("FORM ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject submissions = client.getFormSubmissions("FORM ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
submissions = jotformAPI.get_form_submissions("FORM ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFormSubmissions(formID)
.then(function(r){
/**
successful response including submissions of form with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
submissions := client.GetFormSubmissions("FORM ID")



JF.getFormSubmissions(formID, function(response){
/**
successful response including submissions of form with given id
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].answers);
} 
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var submissions = jotformAPIClient.getFormSubmissons("FORM ID");



jotform = JotForm.new("APIKey")
submissions = jotform.getFormSubmissons("#formID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val submissions = client.getFormSubmissons("FORM ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Submission ID
 *  
 * ip address of the submitter
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * status can be ACTIVE or OVERQUOTA
 * new is 1 if this submission is not read
 *  
 *  
 * text is the question label on the form
 * type is the question type such as textbox or dropdown
 * answer is the actual entry made by the submitter
 *  
 *  
 *  
 *  
 *  
 *  
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 *  
 *  
 *  
 * workflowStatus has only shown if the form is connected to any workflow.
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{
"id": "237955080346633702",
"form_id": "31751954731962",
"ip": "123.123.123.123",
"created_at": "2013-06-25 03:38:00",
"updated_at": "2013-06-27 04:58:00",
"status": "ACTIVE",
"new": "1",
"answers": {
"3": {
"text": "Name",
"type":"control_fullname",
"answer": {
"first": "Bart",
"last": "Simpson"
},
"prettyFormat": "Bart Simpson"
},
"4": {
"text": "Your Message",
"type": "control_textarea",
"answer":"¡Ay, caramba!"
}
},
"workflowStatus": "Approve"
}],
"limit-left": 9991
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id Show Optional Fields offset
Number Start of each result set for form list. Useful for pagination. Default is
0.
Example: 20 offset limit
Number Number of results in each result set for form list. Default is 20.
Maximum is 1000.
Example: 30 limit filter
jsonString Filters the query results to fetch a specific submissions range.
Example: {"id:gt":"31974353596870"}
You can also use gt(greater than), lt(less than), ne(not equal to) commands to
get more advanced filtering :
Example: {"created_at:gt":"2013-01-01 00:00:00"}
Example: {"workflowStatus:ne":"Approve"} filter orderby
Enum Order results by a form field name: id, username, title, status(ENABLED,
DISABLED, DELETED), created_at, updated_at, new (unread submissions count),
count (all submissions count), slug (used in form URL).
Example: created_at orderby id username title status created_at updated_at new
count slug     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FORM/{ID}/SUBMISSIONS


ADD A SUBMISSION TO THE FORM

Submit data to this form using the API. You should get a list of question IDs
from form/{id}/questions and send the submission data with qid.


curl -X POST -d "submission[1]=answer of Question 1" -d "submission[2_first]=First Name" -d "submission[2_last]=Last Name" "https://apijotform.precisionglassandshower1.com/form/{formID}/submissions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$submission = array(
"1" => "answer of Question 1",
"2_first" => "First Name",
"2_last" => "Last Name"
);
$result = $jotformAPI->createFormSubmission("FORM ID", $submission);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> submission = new HashMap<String, String>();
submission.put("1", "answer of Question 1");
submission.put("2_first","First Name");
submission.put("2_last", "Last Name");
JSONObject submissions = client.createFormSubmission("FORM ID", submission);



jotformAPI = JotformAPIClient("YOUR API KEY")
submission = {'1': 'answer of Question 1', '2_first': 'First Name', '2_last': 'Last Name'}
response = jotformAPI.create_form_submission("FORM ID", submission)



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.createFormSubmission(formID, submissions)
.then(function(r){
/**
successful response including submissions of form with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
newSubmission := map[string]string {
"1": "answer of Question 1"
"2_first": "First Name",
"2_last": "Last Name",
}
result := client.CreateFormSubmissions("FORM ID", newSubmission)



submission = new Object();
submission['1'] = 'Answer 1';
submission['2'] = 'Answer 2';
JF.createFormSubmission(formID, submission, function(response){
/**
successful response including new submission
.
*/
document.write(response.URL);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> submission = new Dictionary<string, string>();
submission.Add("1", "answer of Question 1");
submission.Add("2_first", "First Name");
submission.Add("2_last", "Last Name");
var result = jotformAPIClient.createFormSubmission("FORM ID", submission);



jotform = JotForm.new("APIKey")
submission = {
"3" => "Answer of Question 3",
"4_first" => "First Name",
"4_last" => "Last Name"
}
result = jotform.createFormSubmissions("#formID", submission)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val submission = Map("1" -> "answer of Question 1", "2_first" -> "First Name", "2_last" -> "Last Name")
val result = client.createFormSubmission("FORM ID", submission)


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Submission ID
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"submissionID": "SUBMISSION ID",
"URL": "https://apijotform.precisionglassandshower1.com/submission/SUBMISSION ID"
},
"limit-left": 9966
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id submission[1]
String Data entered in question 1. You should first get a list of question IDs
from form/{id}/questions. Or, look at the source code of the form.
Example: john@example.com submission[1] Show Optional Fields
submission[2][first]
String Data entered in question 2. In this example the second question is a full
name question. So, there are two fields in this question: firstName and
lastName. These fields can be found by looking at the source code of the form.
Example: John submission[2][first] submission[2][last]
String Data entered in the second part of question 2.
Example: Smith submission[2][last] submission[3]
String Data entered in question 3. (You should get a list of question IDs from
form/{id}/questions)
Example: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. submission[3]    
Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /FORM/{ID}/SUBMISSIONS


ADD SUBMISSIONS TO THE FORM

Submit data to this form using the API. You should get a list of question IDs
from form/{id}/questions and send the submission data with qid.


curl -X PUT -d '[{"1":{"text":"answer of Question 1"},"2":{"text":"answer of Question 2"}},{"1":{"text":"answer of Question 1"},"2":{"text":"answer of Question 2"}}]' "https://apijotform.precisionglassandshower1.com/form/{formID}/submissions?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$submission = array(
// First submission
array(
"1" => array(
"text" => "answer of Question 1",
),
"2" => array(
"text" => "answer of Question 2",
)
),
//Second submission
array(
"1" => array(
"text" => "answer of Question 1",
),
"2" => array(
"text" => "answer of Question 2",
)
)
);
$data = json_encode($submission);
/*$data needs to be json
[
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
},
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
}
]
*/
$response = jotformAPI->createFormSubmissions("FORM ID", $data);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
// First submission
HashMap answer1_1 = new HashMap();
answer1_1.put("text", "answer of Question 1");
HashMap answer1_2 = new HashMap();
answer1_2.put("text", "answer of Question 2");
Map submission1 = new HashMap();
submission1.put("1", answer1_1);
submission1.put("2", answer1_2);
// Second submission
HashMap answer2_1 = new HashMap();
answer2_1.put("text", "answer of Question 1");
HashMap answer2_2 = new HashMap();
answer2_2.put("text", "answer of Question 2");
Map submission2 = new HashMap();
submission2.put("1", answer2_1);
submission2.put("2", answer2_2);
Map submissions=new HashMap();
submissions.put("1", submission1);
submissions.put("2", submission2);
JSONObject data = new JSONObject(submissions);
/*data needs to be json
[
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
},
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
}
]
*/
JSONObject response = client.createFormSubmissions("FORM ID", data);



jotformAPI = JotformAPIClient("YOUR API KEY")
// First submission
answer1_1 = {'text': 'answer of Question 1'}
answer1_2 = {'text': 'answer of Question 2'}
submission1 = {'1': answer1_1, '2': answer1_2}
// Second submission
answer2_1 = {'text': 'answer of Question 1'}
answer2_2 = {'text': 'answer of Question 2'}
submission2 = {'1': answer2_1, '2': answer2_2}
submissions = []
submissions.append(submission1)
submissions.append(submission2)
data = json.dumps(submission)
'''data needs to be json
[
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
},
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
}
]
'''
submissions = jotformAPI.create_form_submissions("FORM ID", data)





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
// First submission
answer1_1 := make(map[string]string)
answer1_1["text"] = "answer of Question 1"
answer1_2 := make(map[string]string)
answer1_2["text"] = "answer of Question 2"
submission1 := make(map[string]interface{})
submission1["1"] = answer1_1
submission1["2"] = answer1_2
// Second submission
answer2_1 := make(map[string]string)
answer2_1["text"] = "answer of Question 1"
answer2_2 := make(map[string]string)
answer2_2["text"] = "answer of Question 2"
submission2 := make(map[string]interface{})
submission2["1"] = answer2_1
submission2["2"] = answer2_2
var submissions [2]map[string]interface{}
submissions[0] = submission1
submissions[1] = submission2
data, err := json.Marshal(submissions)
/*data needs to be json
[
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
},
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
}
]
*/
if err == nil {
response := client.CreateFormSubmissions("FORM ID", data)
}



submissionsArray = new Array({
"1": {"text": "Answer 11"}, 
"2": {"text": "Answer 12"}
},{
"1": {"text": "Answer 21"}, 
"2": {"text": "Answer 22"}
});
jsonData = JSON.stringify(submissionsArray);
JF.createFormSubmissions(formID, jsonData, function(response){
/**
successful response including new submissions
*/
for(var i=0; i<response.length; i++){
document.write(response[i].URL);
}
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
// First submission
Dictionary<string, string> answer1_1 = new Dictionary<string, string>();
answer1_1.Add("text", "answer of Question 1");
Dictionary<string, string> answer1_2 = new Dictionary<string, string>();
answer1_2.Add("text", "answer of Question 2");
Dictionary<string, string>[] submission1 = new Dictionary<string, string>[2];
submission1[0] = answer1_1;
submission1[1] = answer1_2;
// Second submission
Dictionary<string, string> answer2_1 = new Dictionary<string, string>();
answer2_1.Add("text", "answer of Question 1");
Dictionary<string, string> answer2_2 = new Dictionary<string, string>();
answer2_2.Add("text", "answer of Question 2");
Dictionary<string, string>[] submission2 = new Dictionary<string, string>[2];
submission2[0] = answer2_1;
submission2[1] = answer2_2;
Dictionary<string, string>[][] submissions = new Dictionary<string, string>[][] {submission1, submission2};
string data = JsonConvert.SerializeObject(submissions);
var response = client.createFormSubmissions("FORM ID", data);



jotform = JotForm.new("APIKey")
properties = jotform.getFormProperty("FORM-ID", "PROPERTY-KEY")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
// First submission
val answer1_1: HashMap[String, String]  = new HashMap[String, String]()
answer1_1.put("text", "answer of Question 1")
val answer1_2: HashMap[String, String] = new HashMap[String, String]()
answer1_2.put("text", "answer of Question 2")
val submission1: HashMap[String, Object] = new HashMap[String, Object]()
submission1.put("1", answer1_1)
submission1.put("2", answer1_2)
// Second submission
val answer2_1: HashMap[String, String] = new HashMap[String, String]()
answer2_1.put("text", "answer of Question 1")
val answer2_2: HashMap[String, String] = new HashMap[String, String]()
answer2_2.put("text", "answer of Question 2")
val submission2: HashMap[String, Object] = new HashMap[String, Object]()
submission2.put("1", answer2_1)
submission2.put("2", answer2_2)
val submissions: Map[String, Object] = new HashMap[String, Object]()
submissions.put("1", submission1)
submissions.put("2", submission2)
val data: JSONObject = new JSONObject(submissions)
/*data needs to be json
[
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
},
{
"1":{
"text":"answer of Question 1"
},
"2":{
"text":"answer of Question 2"
}
}
]
*/
var response = client.createFormSubmissions("FORM ID", data)


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Submission ID
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [
{
"submissionID": "SUBMISSION ID",
"URL": "https://apijotform.precisionglassandshower1.com/submission/SUBMISSION ID"
},
{
"submissionID": "SUBMISSION ID",
"URL": "https://apijotform.precisionglassandshower1.com/submission/SUBMISSION ID"
}
],
"limit-left": 9973
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Form ID is the numbers you see on a form URL:
https://www.jotformpro.com/form/30693660548966. id submission
JSON Submission data with question IDs. submission     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /SUBMISSION/{ID}


GET SUBMISSION DATA

Similar to /form/{form-id}/submissions. But only get a single submission.


curl -X GET "https://apijotform.precisionglassandshower1.com/submission/{submissionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$submission = $jotformAPI->getSubmission("SUBMISSION ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject submission = client.getSubmission("SUBMISSION ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
submission = jotformAPI.get_submission("SUBMISSION ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getSubmission(sid)
.then(function(r){
/**
successful response including submission data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
submission := client.GetSubmission("SUBMISSION ID")



JF.getSubmission(sid, function(response){
/**
successful response including submission data with given id
.
*/
document.write(response.id);
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var submission = jotformAPIClient.getSubmission("SUBMISSION ID");



jotform = JotForm.new("APIKey")
submission = jotform.getSubmission("#submissionID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val submission = client.getSubmission("SUBMISSION ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is the Submission ID
 *  
 * ip address of the submitter
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * status can be ACTIVE or OVERQUOTA
 * new is 1 if this submission is not read
 *  
 *  
 * text is the question label on the form
 * type is the question type such as textbox or dropdown
 * answer is the actual entry made by the submitter
 *  
 *  
 *  
 *  
 *  
 *  
 * Most commonly used types are control_textbox, control_textarea,
   control_dropdown control_radio, control_checkbox, control_fileupload,
   control_fullname, control_email and control_datetime. Full List
 *  
 *  
 * workflowStatus has only shown if the form is connected to any workflow.
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "237955080346633702",
"form_id": "31751954731962",
"ip": "123.123.123.123",
"created_at": "2013-06-25 03:38:00",
"updated_at": "2013-06-27 04:58:00",
"status": "ACTIVE",
"new": "1",
"answers": {
"3": {
"text": "Name",
"type":"control_fullname",
"answer": {
"first": "Bart",
"last": "Simpson"
},
"prettyFormat": "Bart Simpson"
},
"4": {
"text": "Your Message",
"type": "control_textarea",
"answer":"¡Ay, caramba!"
}
},
"workflowStatus": "Approve",
"limit-left": 9991
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Submission ID. You can get submission IDs when you call
/form/{id}/submissions. View submissions directly on a browser:
https://www.jotform.com/submission/235194815571509962.
Example: 235194815571509962 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /SUBMISSION/{ID}


EDIT SUBMISSION DATA

Edit a single submission.


curl -X POST -d "submission[1_first]=Johny" -d "submission[new]=1" -d "submission[flag]=0" "https://apijotform.precisionglassandshower1.com/submission/{submissionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->editSubmission("SUBMISSION ID", array("1_first" => "FIRST NAME", "new" => "0", "flag" => "0"));



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap<String, String> newSubmission = new HashMap<String, String>();
newSubmission.put("1_first","FIRST NAME");
newSubmission.put("new", "0");
newSubmission.put("flag", "0")
JSONObject result = client.editSubmission("SUBMISSION ID", newSubmission);



jotformAPI = JotformAPIClient("YOUR API KEY")
result = jotformAPI.edit_submission("SUBMISSION ID", {"1_first": "FIRST NAME", "new": "0", "flag": "0"})





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
newSubmission := map[string]string {
"1_first": "FIRST NAME",
"new": "0",
"flag": "0",
}
result := client.EditSubmission("SUBMISSION ID", newSubmission)



submission = new Object();
submission['1'] = 'New answer';
submission['new'] = '1'; //Mark as new
submission['flag'] = '1'; //Mark as flagged
JF.editSubmission(sid, submission, function(response){
/**
successful response including changed submission data
.
*/
document.write(response.submissionID);
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary<string, string> newSubmission = new Dictionary<string, string>();
newSubmission.Add("1_first", "FIRST NAME");
newSubmission.Add("new", "0");
newSubmission.Add("flag", "0");
var result = jotformAPIClient.editSubmission("SUBMISSION ID", newSubmission);



jotform = JotForm.new("APIKey")
submission = {
"1_first" => "FIRST NAME",
"new" => "0",
"flag"=> "0"
}
response = jotform.editSubmission("SUBMISSION-ID", submission)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val submission = Map("1_first" -> "FIRST NAME", "new" -> "0", "flag" -> "*")
val result = client.editSubmission("SUBMISSION ID", newSubmission)


Sample Response
 * Minimize
 *  
 *  
 * id is the Submission ID
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"submissionID": "{submissionID}",
"URL": "https://apijotform.precisionglassandshower1.com/submission/{submissionID}"
},
"limit-left": 9961
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Submission ID. You can get submission IDs when you call
/form/{id}/submissions. View submissions directly on a browser:
https://www.jotform.com/submission/235194815571509962.
Example: 235194815571509962 id Show Optional Fields submission[1][first]
String Data entered in question 1. In this example the first question is a full
name question. So, there are two fields in this question: firstName and
lastName. These fields can be found by looking at the source code of the form.
Example: John submission[1][first] submission[new]
String new is 1 if this submission is not read submission[new] submission[flag]
String flag is 1 if this submission is marked as flagged. submission[flag]    
Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /SUBMISSION/{ID}


DELETE SUBMISSION DATA

Delete a single submission.


curl -X DELETE "https://apijotform.precisionglassandshower1.com/submission/{submissionID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$result = $jotformAPI->deleteSubmission("SUBMISSION ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject result = client.deleteSubmission("SUBMISSION ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
result = jotformAPI.delete_submission("SUBMISSION ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
result := client.DeleteSubmission("SUBMISSION ID")



JF.deleteSubmission(sid, function(response){
/**
successful response including a text message
.
*/
document.write(response);
})



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var result = jotformAPIClient.deleteSubmission("SUBMISSION ID");



jotform = JotForm.new("APIKey")
response = jotform.deleteSubmission("SUBMISSION-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val result = client.deleteSubmission("SUBMISSION ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": "Submission #{submissionID} deleted successfully.",
"limit-left": 9965
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Submission ID. You can get submission IDs when you call
/form/{id}/submissions. View submissions directly on a browser:
https://www.jotform.com/submission/235194815571509962.
Example: 235194815571509962 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /REPORT/{ID}


GET REPORT DETAILS

Get more information about a data report.


curl -X GET "https://apijotform.precisionglassandshower1.com/report/{reportID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$report = $jotformAPI->getReport("REPORT ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject report = client.getReport("REPORT ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
report = jotformAPI.get_report("REPORT ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getReport(reportID)
.then(function(r){
/**
successful response including report data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
report := client.GetReport("REPORT ID")



JF.getReport(reportID, function(response){
/**
successful response including report data with given id
.
*/
for(var i=0; i<response.length; i++){
document.write(response[i].title);
}
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var report = jotformAPIClient.getReport("REPORT ID");



jotform = JotForm.new("APIKey")
report = jotform.getReport("#reportID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val report = client.getReport("REPORT ID");


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is report ID.
 *  
 *  
 * created_at, updated_at: YYYY-MM-DD HH:MM:SS
 *  
 * fields is a comma separated list of all fields.
 * list_type can be excel, csv, grid, table, calendar, rss or visual.
 * status can be ENABLED or DELETED
 *  
 * isProtected is true if password protected
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": [{ 
"id": "31673586029057",
"form_id": "31673104360950",
"title": "Report",
"created_at":"2013-06-17 08:11:49",
"updated_at":"2013-06-17 08:14:49",
"fields": "ip,dt,3,4",
"list_type": "excel",
"status": "ENABLED",
"url": "http://www.jotform.com/excel/31672077425051",
"isProtected": false 
}],
"limit-left": 4985
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Report ID. You can get a list of reports from /user/reports. For example,
you can see the report ID in this report URL:
https://www.jotform.com/rss/31753290421044
Example: 31753290421044 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /REPORT/{ID}


DELETE A REPORT

Delete an existing report.


curl -X DELETE "https://apijotform.precisionglassandshower1.com/report/{reportID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$response = $jotformAPI->deleteReport("REPORT ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject response = client.deleteReport("REPORT ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
response = jotformAPI.delete_report("REPORT ID")





client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
response := client.DeleteReport("REPORT ID")





var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var response = jotformAPIClient.deleteReport("REPORT ID");



jotform = JotForm.new("APIKey")
response = jotform.deleteReport("REPORT-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val response = client.deleteReport("REPORT ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": true,
"limit-left": 9998
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Report ID. You can get a list of reports from /user/reports. For example,
you can see the report ID in this report URL:
https://www.jotform.com/rss/31753290421044 id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /FOLDER/{ID}


GET FOLDER DETAILS

Get a list of forms in a folder, and other details about the form such as folder
color.


curl -X GET "https://apijotform.precisionglassandshower1.com/folder/{folderID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$folder = $jotformAPI->getFolder("FOLDER ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject folder = client.getFolder("FOLDER ID");



jotformAPI = JotformAPIClient("YOUR API KEY")
report = jotformAPI.get_folder("FOLDER ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.getFolder(folderID)
.then(function(r){
/**
successful response including report data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
report := client.GetFolder("FOLDER ID")



JF.getFolder(folderID, function(response){
/**
successful response including report data with given id
*/
document.write(response.name);
});



var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var folder = jotformAPIClient.getFolder("FOLDER ID");



jotform = JotForm.new("APIKey")
folder = jotform.getFolder("#folderID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val folder = client.getFolder("FOLDER ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is folder ID.
 * path is list of folders above this folder separated with comma.
 *  
 *  
 * parent is the next folder above. If this folder is a root folder parent
   returns itself.
 * forms lists all forms under this folder.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * subfolders lists all folders under this folder.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "507eb4d2ceae3f9674000000",
"path": "507eb4d2ceae3f9674000000",
"owner": "johnsmith",
"name": "Contact Forms", 
"parent": "507eb4d2ceae3f9674000000", 
"color": "rgb(94,94,94)", 
"forms": { 
"31504059977966": 
{
"id":"31504059977966",
"username":"johnsmith",
"title":"Contact Us",
"height":"501",
"status":"ENABLED",
"created_at":"2012-12-21 12:12:09",
"updated_at":"2013-04-12 02:16:44",
"new":"11",
"count":"11",
"source":"",
"slug":"23554898332968",
"url":"http://form.jotformpro.com/form/31504059977966"
}
},
"subfolders": [
{
"id": "907eb4d2ceae3f9674000000",
"path": "507eb4d2ceae3f9674000000,907eb4d2ceae3f9674000000",
"owner": "johnsmith",
"name": "Special Contact Forms", 
"parent": "507eb4d2ceae3f9674000000", 
"color": "rgb(95,95,95)",                 
"forms": [],
"subfolders": []
}
]
},
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String Folder ID. Get a list of folders from /user/folders id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






POST /FOLDER


CREATE FOLDER

Create a folder with specified parameters


curl -X POST -d "name={folderName}" -d "color={hexColorCode}" -d "parent={parentFolderID}" "https://apijotform.precisionglassandshower1.com/folder?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$folder = array(
"name" => "FOLDER-NAME",
"color" => "#FFFFFF",
"parent" => "PARENT-FOLDER-ID",
);
$response = $jotformAPI->createFolder($folder);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
HashMap folderProperties = new HashMap();
folderProperties.put("name", "FOLDER-NAME");
folderProperties.put("parent", "PARENT-FOLDER-ID");
folderProperties.put("color", "#FFFFFF");
JSONObject response = client.createFolder(folderProperties);



jotformAPI = JotformAPIClient("YOUR API KEY")
folder = {'name': 'FOLDER-NAME', 'color': '#FFFFFF', 'parent': 'PARENT-FOLDER-ID'}
response = jotformAPI.create_folder(folder)



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
folderProperties = {
"name": "FOLDER-NAME",
"color": "#FFFFFF",
"parent": "PARENT-FOLDER-ID"
}
jf.createFolder(folderProperties)
.then(function(r){
/**
successful response including report data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
folderProperties := map[string]string{
"name":  "FOLDER-NAME",
"color": "#FFFFFF",
"parent": "PARENT-FOLDER-ID"
}
folder := client.CreateFolder(folderProperties)





var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary folderProperties = new Dictionary();
folderProperties.Add("name", "FOLDER-NAME");
folderProperties.Add("color", "#FFFFFF");
folderProperties.Add("parent", "PARENT-FOLDER-ID");
var response = client.createFolder(folderProperties);



jotform = JotForm.new("APIKey")
folder = {
"name" => "FOLDER-NAME",
"parent" => "PARENT-FOLDER-ID",
"color" => "#FFFFFF"
}
response = jotform.createFolder(folder)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val folderProperties = Map("name" -> "FOLDER-NAME", "color" -> "#FFFFFF", "parent" -> "PARENT-FOLDER-ID")
val response = client.createFolder(folderProperties)


Sample Response
 * Minimize
 *  
 *  
 *  
 * id is folder ID.
 * path is list of folders above this folder separated with comma.
 *  
 *  
 * parent is the next folder above. If this folder is a root folder parent
   returns itself.
 * forms lists all forms under this folder.
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"id": "507eb4d2ceae3f9674000000",
"path": "507eb4d2ceae3f9674000000",
"owner": "johnsmith",
"name": "Contact Forms", 
"parent": "507eb4d2ceae3f9674000000", 
"color": "#26A4E5", 
"forms": null,
},
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey name
String Name of the folder name Show Optional Fields parent
String Parent id of the folder to be created parent color
String Color of the folder Example: #FFFFFF color     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






PUT /FOLDER/{ID}


UPDATE FOLDER

Update a folder with specified parameters. Also you can add forms to the folder.


curl -X PUT -d '{"name": "someFolderName", "color": "#FFFFFF", "forms": ["someFormID", "anotherFormID"]}' "https://apijotform.precisionglassandshower1.com/folder/{folderID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$folder = array(
"name" => "FOLDER-NAME",
"color" => "#FFFFFF",
"parent" => "PARENT-FOLDER-ID",
"forms" => array("SOME-FORM-ID", "ANOTHER-FORM-ID")
);
$data = json_encode($folder);
$response = $jotformAPI->updateFolder($folder);



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject folderProperties = new JSONObject();
folderProperties.put("name", "FOLDER-NAME");
folderProperties.put("color", "#000000");
folderProperties.put("parent", "PARENT-FOLDER-ID");
JSONArray formIDs = new JSONArray();
folderIDs.put("SOME-FORM-ID");
folderIDs.put("ANOTHER-FORM-ID");
folderProperties.put("forms", formIDs);
JSONObject response = client.updateFolder("FOLDER-ID", folderProperties);



jotformAPI = JotformAPIClient("YOUR API KEY")        
folder = {
'name': 'FOLDER-NAME', 
'color': '#FFFFFF', 
'parent': 'PARENT-FOLDER-ID', 
"forms": ["someFormID", "anotherFormID"]
}
data = json.dumps(folder)
response = jotformAPI.update_folder(data)



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
folderProperties = {
"name": "FOLDER-NAME",
"color": "#FFFFFF",
"parent": "PARENT-FOLDER-ID",
"forms": ["SOME-FORM-ID", "ANOTHER-FORM-ID"]
}
jf.updateFolder(folderProperties)
.then(function(r){
/**
successful response including report data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
folderProperties := map[string]string{
"color":  "#000000",
"parent": "PARENT-FOLDER-ID",
"name":   "NEW-FOLDER-NAME",
}
properties, _ := json.Marshal(folderProperties)
folder := client.UpdateFolder("FOLDER-ID", properties)





var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
Dictionary folderProperties = new Dictionary();
folderProperties.Add("name", "FOLDER-NAME");
folderProperties.Add("color", "#FFFFFF");
folderProperties.Add("parent", "PARENT-FOLDER-ID");
string data = JsonConvert.SerializeObject(folderProperties);
var response = client.updateFolder("FOLDER-ID", data);



require 'json'
jotform = JotForm.new("APIKey")
folderProperties = {
"name": "NEW-FOLDER-NAME",
"color": "#000000",
"parent": "PARENT-FOLDER-ID",
"forms": ["SOME-FORM-ID", "ANOTHER-FORM-ID"]
}
data = folderProperties.to_json
response = jotform.updateFolder("FOLDER-ID", data)



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val folderProperties: HashMap[String, String] = new HashMap[String, String]()
folderProperties.put("name", "FOLDER-ID")
folderProperties.put("color", "#000000")
folderProperties.put("parent", "PARENT-FOLDER-ID")
val data: JSONObject = new JSONObject(folderProperties)
val response = client.updateFolder("FOLDER-ID", data);


Sample Response
 * Minimize
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"30693660548966": true,
"color": "#FFFFFF"
},
"limit-left": 9979
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String ID of the folder id folderContent
JSON Name, color, parent of the specified folder. Also you can move forms to the
specified folder. folderContent     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






DELETE /FOLDER/{ID}


DELETE FOLDER

Delete a folder and its subfolders


curl -X DELETE -d "https://apijotform.precisionglassandshower1.com/folder/{folderID}?apiKey={apiKey}"



$jotformAPI = new JotForm("YOUR API KEY");
$response = $jotformAPI->deleteFolder("FOLDER ID");



JotformAPIClient client = new JotformAPIClient("YOUR API KEY");
JSONObject response = client.deleteFolder("FOLDER-ID");



jotformAPI = JotformAPIClient("YOUR API KEY")   
response = jotformAPI.delete_folder("FOLDER-ID")



var jf = require("Jotform");
jf.options({
debug: true,
apiKey: "YOUR_API_KEY"
});
jf.deleteFolder("FOLDER-ID")
.then(function(r){
/**
successful response including report data with given id
.
*/
})
.fail(function(e){
/*
error during request or not authenticated
*/
});



client := jotform.NewJotFormAPIClient("YOUR API KEY", "OUTPUT TYPE", "DEBUG MODE")
status := client.DeleteFolder("FOLDER-ID")





var jotformAPIClient = new JotForm.APIClient("YOUR API CODE");
var response = client.deleteFolder("FOLDER-ID");



jotform = JotForm.new("APIKey")
response = jotform.deleteFolder("FOLDER-ID")



val client = new JotForm()
client.setAPIKey("YOUR API KEY")
val response = client.deleteFolder("FOLDER-ID")


Sample Response
 * Minimize
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": "Folder deleted successfully",
"limit-left": 9957
}

Parameter Description Test Console apikey
String Jotform User API Key
Get a new API Key apikey id
String ID of the folder id     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL






GET /SYSTEM/PLAN/{PLANNAME}


GET DETAILS OF A PLAN

Get limit and prices of a plan.


curl -X GET "https://apijotform.precisionglassandshower1.com/system/plan/FREE"



$jotformAPI = new JotForm();
$response = $jotformAPI->getPlan("PLAN NAME");



JotformAPIClient client = new JotformAPIClient();
JSONObject response = client.getPlan("PLAN NAME");



jotformAPI = JotformAPIClient()
response = jotformAPI.get_plan("PLAN NAME")





client := jotform.NewJotFormAPIClient("", "OUTPUT TYPE", "DEBUG MODE")
response := client.GetPlan("PLAN NAME")





var jotformAPIClient = new JotForm.APIClient();
var response = jotformAPIClient.getPlan("PLAN NAME");



jotform = JotForm.new("APIKey")
response = jotform.getPlan("PLAN-NAME")



val client = new JotForm()
val response = client.getPlan("PLAN NAME")


Sample Response
 * Minimize
 *  
 *  
 *  
 * name is users account type. Full list can be seen in Pricing page.
 *  
 * Number of submissions can be received in a month
 *  
 * Number of secure submissions can be received in a month
 * Number of payment submissions can be received in a month
 * Total disk space can be used for uploaded files. In bytes.
 *  
 *  
 * api-daily-limit is the number of daily api calls you can make.
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 *  
 * limit-left is the number of daily api calls you can make.

{
"responseCode": 200,
"message": "success",
"content": {
"name": "FREE",
"limits": {
"submissions": 100,
"overSubmissions": 1000,
"sslSubmissions": 10,
"payments": 10,
"uploads": 104857600,
"tickets": 0,
"subusers": 1,
"api-daily-limit": 1000
},
"prices": {
"monthly": 0,
"yearly": 0,
"biyearly": 0
},
"plimusIDs": {
"monthly": 0,
"yearly": 0,
"biyearly": 0
},
"fastSpringURLs": {
"monthly": "",
"yearly": "",
"biyearly": ""
}
},
"limit-left": 9962
}

Parameter Description Test Console planName
String Name of the requested plan. FREE, BRONZE etc. planName FREE BRONZE SILVER
GOLD PLATINUM     Try it out



RESPONSE BODY



RESPONSE CODE



RESPONSE HEADERS



REQUEST URL




Jotform

 * Signup
 * Create a Form
 * My Forms
 * Pricing
 * Jotform Enterprise
 * Examples
   * Popular Forms
     * Application Forms
     * Registration Forms
     * Contact Forms
     * Feedback Forms
     * Order Forms
     * Evaluation Forms
     * Reservation Forms
     * Booking Forms
     * Request Forms
   * Popular Uses
     * Government
     * Healthcare
     * Summer Camps
     * Restaurants and Groceries
     * Churches
     * Animal Shelters
     * Photography
     * Education Professionals
     * Small Businesses
     * Nonprofit Organizations
     * Creative Agencies
     * User Stories
   * Business Guides
     * How to Create a Survey
     * Data Collection Methods
     * Form Design
     * Accepting payments online
     * Creating an app without coding
     * What Is a QR Code?
     * How to Make a Website
     * How to Sell Online
     * Performance Appraisal Guide
     * Working From Home
     * All Business Guides
 * Products
   * Form Builder
   * Jotform Apps
   * Store Builder
   * Jotform Tables
   * Jotform Inbox 2.0
   * Mobile Forms
   * Jotform Approvals
   * Report Builder
   * Smart PDF Forms
   * PDF Editor
   * Jotform Sign
 * Features
   * Jotform Teams
   * Conditional Logic
   * Conversational Forms
   * Assign Forms
   * Translate Forms
   * White Labeling
   * Enable-Disable Form
   * Multiple Users
 * Tools
   * AI Tools
     * AI Document Generator
     * AI Form Generator
     * AI Quiz Generator
     * AI PDF Summarizer
     * AI Signature Generator
     * AI Survey Generator
     * AI Test Generator
     * AI Trivia Generator
   * Document Generators
     * Fillable PDF Creator
     * Order Form Creator
     * Online Invoice Generator
     * Sample Size Calculator
     * Online Waiver Form Creator
     * Contact Form Generator
     * Online Contract Maker
     * Certificate Maker
     * Resume (CV) Generator
     * NDA Form Generator
     * Online Proposal Creator
     * Tax Form Generator
   * Survey & Quiz Tools
     * Survey Maker
     * Poll Maker
     * Quiz Maker
     * Test Maker
     * Likert Scale Creator
     * Trivia Maker
     * Online Voting Tool
   * Calculators
     * Sample Size Calculator
     * Margin of Error Calculator
     * App Development Cost Calculator
   * Maker Tools
     * Popup Maker
     * Online RSVP Tool
     * Email Collector
     * No Code App Builder
     * Signature Generator
     * Payment Gateways Comparison Chart
     * Petition Maker
 * Alternatives
   * Google Forms Alternative
   * Microsoft Forms Alternative
   * Typeform Alternative
   * Formstack Alternative
   * SurveyMonkey Alternatives
   * Wufoo Alternatives
   * 123FormBuilder Alternative
   * WPForms Alternatives
   * Paperform Alternatives
   * Adobe Sign Alternatives
   * PandaDoc Alternatives
   * Docusign Alternatives
   * Jotform Alternatives

Marketplace

 * Templates
   * Form Templates
   * App Templates
   * Approval Templates
   * Table Templates
   * PDF Templates
   * Sign Templates
 * Form Themes
 * Form Widgets
 * Integrations
   * Payment Integrations
   * All Integrations

Support

 * Contact Us
 * User Guide
 * Help
   * FAQ
   * Forum
   * API and Developers
   * Jotform Status
   * Jotform Books
 * Jotform Academy
 * Webinars
 * Professional Services
 * Report Abuse
 * Report Copyright Issue

Enterprise

 * Overview
 * Security
 * Features
   * Jotform Teams
   * Multiple Users
   * Admin Console
   * White Labeling
   * Local Data Residency
   * Single Sign-On
   * Jotform Sign
   * Mobile App
   * Professional Services
 * Solutions
   * Government
   * Healthcare
   * Education
   * Nonprofit
   * Business Services
   * Field Service Management
   * Financial Services
   * Hospice
   * Human Resources
   * Marketing
   * Salesforce
 * FAQ
 * Get a Demo

Company

 * About Us
 * Careers
 * Media Kit
 * In the News
 * Newsletters
 * Partnerships
   * Reseller Program
   * Affiliate Program
   * Find a Partner
 * Blog

Apps


Get access to Jotform Enterprise’s powerful EdTech features with a 30% education
discount
Apply Now Learn More
4 Embarcadero Center, Suite 780, San Francisco CA 94111

© 2024 Jotform Inc. The name "Jotform" and the Jotform logo are registered
trademarks of Jotform Inc.

EnglishEspañolFrançaisItalianoPortuguêsDeutschTürkçeNederlandsSuomiPolskiPусский
- Beta日本語българскиСрпскиქართველიIndonesiaالعربية한국어繁體中文 - BetaAfrikaans -
BetaHebrew - Beta
 * Terms & Conditions
 * Privacy Policy
 * Security
 * Accessibility Statement

 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 



‹September
2024›SuMoTuWeThFrSa2526272829303112345678910111213141516171819202122232425262728293012345

‹2024›JanFebMarAprMayJunJulAugSepOctNovDec

‹2020-2029›201920202021202220232024202520262027202820292030

‹September
2024›SuMoTuWeThFrSa2526272829303112345678910111213141516171819202122232425262728293012345

‹2024›JanFebMarAprMayJunJulAugSepOctNovDec

‹2020-2029›201920202021202220232024202520262027202820292030