apifetch is a small, dependency-light toolkit for talking to
token-authenticated REST APIs from R. It handles three recurring chores:
- Token management — store/get/remove/list tokens in process environment variables (never written to disk), namespaced per service.
- Request building — pluggable authentication and pagination strategies, bundled into a reusable API profile.
- Data retrieval — fetch one page, or fetch everything in chunks row-bound into a single tibble.
It is the generic engine extracted from the
BigDataPE package;
BigDataPE is now just one use case (see vignette("bigdatape")). A
Python sibling lives at
apifetch-py.
# install.packages("pak")
pak::pak("StrategicProjects/apifetch")library(apifetch)
# 1. Describe the API once: where, how to authenticate, how to paginate.
api <- af_api(
endpoint = "https://api.example.com/v1/search",
service = "Example",
auth = af_auth_bearer(), # "Authorization: Bearer <token>"
pagination = af_paginate_offset("query")
)
# 2. Store a token (kept only in this session's environment).
af_store_token("reports", "my-secret-token", service = "Example")
# 3. Fetch.
one_page <- af_fetch(api, "reports", limit = 50)
everything <- af_fetch_all(api, "reports", chunk_size = 1000)Authentication: af_auth_bearer(), af_auth_raw(), af_auth_header(),
af_auth_query().
Pagination: af_paginate_offset(where = "header" | "query"),
af_paginate_none(). ```
