Interface to the 'Hawkin Dynamics' Force Platform API
Overview
Provides a secure and configurable interface to the 'Hawkin Dynamics' API for accessing athlete performance data, tests, and metadata. The package supports profile-based authentication with secure credential storage via the operating system keychain, automatic access token refresh, and region-aware API routing. Designed for reproducible analysis, data synchronization workflows, and production deployment.
Breaking Changes
- Because
update_athletes()replaces external properties, updating with aposition,sport,doborheightcolumn now removes any external property of that name from the athlete. If an athlete still has one,get_athletes()returns it as a suffixed column such asposition.1; that column is not sent, and a warning says so. Copy any value you want to keep into the native column first.
New Features
create_athletes()andupdate_athletes()now write the athlete profile fieldsposition,sport,dobandheightas native API fields. Previously a column with one of these names was sent as an external (custom) property of the same name.dobaccepts"YYYY-MM-DD", a 4-digit year ("1998"or1998), aDate, or aPOSIXct. Date-times are sent as the calendar date in their own time zone, never shifted to UTC.heightis in centimeters and is rounded to 1 decimal place. A warning is raised when a height below 100 is sent, because the API reads those values back as legacy feet or inches (95 reads back as 241.3).- An
NAor blank value is not sent. On update the field is left unchanged; the API cannot clear these fields, so clear them in the Hawkin app. - The output of
get_athletes()can be passed back toupdate_athletes()(orcreate_athletes()) without adding junk external properties.lastTestedOnis read-only and is never sent, andcreate_athletes()no longer sends anidcolumn as an external property.
Bug Fixes
- **CRITICAL:**
update_athletes()always sent anexternalfield, empty ([]) when the data frame had no custom-property columns. The API replaces external properties on update, so an update that only changed, say,nameoractivecould delete every custom property on those athletes.externalis now only sent for an athlete with at least one non-NA, non-blank custom value, and always as a JSON object. With no custom columns, or with every custom cellNAor blank, the athlete's custom properties are left unchanged.create_athletes()follows the same rule. create_athletes()andupdate_athletes()sent ateamsorgroupslist column nested one level too deep ([["t2","t3"]]), and sent a comma-separated string such as"t2,t3"as one ID. Both are now sent as a flat array of IDs: a list column element is flattened, and a string is split on,and trimmed, as the Sheets and Excel add-ins do. A single ID is still sent as an array.NA,NULLor blank values are not sent (on update, the athlete's teams or groups are left unchanged); previously aNULLlist element was sent as[{}].NAand blank custom-property values are no longer sent as external properties. A list-valued custom-property column now sends one string per athlete (several values joined with,) and skipsNULLor empty elements, which were previously sent as[{}]or[[]]and replaced the athlete's real custom properties on update.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK6 OK2026-07-20
Documentation
- Help pages
- 23 (3 internal)
- Examples that run
- 0%10 never run
- Exported functions with examples
- 53%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 88%
- Median days to close, 50 most recently updated closed issues
- 74
- Median days to close, 50 most recently updated closed PRs
- 0
7 development-tooling and community-health practices detected across 3 families in the upstream repository
Checks run against github.com/hawkindynamics/hawkinr on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-07-15 · The repository has a site deploy workflow
pkgdown site last built 2026-07-15, before release 2.2.0 (2026-10-05)
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-05-29Named in .Rbuildignore: .claudeNamed in .gitignore: .claudeCommits: at least 7 crediting it in the message
- Claude CodePull requests: 7 from outside contributors, first on 2025-12-29
- Claude Opus 4.87 commits · May to Jul 2026
Dependencies
Code & Tests
Datasets
People & History
Package metadata
- First published
- 2026-07-19
- Total releases
- 3 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.1.0
- Bundled data
- 12 KB / 1 file
- Download size
- 390 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("hawkinR")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.