Skip to main content

Query the location of your FindMy devices with Python!

Project description

FindMy.py Logo

FindMy.py

Query Apple's FindMy network with Python!

Docs | Examples | PyPI | Discord

🚀 Overview

The current "Find My-scene" is quite fragmented, with code being all over the place across multiple repositories, written by several authors. This makes it hard to integrate FindMy functionality with your project. FindMy.py aims to make it easy for you to query the location of your AirTags, iDevices and DIY tags with an easy to use Python library.

🧪 Features

  • Cross-platform: no Mac needed
  • Fetch and decrypt location reports
    • Official accessories (AirTags, iDevices, etc.)
    • Custom AirTags (OpenHaystack)
  • Apple account sign-in
    • SMS 2FA support
    • Trusted Device 2FA support
  • Scan for nearby FindMy-devices
    • Decode their info, such as public keys and status bytes
  • Import or create your own accessory keys
  • Both async and sync APIs

📥 Installation

The package can be installed from PyPi:

pip install findmy

For usage examples, see the examples directory. We are also building out a CLI. Try python -m findmy to see the current state of it. Documentation can be found here.

🤝 Contributing

Want to contribute code? That's great! For new features, please open an issue first so we can discuss.

This project uses Ruff for linting and formatting. Before opening a pull request, please ensure that your code adheres to these rules. There are pre-commit hooks included to help you with this, which you can set up as follows:

pip install uv
uv sync  # this installs ruff & pre-commit into your environment
pre-commit install

After following the above steps, your code will be linted and formatted automatically before committing it.

🧠 Derivative projects

There are several other cool projects in the FindMy space! You can check them out here.

🏅 Credits

While I designed the library, the vast majority of actual functionality is made possible by the following wonderful people and organizations:

Project details


Download files

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

Source Distribution

findmy-0.9.8.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

findmy-0.9.8-py3-none-any.whl (49.2 kB view details)

Uploaded Python 3

File details

Details for the file findmy-0.9.8.tar.gz.

File metadata

  • Download URL: findmy-0.9.8.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for findmy-0.9.8.tar.gz
Algorithm Hash digest
SHA256 1592e04ec975aa0b0ae46f12656a24a8c94b5f6e04e0520e2c828ec7b40c0ff8
MD5 b8fb6b19a2453ab5836f646520ca8c2a
BLAKE2b-256 3a6b30ccc6cceb1dd3fb69676fddf77f5cc425142f7868d4281dfa56ce5b64c9

See more details on using hashes here.

File details

Details for the file findmy-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: findmy-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 49.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for findmy-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6fab5541b0823a2652e8c4d5fca5109b13dff7ffe913a365256e62cf81ff3714
MD5 2df31c215e794c8738bd90d635abc44d
BLAKE2b-256 8cb63220459ec780a7eeb8d73d3b049a5393537ed81f89be8ff12dabc5645470

See more details on using hashes here.

Supported by

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