API & Webhook Client Changelog
Changes to the FormSmarts API & Webhook Client for Python, newest first.
Install or upgrade with pip install --upgrade formsmarts
2.1.6 2026-10-24
Fixed
- Checkbox values were only treated as checked when written in lowercase: Yes or TRUE gave
False. Values are now compared ignoring case and surrounding whitespace.
2.1.5 2026-10-20
Added
FormEntry.reply()andFormEntry.reply_all()send a note to the email address(es) entered on the form.Field.revisions()returns the revision history of a field, asRevisionobjects. Revisions made with the API have API as the author.FormEntry.edited_fieldsandField.is_editedtell which fields were edited after the form was submitted. Thereturn_edited_statusargument offetch(),fetch_batch(),search()andsearch_by_dates()returns the edited status with the entries.Upload.read()downloads an attachment and returns its content.FormEntry.submit()accepts anUploadobject as the value of an upload field.
Changed
- Breaking:
Upload.valuereturns theUploadobject itself, orNoneif the field is empty. It previously returned a value that depended on where the object came from. Reading it doesn't download the file: callread()ordownload(). UseUpload.upload_idfor the Upload ID. - Assigning to the
valueof anUploadorSignatureraisesNotImplementedErrorinstead of being ignored. UseUpload.replace()to replace an attachment.
Fixed
- Submitting a list of
Fieldobjects that includes anUploadsent None instead of the Upload ID.
2.1.4 2026-09-29
Added
- Notes:
FormEntry.notes,FormEntry.add_note(),Note.fetch(),Note.update()andNote.delete(). Notes added with the API have API as the author, and only those can be edited or deleted with the API. APIAuthenticator.account_id.
Fixed
- Webhook entries couldn't be created on Python 3.8 to 3.10 (date parsing error). Dates returned by the API and webhooks are now parsed the same way, and
FormEntry.submitted_atis always timezone-aware.
2.1.3 2026-09-24
Added
- Network errors are raised as
APIConnectionError, and timeouts as its subclassAPITimeoutError(see Error Handling). - Requests time out by default after 10 seconds when connecting and 60 seconds when reading a response.
Changed
FormEntry.add_tags()adds up to 10 tags per request.add_tag()andadd_tags()raiseValueErrorif a tag contains a comma.
Fixed
add_tag()could skip a tag with the same name as one of the entry's system tags.
2.1.2 2026-07-10
Added
- The
return_tagsargument ofFormEntry.fetch(),fetch_batch()andsearch_by_dates()returns the tags and system tags with the entries, saving a request per entry when readingFormEntry.tags. formsmarts.__version__.
2.1.1 2026-05-11
Changed
- Supports the ISO 8601 timestamps now returned by the Search API.
2.1.0 2026-04-13
First release on PyPI: pip install formsmarts.
Changed
- Breaking:
FormEntry.date_submittedwas renamedFormEntry.submitted_at.