tap-satismeter is a Singer tap for extracting survey data from the SatisMeter API.
Built with the Meltano Tap SDK for Singer Taps.
- Extracts surveys and survey responses from SatisMeter
- Supports incremental replication for responses based on
createdtimestamp - Cursor-based pagination for efficient data extraction
- Configurable start date for initial sync
| Stream | Replication | Parent | Description |
|---|---|---|---|
surveys |
Full | - | List of all surveys (campaigns) in the project |
responses |
Incremental | - | Survey responses with user info and metadata |
answers |
Full | responses |
Individual answers extracted from each response |
# Clone the repository
git clone https://github.com/angelcam/tap-satismeter.git
cd tap-satismeter
# Install dependencies
uv sync| Setting | Description |
|---|---|
api_key |
SatisMeter API Key |
project_id |
The SatisMeter project ID to fetch data from |
| Setting | Description | Default |
|---|---|---|
start_date |
ISO-8601 date for initial sync | 30 days ago |
API Key and Project ID can be obtained from:
- 1Password: Look for "SatisMeter" entry
- SatisMeter Dashboard: Navigate to Settings > Integrations > API
Option 1: Using environment variables (recommended)
cp .env.example .env
# Edit .env with your credentialsexport TAP_SATISMETER_API_KEY=your_api_key_here
export TAP_SATISMETER_PROJECT_ID=your_project_id_here
export TAP_SATISMETER_START_DATE=2024-01-01T00:00:00ZOption 2: Using config.json
cp config.json.example config.json
# Edit config.json with your credentials{
"api_key": "your_api_key_here",
"project_id": "your_project_id_here",
"start_date": "2024-01-01T00:00:00Z"
}# Show version
uv run tap-satismeter --version
# Show available settings
uv run tap-satismeter --about
# Discover available streams (using env vars)
uv run tap-satismeter --config=ENV --discover
# Discover available streams (using config.json)
uv run tap-satismeter --config config.json --discover
# Run a sync
uv run tap-satismeter --config=ENV
# Run with state for incremental sync
uv run tap-satismeter --config=ENV --state state.json# Install Meltano
uv tool install meltano
# Install the tap
meltano install
# Configure the tap
meltano config tap-satismeter set api_key your_api_key_here
meltano config tap-satismeter set project_id your_project_id_here
# Run the tap
meltano run tap-satismeter target-jsonlThe responses stream supports incremental replication using the created field. On subsequent runs with state, only new responses since the last sync will be extracted.
Important: The SatisMeter API defaults to returning only the last 30 days of data. To capture full history, always specify a start_date in your configuration.
# Clone the repository
git clone https://github.com/angelcam/tap-satismeter.git
cd tap-satismeter
# Install all dependencies (including dev)
uv sync --all-groups# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run with coverage
uv run pytest --cov=tap_satismeter# Type checking
uv run mypy tap_satismeter
# Linting
uv run ruff check tap_satismeterThis tap interacts with the following SatisMeter API endpoints:
GET /projects/{projectId}/campaigns- List surveysGET /projects/{projectId}/responses- Get survey responses
For full API documentation, see SatisMeter API Docs.
Apache 2.0 - See LICENSE for details.