Singer.io tap for extracting data from the buttondown API
Project description
tap-buttondown
A Singer tap for extracting data from the Buttondown API.
Installation
pip install tap-buttondown
Or run directly with uvx.
uvx tap-buttondown --help
# Example with CSV target
uvx tap-buttondown --config config.json | uvx --with setuptools target-csv
Configuration
Create a config.json file with your Buttondown API key:
{
"api_key": "your_buttondown_api_key_here"
}
You can find your API key in your Buttondown dashboard.
Usage
Discover available streams
tap-buttondown --config config.json --discover
This will output a catalog of available streams in JSON format.
Run the tap
tap-buttondown --config config.json --catalog catalog.json
Or to use the default catalog:
tap-buttondown --config config.json
State management
To maintain state between runs (for incremental syncs):
tap-buttondown --config config.json --state state.json
Streams
Subscribers
The subscribers stream extracts subscriber data from your Buttondown newsletter.
Schema:
id(string): Unique subscriber IDemail(string): Subscriber email addresscreated_date(datetime): When the subscriber was createdupdated_date(datetime): When the subscriber was last updatedmetadata(object): Custom metadatanotes(string, nullable): Notes about the subscriberpreferences(object): Subscriber preferencessubscription_preferences(object): Subscription-specific preferencestags(array): Tags associated with the subscribersource(string, nullable): Source of the subscriptionunsubscribed_date(datetime, nullable): When the subscriber unsubscribedreferrer_url(string, nullable): Referrer URLutm_campaign(string, nullable): UTM campaign parameterutm_content(string, nullable): UTM content parameterutm_medium(string, nullable): UTM medium parameterutm_source(string, nullable): UTM source parameterutm_term(string, nullable): UTM term parametergclid(string, nullable): Google Click IDfbc(string, nullable): Facebook Click IDfbp(string, nullable): Facebook Browser IDsubscribed(boolean): Whether the subscriber is currently subscribedunsubscribed(boolean): Whether the subscriber has unsubscribed
Replication Method: INCREMENTAL
Replication Key: updated_date
Development
This project is managed with uv.
Setup
- Clone the repository
- Create a
config.jsonfile with your API key
Testing
# Discover streams
uv run tap-buttondown --config config.json --discover
# Run sync
uv run tap-buttondown --config config.json
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters