Metadata-Version: 2.4
Name: fastdar
Version: 0.1.0
Summary: FastDAR client: buyer-intent lead alerts, a public proof ledger you can check yourself, and market signals.
License: MIT
Project-URL: Homepage, https://fastdar.com
Project-URL: Source, https://github.com/FastDAR/fastdar
Keywords: fastdar,lead-alerts,buyer-intent,proof,transparency-log,trading-signals
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Office/Business
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# fastdar

The official Python client for [FastDAR](https://fastdar.com). It covers buyer-intent lead alerts, the public proof ledger and market signals.

It uses only the standard library and needs Python 3.10+.

```sh
pip install fastdar
```

## Check our track record yourself

Every lead alert and signal FastDAR issues is committed to a public, hash-chained ledger before anyone knows how it turns out. This package re-checks the whole thing on your machine:

```sh
fastdar verify                      # the chain, every revealed call, sealed rules, every result
fastdar receipt message.json        # a signed alert you received really came from FastDAR
fastdar speed                       # median minutes from a post appearing to our sealed alert
```

```python
from fastdar import FastDAR

ok, message = FastDAR().proof.verify()   # public calls need no key
```

## Lead alerts

```python
from fastdar import FastDAR

fd = FastDAR()                                        # reads FASTDAR_API_KEY
m = fd.leads.create("emergency plumbing", template="home", area="Leeds",
                    alerts={"email": "me@example.com", "mode": "hot"})

for lead in fd.leads.watch(m["id"]):
    print(lead["score"], lead["url"], lead["text"])

fd.leads.label(m["id"], post_id, True)                # yes, that was a real lead
fd.leads.won(m["id"], post_id, 1200, "GBP")           # and it became a sale (sealed in the ledger)
report = fd.leads.report(m["id"])
```

Other calls on `fd.leads` are `templates()`, `channels()`, `list()`, `get(id)`, `update(id, **fields)`, `run(id)`, `ingest(id, posts)`, `posts(id)`, `test(id)`, `export_csv(id)` and `insights(industry)`.

## Proof, follows, market

- `fd.proof` has `head()`, `key()`, `tracks()`, `rules(track)`, `stats()`, `anchors()`, `speed()`, `won()`, `ledger(after=)`, `verify()` and `verify_receipt(msg)`.
- `fd.follow` has `tracks()`, `add(track, webhook= | email=)`, `list()` and `remove(id)`.
- `fd.market` has `strategies()`, `indicators(bars, strategies)` and `score_news(items)`. FastDAR never serves prices; you send your own bars.

Errors are raised as `FastDARError`, which carries `.status` and `.detail`.

MIT licence.
