Skip to main content

Python client library for Readeck APIs

Project description

Readeck Python Client

A Python client library for the Readeck API, providing easy access to Readeck's bookmark and reading features.

Features

  • Full async/await support
  • Type hints with Pydantic models
  • Comprehensive error handling
  • Support for Python 3.10+
  • Easy authentication with Bearer tokens

Installation

pip install readeck

Quick Start

import asyncio
from readeck import ReadeckClient

async def main():
    client = ReadeckClient(
        base_url="https://your-readeck-instance.com",
        token="your-bearer-token"
    )

    # Get user profile
    profile = await client.get_user_profile()
    print(f"Welcome, {profile.user.username}!")

    # Create a bookmark
    result = await client.create_bookmark(
        url="https://example.com/article",
        title="Interesting Article",
        labels=["reading", "tech"]
    )
    print(f"Bookmark created with ID: {result.bookmark_id}")

    await client.close()

if __name__ == "__main__":
    asyncio.run(main())

Authentication

The client uses Bearer token authentication. You can obtain your token from your Readeck instance's settings.

client = ReadeckClient(
    base_url="https://your-readeck-instance.com",
    token="your-bearer-token"
)

API Reference

User Profile

Get the current user's profile information:

profile = await client.get_user_profile()

Returns a UserProfile object containing:

  • User information (username, email, creation date)
  • Authentication provider details
  • User settings and preferences
  • Reader settings (font, font size, line height)

Bookmarks

Create Bookmark

Create a new bookmark:

# Minimal bookmark
result = await client.create_bookmark(url="https://example.com")

# Bookmark with title
result = await client.create_bookmark(
    url="https://example.com/article",
    title="Article Title"
)

# Bookmark with labels
result = await client.create_bookmark(
    url="https://example.com/tutorial",
    labels=["tutorial", "programming"]
)

# Complete bookmark
result = await client.create_bookmark(
    url="https://example.com/complete",
    title="Complete Example",
    labels=["example", "complete", "demo"]
)

The create_bookmark method returns a BookmarkCreateResult object containing:

  • response: The API response with message and status
  • bookmark_id: The ID of the created bookmark (from response headers)
  • location: The URL of the created resource (from response headers)

Get Bookmarks

Retrieve bookmarks with optional filtering:

# Get all bookmarks
bookmarks = await client.get_bookmarks()

# Get bookmarks with parameters
from readeck import BookmarkListParams

params = BookmarkListParams(
    limit=10,
    search="python",
    labels="programming"
)
bookmarks = await client.get_bookmarks(params)

Development

This project uses uv for dependency management:

# Install dependencies
uv sync --dev

# Run tests
uv run pytest

# Run linting
uv run black src tests
uv run isort src tests
uv run flake8 src tests
uv run mypy src

# Run all checks
uv run pre-commit run --all-files

License

MIT License. See LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

readeck-0.1.2.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

readeck-0.1.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file readeck-0.1.2.tar.gz.

File metadata

  • Download URL: readeck-0.1.2.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for readeck-0.1.2.tar.gz
Algorithm Hash digest
SHA256 529b422fa557c922363d82fae046bdbb5cf984082e9019990c9bf7d7e50cad53
MD5 5f03b5cb8f4a44e65e37db3fef405de2
BLAKE2b-256 111765d8cc9f20e116b52afc93a4a4e2067f722f19f7decfe108fc5c6fc84c99

See more details on using hashes here.

File details

Details for the file readeck-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: readeck-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for readeck-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e2539fe55311cf392d36513e0efc39f5c43103952e9e93a927845d59cdb1378b
MD5 f48435e5ff1d87f32bef0fd9d5181a22
BLAKE2b-256 22a963115b7576978523245eb7b5aa0487de42b41949052ccb6578b04d319996

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