Skip to main content

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 ID
  • email (string): Subscriber email address
  • created_date (datetime): When the subscriber was created
  • updated_date (datetime): When the subscriber was last updated
  • metadata (object): Custom metadata
  • notes (string, nullable): Notes about the subscriber
  • preferences (object): Subscriber preferences
  • subscription_preferences (object): Subscription-specific preferences
  • tags (array): Tags associated with the subscriber
  • source (string, nullable): Source of the subscription
  • unsubscribed_date (datetime, nullable): When the subscriber unsubscribed
  • referrer_url (string, nullable): Referrer URL
  • utm_campaign (string, nullable): UTM campaign parameter
  • utm_content (string, nullable): UTM content parameter
  • utm_medium (string, nullable): UTM medium parameter
  • utm_source (string, nullable): UTM source parameter
  • utm_term (string, nullable): UTM term parameter
  • gclid (string, nullable): Google Click ID
  • fbc (string, nullable): Facebook Click ID
  • fbp (string, nullable): Facebook Browser ID
  • subscribed (boolean): Whether the subscriber is currently subscribed
  • unsubscribed (boolean): Whether the subscriber has unsubscribed

Replication Method: INCREMENTAL Replication Key: updated_date

Development

This project is managed with uv.

Setup

  1. Clone the repository
  2. Create a config.json file 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tap_buttondown-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tap_buttondown-0.1.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file tap_buttondown-0.1.0.tar.gz.

File metadata

  • Download URL: tap_buttondown-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for tap_buttondown-0.1.0.tar.gz
Algorithm Hash digest
SHA256 578eb7954cae0dce7aaf7be77b65d39366e08335391c5f58e026e42b0084100b
MD5 1c749445b997b04fab08217769d71df2
BLAKE2b-256 9fa355e5b3974d7f8df646e7b02e41013ad773aed0a247335bf8cba4e5afa75d

See more details on using hashes here.

File details

Details for the file tap_buttondown-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tap_buttondown-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fcfbdc21f5ed6b15567046af750a121969d5a6878a44f0e8ff740b1ed37b8646
MD5 18ccd3e90bc021fec8d9b73d1aa78f51
BLAKE2b-256 e936cf306b213d75bb31452e661757594971ddf878d15d456fc0c5394949c713

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page