{"id":14956,"library":"tap-gladly","title":"Gladly Singer Tap","description":"`tap-gladly` is an open-source Singer tap designed to extract data from the Gladly customer service platform. Built using the Meltano SDK for Singer Taps, it adheres to the Singer Specification, providing a standardized JSON-based output for integration into various ELT pipelines. The current version is `0.4.1`, and releases typically align with updates to the underlying Gladly API or improvements in the Meltano SDK, rather than a fixed cadence.","status":"active","version":"0.4.1","language":"en","source_language":"en","source_url":"https://pypi.org/project/tap-gladly/","tags":["singer-tap","etl","data-extraction","gladly","meltano-sdk","api-connector"],"install":[{"cmd":"pip install tap-gladly","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Requires Python versions 3.7.1 up to, but not including, 3.11.","package":"python","optional":false}],"imports":[{"note":"While `tap-gladly` is primarily a command-line utility, `singer_sdk.Tap` is the base class it extends. This import is relevant for developers extending or inspecting the tap's internal structure, not for typical end-user execution.","symbol":"Tap","correct":"from singer_sdk import Tap"}],"quickstart":{"code":"export GLADLY_API_TOKEN=\"your_gladly_api_token\"\n\n# 1. Create a minimal configuration file (config.json)\ncat <<EOF > config.json\n{\n  \"api_url\": \"https://your-gladly-instance.gladly.com\",\n  \"api_token\": \"$GLADLY_API_TOKEN\",\n  \"start_date\": \"2023-01-01T00:00:00Z\"\n}\nEOF\n\n# 2. Discover available streams and their schemas\ntap-gladly --config config.json --discover > catalog.json\n\n# 3. Perform a data sync (extract data)\ntap-gladly --config config.json --catalog catalog.json --state state.json > data.jsonl\n\n# (Optional) View the first few lines of extracted data\nhead data.jsonl","lang":"bash","description":"This quickstart demonstrates how to run `tap-gladly` as a standalone Singer tap. It first sets up a basic `config.json` with a placeholder API token and a `start_date` for historical data extraction. Then, it uses the `--discover` flag to generate a `catalog.json` detailing available data streams and their schemas. Finally, it executes a data sync using the generated catalog, an empty `state.json` (for the initial run), and outputs the extracted data in JSONL format to `data.jsonl`. Replace `your_gladly_api_token` and `https://your-gladly-instance.gladly.com` with your actual Gladly API credentials and instance URL."},"warnings":[{"fix":"Consult the `tap-gladly` release notes and the Gladly API documentation. Update your `catalog.json` if schemas have changed and adjust downstream consumers as necessary.","message":"Major version updates to the Gladly API or changes in the underlying Singer schema (e.g., modifying primary keys, making schemas more restrictive) can introduce breaking changes. Always review release notes for `tap-gladly` and the Gladly API before upgrading.","severity":"breaking","affected_versions":"All versions, potential with upstream API changes"},{"fix":"Ensure your `tap-gladly` configuration respects API rate limits if available. If running within Meltano, consider configuring `Meltano`'s `max_workers` or `concurrency` settings. Review Gladly's API documentation for specific rate limit details.","message":"API rate limits are common for external services like Gladly. Excessive requests without proper backoff or concurrency management can lead to temporary blocks or errors. `tap-gladly` relies on the Meltano SDK's handling, but aggressive syncs may still hit limits.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Always use ISO 8601 / RFC3339 compliant date-time strings, including timezone information (e.g., 'Z' for UTC or an offset like '+00:00').","message":"All date and time values, especially `start_date` in the configuration, should strictly adhere to the RFC3339 format, preferably in UTC (e.g., `2023-01-01T00:00:00Z`). Incorrect formats can lead to parsing errors or unexpected data extraction ranges.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure your environment uses a compatible Python version (e.g., 3.8, 3.9, 3.10). Consider using a virtual environment to manage Python versions.","message":"The tap has a strict Python version requirement, supporting Python 3.7.1 up to, but not including, Python 3.11. Using unsupported Python versions may lead to installation failures or runtime errors.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-14T00:00:00.000Z","next_check":"2026-07-13T00:00:00.000Z","problems":[],"ecosystem":"pypi"}