Agent skill

jotform

JotForm API for form management. Use when user mentions "JotForm", "forms", "submissions", or asks about form data.

Stars 50
Forks 8

Install this agent skill to your Project

npx add-skill https://github.com/vm0-ai/vm0-skills/tree/main/jotform

SKILL.md

Jotform API

Use the Jotform API via direct curl calls to manage forms, submissions, questions, webhooks, and account data.

Official docs: https://api.jotform.com/docs/


When to Use

Use this skill when you need to:

  • List and retrieve forms from a Jotform account
  • Manage form submissions (list, create, update, delete)
  • Read and modify form questions and properties
  • Set up webhooks for form submission notifications
  • Access user account info including usage, settings, and folders

Prerequisites

  1. Log in to your Jotform account
  2. Navigate to Settings > API
  3. Click Create New Key
  4. Copy your API Key
bash
export JOTFORM_TOKEN="your-api-key"

API Base URLs

Region URL
Standard https://api.jotform.com
EU https://eu-api.jotform.com
HIPAA https://hipaa-api.jotform.com

All examples below use https://api.jotform.com. Replace with the appropriate regional URL if needed.


How to Use

All examples below assume you have JOTFORM_TOKEN set. Authentication uses the APIKEY header.


1. Get User Account Info

Retrieve information about the authenticated user.

bash
curl -s "https://api.jotform.com/user" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

2. Get Account Usage

Check API usage limits and current consumption.

bash
curl -s "https://api.jotform.com/user/usage" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

3. List All Forms

Retrieve all forms in the account. Supports pagination with limit and offset.

bash
curl -s "https://api.jotform.com/user/forms?limit=20&offset=0" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content[] | {id, title, status, created_at}'

Filter forms by status:

bash
curl -s "https://api.jotform.com/user/forms?limit=20&filter=%7B%22status%3Ane%22%3A%22DELETED%22%7D" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content[] | {id, title, status}'

4. Get Form Details

Retrieve details for a specific form. Replace FORM_ID with the actual form ID.

bash
curl -s "https://api.jotform.com/form/FORM_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

5. Get Form Questions

List all questions (fields) in a form.

bash
curl -s "https://api.jotform.com/form/FORM_ID/questions" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

Get a specific question by ID:

bash
curl -s "https://api.jotform.com/form/FORM_ID/question/QUESTION_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

6. List Form Submissions

Get submissions for a specific form. Supports limit, offset, orderby, and filter.

bash
curl -s "https://api.jotform.com/form/FORM_ID/submissions?limit=20&offset=0&orderby=created_at" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content[] | {id, created_at, status}'

7. Get a Single Submission

Retrieve details for a specific submission.

bash
curl -s "https://api.jotform.com/submission/SUBMISSION_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

8. Create a Submission

Submit new data to a form. Field keys follow the format submission[QUESTION_ID].

bash
curl -s -X POST "https://api.jotform.com/form/FORM_ID/submissions" --header "APIKEY: $(printenv JOTFORM_TOKEN)" -d "submission[1]=John" -d "submission[2]=Doe" -d "submission[3]=john@example.com" | jq .

9. Update a Submission

Edit an existing submission.

bash
curl -s -X POST "https://api.jotform.com/submission/SUBMISSION_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" -d "submission[1]=Jane" -d "submission[2]=Smith" | jq .

10. Delete a Submission

Delete a submission by ID.

bash
curl -s -X DELETE "https://api.jotform.com/submission/SUBMISSION_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

11. Get Form Properties

Retrieve all properties of a form (title, colors, fonts, etc.).

bash
curl -s "https://api.jotform.com/form/FORM_ID/properties" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

Get a specific property:

bash
curl -s "https://api.jotform.com/form/FORM_ID/properties/PROPERTY_KEY" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

12. List Form Webhooks

Get all webhooks configured for a form.

bash
curl -s "https://api.jotform.com/form/FORM_ID/webhooks" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

13. Create a Webhook

Add a webhook URL to receive form submission notifications.

bash
curl -s -X POST "https://api.jotform.com/form/FORM_ID/webhooks" --header "APIKEY: $(printenv JOTFORM_TOKEN)" -d "webhookURL=https://example.com/webhook" | jq .

14. Delete a Webhook

Remove a webhook from a form.

bash
curl -s -X DELETE "https://api.jotform.com/form/FORM_ID/webhooks/WEBHOOK_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

15. List Form Files

Get all files uploaded through a form.

bash
curl -s "https://api.jotform.com/form/FORM_ID/files" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

16. Clone a Form

Create a copy of an existing form.

bash
curl -s -X POST "https://api.jotform.com/form/FORM_ID/clone" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

17. Delete a Form

Delete a form by ID.

bash
curl -s -X DELETE "https://api.jotform.com/form/FORM_ID" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq .

18. List User Folders

Get all folders in the account.

bash
curl -s "https://api.jotform.com/user/folders" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

19. Get All User Submissions

Retrieve all submissions across all forms.

bash
curl -s "https://api.jotform.com/user/submissions?limit=20&offset=0" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content[] | {id, form_id, created_at, status}'

20. Get Form Reports

List all reports for a form.

bash
curl -s "https://api.jotform.com/form/FORM_ID/reports" --header "APIKEY: $(printenv JOTFORM_TOKEN)" | jq '.content'

Guidelines

  1. Authentication: Use the APIKEY header for all requests. Do not pass the API key as a URL parameter in production
  2. Pagination: Use limit and offset query parameters to paginate large result sets. Default limit varies by endpoint
  3. Filtering: Use the filter query parameter with URL-encoded JSON for advanced filtering (e.g., filter={"status:ne":"DELETED"})
  4. Regional URLs: Use eu-api.jotform.com for EU accounts or hipaa-api.jotform.com for HIPAA-compliant accounts
  5. Submission field keys: When creating or updating submissions, field keys use the format submission[QUESTION_ID] where the question ID comes from the form questions endpoint
  6. Response format: All responses return JSON with a responseCode (200 for success) and content field containing the data
  7. Rate limits: Jotform enforces API rate limits based on your plan. Monitor the response headers for rate limit information
  8. Form IDs: Form IDs are numeric. You can find them in the form URL or by listing all forms

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results