Metadata-Version: 2.4
Name: fulcrumpro
Version: 0.6.0
Summary: A lightweight Python SDK for the Fulcrum Pro API, built with `httpx`.
Requires-Python: >=3.14
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.28.1

# FulcrumPro

A lightweight Python SDK for the [Fulcrum Pro](https://fulcrumpro.com) API, built on [`httpx`](https://www.python-httpx.org/).

## Installation

```bash
pip install fulcrumpro
```

Or with `uv`:

```bash
uv add fulcrumpro
```

## Requirements

- Python 3.14+

## Quick Start

```python
from fulcrumpro import FulcrumPro

client = FulcrumPro(api_token="your-api-token")

job = client.jobs.get("6a0e5cad7c2e97225f8def9c")
print(job["name"])
```

Use as a context manager to ensure the underlying HTTP connection is closed:

```python
with FulcrumPro(api_token="your-api-token") as client:
    job = client.jobs.get("6a0e5cad7c2e97225f8def9c")
```

## Authentication

All requests are authenticated with a Bearer token. Pass your API token when constructing the client:

```python
client = FulcrumPro(api_token="your-api-token")
```

## Resources

### Jobs

```python
# Get a job by ID
job = client.jobs.get("6a0e5cad7c2e97225f8def9c")
```

## Error Handling

All non-2xx responses raise a `FulcrumProError`:

```python
from fulcrumpro import FulcrumPro, FulcrumProError

client = FulcrumPro(api_token="your-api-token")

try:
    job = client.jobs.get("nonexistent-id")
except FulcrumProError as e:
    print(e.status_code)  # e.g. 404
    print(str(e))         # "FulcrumPro API error 404: not found"
```

## Version History

See [CHANGELOG.md](CHANGELOG.md).

## Docs
Full API documentation can be found on [GitHub Pages](https://cautious-adventure-v3ezn65.pages.github.io/fulcrumpro.html)
