A lightweight R client for the Substack API. All functions return data frames, handle errors with informative messages, and work out of the box once you’ve set your API key.
From CRAN:
install.packages("substackR")
Development version from GitHub:
# install.packages("pak") # if needed
pak::pak("posocap/substackR")
Provide your API key once per session with:
library(substackR)
set_substack_key("your-substack-api-key")
If you haven’t set the key, any API call will prompt you to call set_substack_key()
first.
Fetches the latest posts.
latest_posts <- get_substack_latest(
publication_url = "posocap.substack.com",
limit = 10,
offset = 0
)
Returns a data frame with columns:
- slug
- url
- title
- description
- excerpt
- body_html
- reading_time_minutes
- audio_url
- date
- likes
- paywall
- cover_image
- cover_image_color_palette
- author
- author_image
Fetches the top (most liked) posts.
top_posts <- get_substack_top("posocap.substack.com", limit = 5)
Searches posts by keyword.
search_results <- get_substack_search(
publication_url = "posocap.substack.com",
query = "data science",
limit = 20
)
Retrieves a single post by slug.
single_post <- get_substack_post(
publication_url = "posocap.substack.com",
slug = "your-post-slug"
)
- Missing API key → error asking you to run
set_substack_key()
. - HTTP errors (4xx, 5xx, rate limits) →
cli::cli_abort()
with status code and message. - JSON parsing issues → warning + empty data frame.
- Fork the repo
- Create a branch (e.g.
feature/xyz
) - Install dependencies:
devtools::install_deps(dependencies = TRUE)
- Run tests:
devtools::test()
- Submit a pull request.
MIT © Posocap.com
See LICENSE
for details.