# Unofficial Jotform API Extended Python Client
This is an unofficial API wrapper for Jotform in Python that includes additional endpoints and documentation.
## Information
The official documentation can be found here: [Jotform API Documentation](https://api.jotform.com/docs)
Additional documentation for the different endpoints are included in the docstrings of each function.
API coverage:
| Endpoints | [Jotform API](https://github.com/jotform/jotform-api-python/) | Extended |
|---|---|---|
| User | ✔️ | ✔️ |
| Form | ✔️ | ✔️ |
| Form Questions | ✔️ | ✔️ |
| Form Properties | ✔️ | ✔️ |
| Form Submissions | ✔️ | ✔️ |
| Form Webhooks | ✔️ | ✔️ |
| Form Reports | ✔️ | ✔️ |
| Submission | ✔️ | ✔️ |
| Report | ✔️ | ✔️ |
| Folder | ✔️ | ✔️ |
| System | ✔️ | ✔️ |
| Teams | ❌ | ✔️ |
| Apps | ❌ | ✔️ |
| Form Archive | ❌ | ✔️ |
| Submission Threads | ❌ | ✔️ |
| Start Workflow | ❌ | ✔️ |
| PDFs | ❌ | ✔️ |
| AI Agents | ❌ | ✔️ |
| SMTP | ❌ | ✔️ |
## Installing
You can install the extended client using:
$ pip install jotform-extended
## Authentication
The Jotform API requires a Jotform API key. If you don't have one, you can follow [this guide](https://www.jotform.com/help/253-how-to-create-a-jotform-api-key/) to create one.
## Usage examples
Get user details:
```python
from jotformextended import JotformExtendedClient
jotform_api_key = "your_api_key"
jf = JotformExtendedClient(api_key=jotform_api_key)
user_details = jf.get_user()
print(user_details)
```
Get form details:
```python
from jotformextended import JotformExtendedClient
jotform_api_key = "your_api_key"
form_id = "your_form_id"
jf = JotformExtendedClient(api_key=jotform_api_key)
form_details = jf.get_form(form_id=form_id)
print(form_details)
```
Create a form:
```python
from jotformextended import JotformExtendedClient
jotform_api_key = "your_api_key"
form_details = {
"properties[title]": "Form Title",
"questions[0][type]": "control_head",
"questions[0][text]": "Form Header",
"questions[0][order]": "1",
"questions[1][type]": "control_textbox",
"questions[1][text]": "Text Box Label",
"questions[1][order]": "2",
"questions[1][required]": "Yes",
"questions[1][readonly]": "No",
"emails[0][type]": "notification",
"emails[0][name]": "Notification 1",
"emails[0][from]": "default",
"emails[0][to]": "example@example.com",
"emails[0][subject]": "New Submission Received",
}
jf = JotformExtendedClient(api_key=jotform_api_key)
response = jf.create_form(form=form_details)
print(f"Form ID: {response['content']['id']}")
print(f"Form URL: {response['content']['url']}")
```
Raw data
{
"_id": null,
"home_page": null,
"name": "jotform-extended",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Jotform, API, wrapper, forms, integration",
"author": null,
"author_email": "Lars Lundin <hello@larslund.in>",
"download_url": "https://files.pythonhosted.org/packages/54/5e/5ac6e7eec39d3cb2138511ab8ae59054d3cdc5cefa22481587d3f25e8744/jotform_extended-0.1.4.tar.gz",
"platform": null,
"description": "\r\n# Unofficial Jotform API Extended Python Client\r\n\r\nThis is an unofficial API wrapper for Jotform in Python that includes additional endpoints and documentation.\r\n\r\n## Information\r\nThe official documentation can be found here: [Jotform API Documentation](https://api.jotform.com/docs)\r\n\r\nAdditional documentation for the different endpoints are included in the docstrings of each function.\r\n\r\nAPI coverage:\r\n\r\n| Endpoints | [Jotform API](https://github.com/jotform/jotform-api-python/) | Extended |\r\n|---|---|---|\r\n| User | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form Questions | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form Properties | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form Submissions | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form Webhooks | \u2714\ufe0f | \u2714\ufe0f |\r\n| Form Reports | \u2714\ufe0f | \u2714\ufe0f |\r\n| Submission | \u2714\ufe0f | \u2714\ufe0f |\r\n| Report | \u2714\ufe0f | \u2714\ufe0f |\r\n| Folder | \u2714\ufe0f | \u2714\ufe0f |\r\n| System | \u2714\ufe0f | \u2714\ufe0f |\r\n| Teams | \u274c | \u2714\ufe0f |\r\n| Apps | \u274c | \u2714\ufe0f |\r\n| Form Archive | \u274c | \u2714\ufe0f |\r\n| Submission Threads | \u274c | \u2714\ufe0f |\r\n| Start Workflow | \u274c | \u2714\ufe0f |\r\n| PDFs | \u274c | \u2714\ufe0f |\r\n| AI Agents | \u274c | \u2714\ufe0f |\r\n| SMTP | \u274c | \u2714\ufe0f |\r\n\r\n## Installing\r\nYou can install the extended client using:\r\n\r\n $ pip install jotform-extended\r\n\r\n## Authentication\r\nThe Jotform API requires a Jotform API key. If you don't have one, you can follow [this guide](https://www.jotform.com/help/253-how-to-create-a-jotform-api-key/) to create one.\r\n\r\n## Usage examples\r\nGet user details:\r\n```python\r\nfrom jotformextended import JotformExtendedClient\r\n\r\njotform_api_key = \"your_api_key\"\r\n\r\njf = JotformExtendedClient(api_key=jotform_api_key)\r\nuser_details = jf.get_user()\r\nprint(user_details)\r\n```\r\nGet form details:\r\n```python\r\nfrom jotformextended import JotformExtendedClient\r\n\r\njotform_api_key = \"your_api_key\"\r\nform_id = \"your_form_id\"\r\n\r\njf = JotformExtendedClient(api_key=jotform_api_key)\r\nform_details = jf.get_form(form_id=form_id)\r\nprint(form_details)\r\n```\r\nCreate a form:\r\n```python\r\nfrom jotformextended import JotformExtendedClient\r\n\r\njotform_api_key = \"your_api_key\"\r\nform_details = {\r\n \"properties[title]\": \"Form Title\",\r\n \"questions[0][type]\": \"control_head\",\r\n \"questions[0][text]\": \"Form Header\",\r\n \"questions[0][order]\": \"1\",\r\n \"questions[1][type]\": \"control_textbox\",\r\n \"questions[1][text]\": \"Text Box Label\",\r\n \"questions[1][order]\": \"2\",\r\n \"questions[1][required]\": \"Yes\",\r\n \"questions[1][readonly]\": \"No\",\r\n \"emails[0][type]\": \"notification\",\r\n \"emails[0][name]\": \"Notification 1\",\r\n \"emails[0][from]\": \"default\",\r\n \"emails[0][to]\": \"example@example.com\",\r\n \"emails[0][subject]\": \"New Submission Received\",\r\n}\r\n\r\njf = JotformExtendedClient(api_key=jotform_api_key)\r\nresponse = jf.create_form(form=form_details)\r\nprint(f\"Form ID: {response['content']['id']}\")\r\nprint(f\"Form URL: {response['content']['url']}\")\r\n```\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python API wrapper for Jotform, with additional endpoints.",
"version": "0.1.4",
"project_urls": {
"Bug_Reports": "https://github.com/larsyngvelundin/jotform-api-extended-python/issues",
"Homepage": "https://github.com/larsyngvelundin/jotform-api-extended-python",
"Source": "https://github.com/larsyngvelundin/jotform-api-extended-python"
},
"split_keywords": [
"jotform",
" api",
" wrapper",
" forms",
" integration"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "08dbce19f8145744289158dfeed5658a61a3bf1ec344cf53dd5dfa4575e1cb81",
"md5": "33836a9f07accf7a7f06d5560bf84879",
"sha256": "9b1a8bbe50cc65243159f04a50feba2b3f9d12dc72eff95aba86d0946033c5ba"
},
"downloads": -1,
"filename": "jotform_extended-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "33836a9f07accf7a7f06d5560bf84879",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 15944,
"upload_time": "2025-08-07T15:20:19",
"upload_time_iso_8601": "2025-08-07T15:20:19.666491Z",
"url": "https://files.pythonhosted.org/packages/08/db/ce19f8145744289158dfeed5658a61a3bf1ec344cf53dd5dfa4575e1cb81/jotform_extended-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "545e5ac6e7eec39d3cb2138511ab8ae59054d3cdc5cefa22481587d3f25e8744",
"md5": "0f947e2fdc1b3504022242c761fc7907",
"sha256": "c00d467b4c658d24d16b3c79cece18b26cf14af9fabfd4be287a9a1512da5076"
},
"downloads": -1,
"filename": "jotform_extended-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "0f947e2fdc1b3504022242c761fc7907",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 15818,
"upload_time": "2025-08-07T15:20:20",
"upload_time_iso_8601": "2025-08-07T15:20:20.829127Z",
"url": "https://files.pythonhosted.org/packages/54/5e/5ac6e7eec39d3cb2138511ab8ae59054d3cdc5cefa22481587d3f25e8744/jotform_extended-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 15:20:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "larsyngvelundin",
"github_project": "jotform-api-extended-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "jotform-extended"
}