Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- **Financial-assistance award methods** for `/api/assistance/{grants,loans,direct_payments,other}/` (Tango API 5.12.1): `list_assistance_*` with every API filter and cursor pagination, and `get_assistance_*` by key (see `docs/API_REFERENCE.md#financial-assistance-awards`).
- **Assistance award sub-routes**: `list_assistance_*_transactions()` and `list_assistance_*_listings()` page through an award's transactions and its money by assistance listing.
- **`AssistanceAward` shape schema and `ShapeConfig.ASSISTANCE_AWARDS_MINIMAL`**, the API's own default shape, so every assistance field and expansion validates client-side.

### Internal / Infra

- **Vendored filter/shape contract refreshed to Tango API 5.12.1**, which adds the four assistance resources; the conformance and shape-coverage gates now map them.

## [1.20.0] - 2026-10-24

### Added
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A modern Python SDK for the [Tango API](https://tango.makegov.com) by MakeGov, f

- **Dynamic Response Shaping** - Request only the fields you need, reducing payload sizes by 60-80%
- **Full Type Safety** - Runtime-generated TypedDict types with accurate type hints for IDE autocomplete
- **Comprehensive API Coverage** - All major Tango API endpoints (contracts, IDVs, OTAs, entities, forecasts, opportunities, notices, grants, protests, webhooks, and more)
- **Comprehensive API Coverage** - All major Tango API endpoints (contracts, IDVs, OTAs, financial-assistance awards, entities, forecasts, opportunities, notices, grants, protests, webhooks, and more)
- **Flexible Data Access** - Dictionary-based response objects with validation
- **Modern Python** - Built for Python 3.12+ using modern async-ready patterns
- **Production-Ready** - Comprehensive test suite with VCR.py-based integration tests
Expand Down Expand Up @@ -256,6 +256,16 @@ notices = client.list_notices(agency="DOD", notice_type="Presolicitation", limit
grants = client.list_grants(agency="HHS", status="F", limit=25) # F = Forecasted
```

### Financial Assistance Awards

```python
# Grants, loans, direct payments and other assistance from USAspending, one method family per endpoint
grants = client.list_assistance_grants(cfda_number="93.778", ordering="-obligated", limit=25)
award = client.get_assistance_grant(grants.results[0]["key"])
transactions = client.list_assistance_grant_transactions(award["key"])
loans = client.list_assistance_loans(pop_state="VA", fiscal_year=2026)
```

### Protests

```python
Expand Down
Loading
Loading