Skip to main content

arccos-api banner

arccos-api

PyPI Tests Python License

Your Arccos Golf data, from the terminal or Python.

arccos-api is an unofficial, read-only client for exploring your own rounds, handicap, club distances, strokes gained, pace of play, and more.

Important: Arccos does not provide a public API. This project is not affiliated with Arccos Golf LLC, and upstream changes may occasionally require a library update.

What you can do

  • Browse rounds and hole-by-hole scoring
  • Track handicap, scoring, and strokes-gained trends
  • Inspect smart distances, club shots, and dispersion
  • Compare rounds and review personal bests
  • Explore courses, pace of play, and hole imagery metadata
  • Export data as JSON, CSV, or NDJSON
  • Export opt-in operational and golf telemetry through OpenTelemetry/OTLP
  • Use the same data through a Python client

Golf data access is read-only by design. The client only sends GET requests to the Arccos data API. Login and token refresh use the authentication service's required POST requests, but never create, edit, or delete golf or account data.

Install

Requires Python 3.11 or newer.

pip install arccos-api

For the CLI on macOS or Linux, Homebrew is also available:

brew install pfrederiksen/tap/arccos-api

Optional operating-system keyring support:

pip install 'arccos-api[keyring]'

Optional vendor-neutral OpenTelemetry support:

pip install 'arccos-api[otel]'

Quick start

Authenticate once, then start exploring:

arccos login
arccos rounds
arccos handicap
arccos clubs

Some useful next steps:

arccos round 12345678            # hole-by-hole round detail
arccos stats --dashboard         # strokes-gained dashboard
arccos trends                    # handicap trend
arccos pace                      # pace of play by course
arccos export -f csv -o rounds.csv

Most display commands support --json, and every command supports --help. See the CLI guide for the complete command list, filtering, profiles, shell completion, and export examples.

Use it from Python

arccos login caches credentials, so Python can reuse them without putting a password in source code:

from arccos import ArccosClient

with ArccosClient() as client:
    rounds = client.rounds.list(limit=5)
    handicap = client.handicap.current()
    distances = client.clubs.smart_distances()

    print(f"Handicap: {handicap['userHcp']:.1f}")
    for round_ in rounds:
        print(round_["startTime"][:10], round_["noOfShots"])

You can also authenticate directly:

client = ArccosClient(email="you@example.com", password="your_password")

See the Python client guide for resources and examples, or browse the complete OpenAPI 3.1 specification.

Documentation

Guide Contents
CLI guide Commands, filters, exports, profiles, and environment variables
Python client Authentication, resources, and usage examples
OpenTelemetry Explicit instrumentation, OTLP export, cardinality, and privacy
OpenAPI specification Complete endpoint and schema reference
Examples Runnable Python scripts
Contributing Local setup, tests, style, and releases
Security Credential handling and vulnerability reporting
Changelog Release history

Credentials and privacy

  • Credentials are cached with owner-only permissions in your platform's config directory. Legacy ~/.arccos_creds.json files migrate automatically.
  • Named profiles are available through ARCCOS_PROFILE or command options.
  • Set ARCCOS_KEYRING=true to use the optional OS keyring integration.
  • arccos logout clears local credentials but cannot revoke upstream tokens; change your Arccos password if credentials may be compromised.
  • Use your own account and avoid aggressive polling.

Run arccos doctor to check configuration, credentials, and API connectivity. See SECURITY.md to report a vulnerability privately.

Development

git clone https://github.com/pfrederiksen/arccos-api.git
cd arccos-api
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest

Tests use mocked and sanitized responses; no Arccos account is required. See CONTRIBUTING.md for the full development workflow.

Disclaimer

Not affiliated with, endorsed by, or connected to Arccos Golf LLC. Use your own account credentials only. This project is intended for personal data access and research.

Released under the MIT License.

Metadata

Release files for arccos-api 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arccos-api 0.7.0
File Size Uploaded
arccos_api-0.7.0.tar.gz 80.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arccos-api 0.7.0
File Interpreter ABI Platform
arccos_api-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 140.7 kB

Release files / arccos_api-0.7.0.tar.gz

Download URL arccos_api-0.7.0.tar.gz
Size 80.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d422793f5543bc3bdc5d8010f80783b8031b01da88f508281052f065758e290a
BLAKE2b-256 checksum
How to use checksums
b041f7f0023fbe6fc17c2a466e66e1f47efbee596149ffcf18e82bf8af0ddb43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / arccos_api-0.7.0-py3-none-any.whl

Download URL arccos_api-0.7.0-py3-none-any.whl
Size 60.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
430ef0112b2ab0b14bf3bc7277ed68eab37d66ebd5c0196683c1f3b3a42050f3
BLAKE2b-256 checksum
How to use checksums
a0c8883e55d7397309b7752f4ce41e0e197c7d3c0e0db95c7a4ae2d9469591ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page