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
  • 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]'

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
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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arccos_api-0.5.3.tar.gz (69.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arccos_api-0.5.3-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file arccos_api-0.5.3.tar.gz.

File metadata

  • Download URL: arccos_api-0.5.3.tar.gz
  • Upload date:
  • Size: 69.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for arccos_api-0.5.3.tar.gz
Algorithm Hash digest
SHA256 847a3cd385415a97f75c3938da37bd0e45f0f42044bb772dd68c0f1dda0d4d06
MD5 01edf035f4ce66d9449e0ab9c50a004b
BLAKE2b-256 4f8039714fc3419c17040df99e83a2c78bdf14e1c0a5f2b56802140815924067

See more details on using hashes here.

Provenance

The following attestation bundles were made for arccos_api-0.5.3.tar.gz:

Publisher: release.yml on pfrederiksen/arccos-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arccos_api-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: arccos_api-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for arccos_api-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5d1a58fab7cb8eafa60a277960580421d498553337f6ee96d83012f800b9a710
MD5 3f45f2c84e89dbfbffac0345d74c3c50
BLAKE2b-256 81a93d2e356b4ab7db99fa3960317093c9d5c81084ff525f73bc1fb176b2a7bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for arccos_api-0.5.3-py3-none-any.whl:

Publisher: release.yml on pfrederiksen/arccos-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.4

2 files

This release

0.5.3 This release

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page