jotform

$npx mdskill add vm0-ai/vm0-skills/jotform

Manage JotForm accounts, forms, and submissions via API.

  • Retrieves user data, usage stats, and form lists instantly.
  • Depends on JotForm API with APIKEY authentication.
  • Executes requests based on user intent keywords.
  • Returns structured JSON data for programmatic access.

SKILL.md

.github/skills/jotformView on GitHub ↗
---
name: jotform
description: JotForm API for form management. Use when user mentions "JotForm", "forms",
  "submissions", or asks about form data.
---

## Troubleshooting

If requests fail, run `zero doctor check-connector --env-name JOTFORM_TOKEN` or `zero doctor check-connector --url https://api.jotform.com/user --method GET`

## 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: $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: $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: $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: $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: $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: $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: $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: $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: $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: $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: $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: $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: $JOTFORM_TOKEN" | jq '.content'
```

Get a specific property:

```bash
curl -s "https://api.jotform.com/form/FORM_ID/properties/PROPERTY_KEY" --header "APIKEY: $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: $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: $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: $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: $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: $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: $JOTFORM_TOKEN" | jq .
```

### 18. List User Folders

Get all folders in the account.

```bash
curl -s "https://api.jotform.com/user/folders" --header "APIKEY: $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: $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: $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

More from vm0-ai/vm0-skills

SkillDescription
account-reconciliationPerform account reconciliations comparing general ledger balances against subledgers, bank statements, or external records. Use for bank reconciliation, GL-to-subledger reconciliation, intercompany reconciliation, balance sheet reconciliation, reconciling item analysis, outstanding item aging, or clearing open items.
agentphoneBuild AI phone agents with AgentPhone API. Use when the user wants to make phone calls, send/receive SMS, manage phone numbers, create voice agents, set up webhooks, or check usage — anything related to telephony, phone numbers, or voice AI.
ahrefsAhrefs SEO API for backlink and keyword analysis. Use when user mentions
amplitudeAmplitude product analytics API. Use when user mentions "Amplitude",
analysis-qaQuality-check a data analysis before sharing — verify joins, aggregations, denominators, time ranges, and metric definitions. Detect pitfalls like survivorship bias, average-of-averages, join explosion, timezone mismatches, incomplete periods, and selection bias. Includes documentation templates for reproducible analyses.
anthropic-managed-agentsAnthropic Managed Agents API for programmatically creating, running, and streaming AI agents on Anthropic's cloud infrastructure. Use when the user mentions "Managed Agents", "Anthropic agent sessions", or needs to create/run/stream an Anthropic agent with tool use (bash, git, web), attach GitHub repositories, or inject secrets via Vault. Do NOT use for standard Claude Messages API — use the Claude API skill instead.
apifyApify web scraping platform. Use when user mentions "scrape website",
asanaAsana API for tasks and projects. Use when user mentions "Asana", "asana.com",
atlassianAtlassian API for Confluence and Jira. Use when user mentions "Confluence
attioAttio REST API for AI-native CRM operations — manage companies, people, deals, and custom objects, plus notes, tasks, lists, and comments. Use when the user mentions "Attio", "CRM record", "create company", "add person", "list entry", "CRM note", or "CRM task".