Skip to main content

tap-freshservice

tap-freshservice is a Singer tap for Freshservice.

Built with the Meltano Tap SDK for Singer Taps.

Installation

Install from PyPi:

pipx install tap-freshservice

Install from GitHub:

pipx install git+https://github.com/Datateer/tap-freshservice.git@main

Configuration

Settings

Setting Required Default Description
api_key True None The Freshservice API key
url_base True https://<your org>.freshservice.com/api/v2 The Freshservice API base URL
ticket_lookback_days False 45 Days of ticket updated_at history to request on each full sync. Sent as Freshservice updated_since. Child streams only run for tickets in this window.
request_delay_seconds False 1.0 Minimum seconds to wait between API requests. Increase if you see 429 rate-limit errors.
stream_maps False None Config object for stream maps. See Stream Maps.
stream_map_config False None User-defined config values for map expressions.
flattening_enabled False None true to enable schema flattening and expand nested properties.
flattening_max_depth False None Max depth to flatten schemas.
batch_config False None Configuration for BATCH message capabilities.

Replication behavior

All streams use full-table replication. There is no Singer incremental mode.

Each run requests tickets whose updated_at falls within the configured ticket_lookback_days window (default 45). That value is sent to Freshservice as the updated_since query parameter. Child streams such as time_entries run only for tickets returned in that window.

Note: updated_since filters on ticket updated_at only. It does not reflect activity such as new time entries when the ticket itself was not updated.

Large Singer messages (Meltano line size limit)

Meltano limits each tap output line to half of elt.buffer_size (default 50 MiB). If a run fails with Output line length limit exceeded, a single RECORD or SCHEMA line is too large.

Common causes in this tap:

  • tickets with flattening_enabled: true (large nested schemas)
  • tickets fields such as description / description_text (large HTML bodies)

Fixes, in order of preference:

  1. Keep flattening off for API extraction (recommended for time_entries-only jobs)
  2. Exclude large ticket fields with stream maps when syncing tickets
  3. Raise the Meltano buffer if large records are expected:
elt:
  buffer_size: 209715200  # 200 MiB → 100 MiB max line size

Or: meltano config set meltano elt.buffer_size 209715200

Example Meltano config

plugins:
  extractors:
    - name: tap-freshservice
      config:
        api_key: $TAP_FRESHSERVICE_API_KEY
        url_base: https://your-org.freshservice.com/api/v2
        ticket_lookback_days: 45
        request_delay_seconds: 1.0

Supported Python versions

Python 3.10–3.13

Capabilities

catalog, discover, stream-maps, schema-flattening, batch, and others. Run tap-freshservice --about for the full list.

A full list of supported settings and capabilities is available by running:

tap-freshservice --about

Configure using environment variables

This Singer tap will automatically import any environment variables within the working directory's .env if the --config=ENV is provided, such that config values will be considered if a matching environment variable is set either in the terminal context or in the .env file.

Usage

You can easily run tap-freshservice by itself or in a pipeline using Meltano.

Executing the Tap Directly

tap-freshservice --version
tap-freshservice --help
tap-freshservice --config CONFIG --discover > ./catalog.json

Developer Resources

Follow these instructions to contribute to this project.

Initialize your Development Environment

pipx install poetry
poetry install

Create and Run Tests

Create tests within the tests subfolder and then run:

poetry run pytest

You can also test the tap-freshservice CLI interface directly using poetry run:

poetry run tap-freshservice --help

Testing 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.

Next, install Meltano (if you haven't already) and any needed plugins:

# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-freshservice
meltano install

Now you can test and orchestrate using Meltano:

# Test invocation:
meltano invoke tap-freshservice --version
# OR run a test `elt` pipeline:
meltano elt tap-freshservice target-jsonl

SDK Dev Guide

See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.

Metadata

Release files for tap-freshservice 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tap-freshservice 0.12.0
File Size Uploaded
tap_freshservice-0.12.0.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tap-freshservice 0.12.0
File Interpreter ABI Platform
tap_freshservice-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.0 kB

Release files / tap_freshservice-0.12.0.tar.gz

Download URL tap_freshservice-0.12.0.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
82da999ea16e000cfdb62edd93e5b314715ea4fa02dd82b4f9c9c938bb4bca04
BLAKE2b-256 checksum
How to use checksums
ffce2cec90d696cd95a03f807f7129bf2b9fcd544b11434c526e4e91854398e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release files / tap_freshservice-0.12.0-py3-none-any.whl

Download URL tap_freshservice-0.12.0-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a863e71279cc7b14c99b8391ff5f85b4f8038175c51b60ce5c9be766966e7d7
BLAKE2b-256 checksum
How to use checksums
3eefb2aaf17669b4c71346b649bd9246a40f168792fe6a2f807290aab693a87a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page