Metadata-Version: 2.5
Name: fidatory
Version: 0.0.1
Summary: Python client for the Fidatory Data API: point-in-time, provable SEC data
Project-URL: Homepage, https://fidatory.com
Project-URL: Documentation, https://fidatory.com
Author-email: Fidatory <ops@fidatory.com>
License-Expression: Apache-2.0
Keywords: api,edgar,financial data,point-in-time,sec
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# fidatory

Python client for the [Fidatory](https://fidatory.com) Data API: point-in-time SEC data in which
every revision is kept and every record is provable. No dependencies beyond the standard library.

```sh
pip install fidatory
```

```python
from fidatory import Client

client = Client("fdc_live_...")  # or set FIDATORY_API_KEY

page = client.records(
    "sec.insider_transactions",
    refs=["cik:320193"],
    filters={"transaction_code": "P", "transaction_date": {"gte": "2024-01-01"}},
    limit=50,
)
for record in page["data"]:
    print(record["record_id"], record["payload"])

# The same query as Fidatory knew it on a past date, with every revision.
facts = client.records(
    "sec.financial_facts",
    filters={"cik": "0000320193", "concept": "Revenues"},
    as_of="2023-06-30T00:00:00Z",
    revisions="all",
)

# Every page of a query.
for record in client.iter_records("sec.filings", filters={"form": "10-K"}):
    ...

proof = client.proof(record["revision_id"])
```

Errors raise `fidatory.APIError` with `status`, `code`, `message`, `details`, `request_id` and,
for `429`, `retry_after`.
