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
  • creation_date (datetime): When the subscriber was created
  • email_address (string): Subscriber email address
  • notes (string): Notes about the subscriber
  • metadata (object): Custom metadata
  • tags (array): Tags associated with the subscriber
  • referrer_url (string): Referrer URL
  • secondary_id (integer): Secondary identifier
  • type (string): Subscriber type (e.g., "unactivated", "regular", "undeliverable")
  • source (string): Source of the subscription
  • utm_campaign (string): UTM campaign parameter
  • utm_medium (string): UTM medium parameter
  • utm_source (string): UTM source parameter
  • referral_code (string): Referral code
  • avatar_url (string): Avatar URL
  • stripe_coupon (string, nullable): Stripe coupon
  • unsubscription_date (datetime, nullable): When the subscriber unsubscribed
  • churn_date (datetime, nullable): When the subscriber churned
  • undeliverability_date (datetime, nullable): When the subscriber became undeliverable
  • undeliverability_reason (string, nullable): Reason for undeliverability
  • upgrade_date (datetime, nullable): When the subscriber upgraded
  • unsubscription_reason (string): Reason for unsubscription
  • transitions (array): Transition history
  • ip_address (string): IP address
  • last_open_date (datetime, nullable): Last email open date
  • last_click_date (datetime, nullable): Last email click date
  • stripe_customer_id (string, nullable): Stripe customer ID
  • subscriber_import_id (string, nullable): Import ID
  • risk_score (number): Risk score
  • stripe_customer (object, nullable): Stripe customer data

Replication Method: INCREMENTAL Replication Key: creation_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.2.0.tar.gz (4.6 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.2.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tap_buttondown-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e350f7049fde5a9b95776da5eb35730ef99d10d0f829b1e96ddc7eaad55b9825
MD5 ffe2bc96c691e29805210aa444b0fbce
BLAKE2b-256 22b268beab5bd92f09451dad59b24e2ee3eb0b537dfe463dc23c48f8cb7772dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tap_buttondown-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40bb294b76513985b8e30ae3dd9410f08f39302dfad19bb0f245e7657e2c017b
MD5 f842fd447aff4a1ee0e7d90016dbc5c1
BLAKE2b-256 635be49efacd46fb6c60fa2a45d2830c6de4ab46d9900e8fe74d937277de9459

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