catalogstatediscoveraboutstream-mapsschema-flattening
| Setting | Required | Default | Description |
|---|---|---|---|
| api_key | True | None | Authentication key. See https://api.jotform.com/docs/#authentication |
| api_url | False | https://api.jotform.com | API Base URL |
| user_agent | False | tap-jotform/0.0.1 | User-Agent header |
| start_date | False | None | Start date for data collection |
| requests_cache | False | None | Cache configuration for HTTP requests |
| stream_maps | False | None | Config object for stream maps capability. For more information check out Stream Maps. |
| stream_map_config | False | None | User-defined config values to be used within map expressions. |
| flattening_enabled | False | None | 'True' to enable schema flattening and automatically expand nested properties. |
| flattening_max_depth | False | None | The max depth to flatten schemas. |
A full list of supported settings and capabilities is available by running: tap-jotform --about
| Stream name | API endpoint | API docs | Notes |
|---|---|---|---|
| forms | /user/forms | https://api.jotform.com/docs/#user-forms | Replication for this stream is opt-in. See instructions below. |
| questions | /form/{form_id}/questions | https://api.jotform.com/docs/#form-id-questions | |
| submissions | /user/submissions | https://api.jotform.com/docs/#user-submissions | Replication for this stream is opt-in. See instructions below. |
| reports | /user/reports | https://api.jotform.com/docs/#user-reports | |
| user_history | /user/history | https://api.jotform.com/docs/#user-history | |
| folders (deprecated) | /user/folders | https://api.jotform.com/docs/#user-folders | |
| labels | /user/labels | https://api.jotform.com/docs/#get-user-labels |
By default, the forms and submissions stream are synced with FULL_TABLE replication. Incremental replication can be enabled by setting the replication metadata in the stream's entry in the catalog file:
replication_method: set toINCREMENTALreplication_keyset tocreated_atorupdated_at. The former will omit updated submissions, while the latter will omit new submissions.
For example, to enable incremental replication for the submissions stream:
{
"streams": [
{
"tap_stream_id": "submissions",
"stream": "submissions",
"replication_method": "INCREMENTAL",
"replication_key": "updated_at",
}
]
}To generate an API key, follow the instructions in https://api.jotform.com/docs/#gettingstarted.
You can easily run tap-jotform by itself or in a pipeline using Meltano.
tap-jotform --version
tap-jotform --help
tap-jotform --config CONFIG --discover > ./catalog.jsoncurl -LsSf https://astral.sh/uv/install.sh | sh # or see https://docs.astral.sh/uv/getting-started/installation/
uv syncCreate tests within the tap_jotform/tests subfolder and
then run:
uv run pytestYou can also test the tap-jotform CLI interface directly using uv run:
uv run tap-jotform --helpTesting with Meltano
Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.
Use Meltano to run an EL pipeline:
# Test invocation:
uvx meltano invoke tap-jotform --version
# OR run a test `elt` pipeline:
uvx meltano run tap-jotform target-jsonlSee the dev guide for more instructions on how to use the SDK to develop your own taps and targets.