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
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 DOMText 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 \n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n\n\nQuestion\nAnswer\n\n\nFull Name{fullName1}\n\nE-mail{email3}\n\n\n \n\n\n \n \n \n\n\n\n\n\n\n \n\n\n\n\ ", "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