Skip to main content

Unofficial Python SDK for the Akiflow task management API.

Project description

Akiflow Python SDK

PyPI version License: MIT

Work in Progress: This project is under active development and is not yet ready for production use.

Disclaimer: This project is not affiliated with, endorsed by, or associated with Akiflow in any way. It is an unofficial, community-built SDK. The underlying API is undocumented and may change at any time without notice, which could break this library. Use at your own risk.

A lightweight Python SDK for the Akiflow task management API. Built on httpx with full type annotations.

Status

This is an early proof of concept. Currently implemented:

  • Tasks — create, list, update, mark done, delete
  • Labels — create, list, update, delete, lookup by name

Other Akiflow features are not yet covered.

Documentation

Full API documentation is available at thielem.github.io/akiflow-python-sdk.

Installation

Requires Python 3.13+.

pip install akiflow

Or with uv:

uv pip install akiflow

Quick Start

Interactive Login

Note: This SDK only supports Akiflow's passwordless email + OTP login. Other authentication methods (e.g., Google SSO) have not been tested and may not work.

The SDK uses Akiflow's passwordless email + OTP flow:

from akiflow import Akiflow

client = Akiflow(email="you@example.com")  # prompts for OTP code

Reusing Tokens

Save and reuse tokens to avoid logging in every time:

from akiflow import Akiflow

client = Akiflow(
    access_token="eyJ...",
    refresh_token="def50200...",
)

The client automatically refreshes expired access tokens using the refresh token.

Tasks

# Create a task
task = client.task.create("Buy groceries")

# Create a scheduled task with priority
task = client.task.create(
    "Team meeting",
    datetime="2025-01-15T10:00:00",
    duration=3600,
    priority=2,
)

# List tasks
tasks = client.task.list()

# Mark done
client.task.done(task["id"])

# Delete
client.task.delete(task["id"])

Labels

# Create a label
label = client.label.create("Work", color="#FF0000")

# List labels
labels = client.label.list()

# Look up label ID by name
label_id = client.label.get_id("Work")

# Delete
client.label.delete(label_id)

Debugging

Enable debug mode to print all HTTP requests and responses:

client = Akiflow(email="you@example.com", debug=True)

To bypass SSL verification (useful with proxy tools like Proxyman or Charles):

client = Akiflow(email="you@example.com", verify_ssl=False)

Examples

See the examples/ directory for complete working scripts:

  • login_and_create.py — Interactive login with token persistence
  • token_and_create.py — Reuse saved tokens
  • create_and_done.py — Task lifecycle (create, done, delete)
  • label_lifecycle.py — Label CRUD operations

License

MIT

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

akiflow-0.0.1.tar.gz (172.8 kB view details)

Uploaded Source

Built Distribution

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

akiflow-0.0.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file akiflow-0.0.1.tar.gz.

File metadata

  • Download URL: akiflow-0.0.1.tar.gz
  • Upload date:
  • Size: 172.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for akiflow-0.0.1.tar.gz
Algorithm Hash digest
SHA256 fcff1595d527e2fd1286fb9a18d359174e0f1c51ef37cebe0628e89426f4cf20
MD5 bcd79f3d65e2c594cfe2255969946d9d
BLAKE2b-256 f84dd543b5f850e4a43774a035ee4c29963166cdd8619232f6c26bf1662d0390

See more details on using hashes here.

Provenance

The following attestation bundles were made for akiflow-0.0.1.tar.gz:

Publisher: deploy.yml on thielem/akiflow-python-sdk

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

File details

Details for the file akiflow-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: akiflow-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for akiflow-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c9d91250a50fbc3919f7a2a5353343a79cae3bd0472305ceddd652840e68435
MD5 091f3d496ac9a6dda7d22c76ae1fd566
BLAKE2b-256 d35a7101a45aa6da1c473c7c7e4a2606a5fae2767c7e087ac30515fb81bef78c

See more details on using hashes here.

Provenance

The following attestation bundles were made for akiflow-0.0.1-py3-none-any.whl:

Publisher: deploy.yml on thielem/akiflow-python-sdk

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

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