From 6316b39c3684f3c3a24210e82ecd010099e131b6 Mon Sep 17 00:00:00 2001 From: "V. David Zvenyach" Date: Thu, 29 Oct 2026 14:27:17 -0500 Subject: [PATCH 1/2] feat(dibbs): add the fsc filter to the DIBBS list methods `list_dibbs_rfqs()`, `list_dibbs_rfps()` and `list_dibbs_awards()` take an optional `fsc` (Federal Supply Class, the first four digits of the NSN), added in Tango API 5.13.0. It is appended after the existing parameters, so positional callers are unaffected. The vendored filter/shape contract is refreshed to API 5.13.0; the financial-assistance resources it now lists are baselined in the shape-coverage gate until the SDK adds them. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 4 + contracts/filter_shape_contract.json | 2249 +++++++++++++++++++++++- contracts/shape_coverage_baseline.json | 6 +- tango/client.py | 9 + tests/test_dibbs_exclusions_sbir.py | 16 + 5 files changed, 2282 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00c8284..795d1f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- **`fsc` on `list_dibbs_rfqs()`, `list_dibbs_rfps()` and `list_dibbs_awards()` (Tango API 5.13.0).** Filters DIBBS records by Federal Supply Class, the first four digits of the NSN (`fsc="6515"`); OR several with `|` (`"6515|6530"`). Each value must be exactly four digits, or the API returns 400. Optional and keyword-style, appended after the existing parameters, so existing calls send the same request. + ## [1.20.0] - 2026-10-24 ### Added diff --git a/contracts/filter_shape_contract.json b/contracts/filter_shape_contract.json index fed5961..c91875f 100644 --- a/contracts/filter_shape_contract.json +++ b/contracts/filter_shape_contract.json @@ -1,6 +1,6 @@ { "meta": { - "api_version": "5.11.0", + "api_version": "5.13.0", "description": "Canonical API filter/shape contract. Downstream consumers (SDK, MCP) should validate their conformance against this manifest.", "generated_from": "scripts/filter_shape_conformance.py", "schema_version": 2 @@ -1596,6 +1596,2230 @@ "swagger_has_key": false, "swagger_params": [] }, + "assistance/direct_payments": { + "basename": "assistance-direct_payments", + "docs_file": null, + "docs_params": [], + "prefix": "assistance/direct_payments", + "resource_key": "assistance/direct_payments", + "runtime": { + "filter_params": [ + "assistance_type", + "award_date", + "award_date_gte", + "award_date_lte", + "awarding_agency", + "business_funds_indicator", + "cfda_number", + "disaster_emergency_fund_code", + "fain", + "fiscal_year", + "fiscal_year_gte", + "fiscal_year_lte", + "funding_agency", + "funding_opportunity_number", + "key", + "obligated_gte", + "obligated_lte", + "ordering", + "pop_country", + "pop_end_date_gte", + "pop_end_date_lte", + "pop_start_date_gte", + "pop_start_date_lte", + "pop_state", + "pop_zip", + "recipient", + "record_type", + "search", + "uei", + "uri" + ], + "filter_params_detail": { + "assistance_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "award_date": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_gte": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_lte": { + "filter_class": "DateFilter", + "type": "date" + }, + "awarding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "business_funds_indicator": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "cfda_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "disaster_emergency_fund_code": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "fain": { + "filter_class": "IdListFilter", + "type": "string" + }, + "fiscal_year": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_gte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_lte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "funding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "funding_opportunity_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "key": { + "filter_class": "IdListFilter", + "type": "string" + }, + "obligated_gte": { + "filter_class": "NumberFilter", + "lookup": "gte", + "type": "number" + }, + "obligated_lte": { + "filter_class": "NumberFilter", + "lookup": "lte", + "type": "number" + }, + "ordering": { + "choices": [ + "-award_date", + "-obligated", + "-pragmatic_obligations", + "award_date", + "obligated", + "pragmatic_obligations" + ], + "choices_count": 6, + "filter_class": "OrderingFilter", + "type": "ordering" + }, + "pop_country": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_end_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_end_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_start_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_start_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_state": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_zip": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "recipient": { + "filter_class": "CharFilter", + "type": "string" + }, + "record_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "search": { + "filter_class": "CharFilter", + "type": "string" + }, + "uei": { + "filter_class": "UeiToEntityUuidFilter", + "type": "string" + }, + "uri": { + "filter_class": "IdListFilter", + "type": "string" + } + }, + "ordering_aliases": [], + "ordering_fields": [ + "award_date", + "obligated", + "pragmatic_obligations" + ], + "pagination": { + "class": "AssistanceKeysetPagination", + "max_page_size": 100 + }, + "shape": { + "expands": { + "assistance_listing": { + "expands": {}, + "fields": [ + "number", + "title" + ] + }, + "assistance_type": { + "expands": {}, + "fields": [ + "code", + "description" + ] + }, + "awarding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "funding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "listings": { + "expands": {}, + "fields": [ + "cfda_number", + "face_value_of_loan", + "first_action_date", + "indirect_cost_federal_share_amount", + "is_primary", + "last_action_date", + "loan_subsidy_cost", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transactions_count" + ] + }, + "obligations_by_fiscal_year": { + "expands": {}, + "fields": [ + "fiscal_year", + "obligated" + ] + }, + "officers": { + "expands": {}, + "fields": [ + "highly_compensated_officer_1_amount", + "highly_compensated_officer_1_name", + "highly_compensated_officer_2_amount", + "highly_compensated_officer_2_name", + "highly_compensated_officer_3_amount", + "highly_compensated_officer_3_name", + "highly_compensated_officer_4_amount", + "highly_compensated_officer_4_name", + "highly_compensated_officer_5_amount", + "highly_compensated_officer_5_name" + ] + }, + "period_of_performance": { + "expands": {}, + "fields": [ + "current_end_date", + "start_date" + ] + }, + "place_of_performance": { + "expands": {}, + "fields": [ + "city_name", + "code", + "country", + "county_fips", + "county_name", + "foreign_location", + "scope", + "state_code", + "state_fips", + "state_name", + "zip_code", + "zip_plus_four" + ] + }, + "recipient": { + "expands": {}, + "fields": [ + "business_types", + "congressional_district", + "congressional_district_original", + "county", + "duns", + "highest_owner", + "legal_business_name", + "legal_business_name_raw", + "uei", + "uuid" + ] + }, + "recipient_address": { + "expands": {}, + "fields": [ + "address_line1", + "address_line2", + "city", + "congressional_district_current", + "congressional_district_original", + "country_code", + "county_fips", + "foreign_city_name", + "foreign_postal_code", + "foreign_province_name", + "state_fips", + "state_or_province_code", + "zip_code", + "zip_code_plus4" + ] + }, + "transactions": { + "expands": {}, + "fields": [ + "action_date_fiscal_year", + "action_type", + "assistance_type_code", + "award_amount_basis", + "award_recipient_basis", + "cfda_number", + "correction_delete_indicator", + "face_value_of_loan", + "indirect_cost_federal_share_amount", + "initial_report_date", + "key", + "last_modified_date", + "loan_subsidy_cost", + "modification_number", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transaction_date" + ] + } + }, + "fields": [ + "assistance_type", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ] + }, + "shape_flat_paths": [ + "assistance_listing", + "assistance_listing.number", + "assistance_listing.title", + "assistance_type", + "assistance_type.code", + "assistance_type.description", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "awarding_office", + "awarding_office.agency_code", + "awarding_office.agency_name", + "awarding_office.department_code", + "awarding_office.department_name", + "awarding_office.office_code", + "awarding_office.office_name", + "awarding_office.organization_id", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_office", + "funding_office.agency_code", + "funding_office.agency_name", + "funding_office.department_code", + "funding_office.department_name", + "funding_office.office_code", + "funding_office.office_name", + "funding_office.organization_id", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings", + "listings.cfda_number", + "listings.face_value_of_loan", + "listings.first_action_date", + "listings.indirect_cost_federal_share_amount", + "listings.is_primary", + "listings.last_action_date", + "listings.loan_subsidy_cost", + "listings.non_federal_funding_amount", + "listings.obligated", + "listings.pragmatic_obligations", + "listings.transactions_count", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "obligations_by_fiscal_year", + "obligations_by_fiscal_year.fiscal_year", + "obligations_by_fiscal_year.obligated", + "officers", + "officers.highly_compensated_officer_1_amount", + "officers.highly_compensated_officer_1_name", + "officers.highly_compensated_officer_2_amount", + "officers.highly_compensated_officer_2_name", + "officers.highly_compensated_officer_3_amount", + "officers.highly_compensated_officer_3_name", + "officers.highly_compensated_officer_4_amount", + "officers.highly_compensated_officer_4_name", + "officers.highly_compensated_officer_5_amount", + "officers.highly_compensated_officer_5_name", + "period_of_performance", + "period_of_performance.current_end_date", + "period_of_performance.start_date", + "place_of_performance", + "place_of_performance.city_name", + "place_of_performance.code", + "place_of_performance.country", + "place_of_performance.county_fips", + "place_of_performance.county_name", + "place_of_performance.foreign_location", + "place_of_performance.scope", + "place_of_performance.state_code", + "place_of_performance.state_fips", + "place_of_performance.state_name", + "place_of_performance.zip_code", + "place_of_performance.zip_plus_four", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "recipient", + "recipient.business_types", + "recipient.congressional_district", + "recipient.congressional_district_original", + "recipient.county", + "recipient.duns", + "recipient.highest_owner", + "recipient.legal_business_name", + "recipient.legal_business_name_raw", + "recipient.uei", + "recipient.uuid", + "recipient_address", + "recipient_address.address_line1", + "recipient_address.address_line2", + "recipient_address.city", + "recipient_address.congressional_district_current", + "recipient_address.congressional_district_original", + "recipient_address.country_code", + "recipient_address.county_fips", + "recipient_address.foreign_city_name", + "recipient_address.foreign_postal_code", + "recipient_address.foreign_province_name", + "recipient_address.state_fips", + "recipient_address.state_or_province_code", + "recipient_address.zip_code", + "recipient_address.zip_code_plus4", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions.action_date_fiscal_year", + "transactions.action_type", + "transactions.assistance_type_code", + "transactions.award_amount_basis", + "transactions.award_recipient_basis", + "transactions.cfda_number", + "transactions.correction_delete_indicator", + "transactions.face_value_of_loan", + "transactions.indirect_cost_federal_share_amount", + "transactions.initial_report_date", + "transactions.key", + "transactions.last_modified_date", + "transactions.loan_subsidy_cost", + "transactions.modification_number", + "transactions.non_federal_funding_amount", + "transactions.obligated", + "transactions.pragmatic_obligations", + "transactions.transaction_date", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ], + "shape_gated_by_level": {}, + "shape_supported": true, + "shape_tier_required": null, + "viewset": "assistance.views.DirectPaymentAwardViewSet" + }, + "swagger_has_key": false, + "swagger_params": [] + }, + "assistance/grants": { + "basename": "assistance-grants", + "docs_file": null, + "docs_params": [], + "prefix": "assistance/grants", + "resource_key": "assistance/grants", + "runtime": { + "filter_params": [ + "assistance_type", + "award_date", + "award_date_gte", + "award_date_lte", + "awarding_agency", + "business_funds_indicator", + "cfda_number", + "disaster_emergency_fund_code", + "fain", + "fiscal_year", + "fiscal_year_gte", + "fiscal_year_lte", + "funding_agency", + "funding_opportunity_number", + "key", + "obligated_gte", + "obligated_lte", + "ordering", + "pop_country", + "pop_end_date_gte", + "pop_end_date_lte", + "pop_start_date_gte", + "pop_start_date_lte", + "pop_state", + "pop_zip", + "recipient", + "record_type", + "search", + "uei", + "uri" + ], + "filter_params_detail": { + "assistance_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "award_date": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_gte": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_lte": { + "filter_class": "DateFilter", + "type": "date" + }, + "awarding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "business_funds_indicator": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "cfda_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "disaster_emergency_fund_code": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "fain": { + "filter_class": "IdListFilter", + "type": "string" + }, + "fiscal_year": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_gte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_lte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "funding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "funding_opportunity_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "key": { + "filter_class": "IdListFilter", + "type": "string" + }, + "obligated_gte": { + "filter_class": "NumberFilter", + "lookup": "gte", + "type": "number" + }, + "obligated_lte": { + "filter_class": "NumberFilter", + "lookup": "lte", + "type": "number" + }, + "ordering": { + "choices": [ + "-award_date", + "-obligated", + "-pragmatic_obligations", + "award_date", + "obligated", + "pragmatic_obligations" + ], + "choices_count": 6, + "filter_class": "OrderingFilter", + "type": "ordering" + }, + "pop_country": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_end_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_end_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_start_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_start_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_state": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_zip": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "recipient": { + "filter_class": "CharFilter", + "type": "string" + }, + "record_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "search": { + "filter_class": "CharFilter", + "type": "string" + }, + "uei": { + "filter_class": "UeiToEntityUuidFilter", + "type": "string" + }, + "uri": { + "filter_class": "IdListFilter", + "type": "string" + } + }, + "ordering_aliases": [], + "ordering_fields": [ + "award_date", + "obligated", + "pragmatic_obligations" + ], + "pagination": { + "class": "AssistanceKeysetPagination", + "max_page_size": 100 + }, + "shape": { + "expands": { + "assistance_listing": { + "expands": {}, + "fields": [ + "number", + "title" + ] + }, + "assistance_type": { + "expands": {}, + "fields": [ + "code", + "description" + ] + }, + "awarding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "funding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "listings": { + "expands": {}, + "fields": [ + "cfda_number", + "face_value_of_loan", + "first_action_date", + "indirect_cost_federal_share_amount", + "is_primary", + "last_action_date", + "loan_subsidy_cost", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transactions_count" + ] + }, + "obligations_by_fiscal_year": { + "expands": {}, + "fields": [ + "fiscal_year", + "obligated" + ] + }, + "officers": { + "expands": {}, + "fields": [ + "highly_compensated_officer_1_amount", + "highly_compensated_officer_1_name", + "highly_compensated_officer_2_amount", + "highly_compensated_officer_2_name", + "highly_compensated_officer_3_amount", + "highly_compensated_officer_3_name", + "highly_compensated_officer_4_amount", + "highly_compensated_officer_4_name", + "highly_compensated_officer_5_amount", + "highly_compensated_officer_5_name" + ] + }, + "period_of_performance": { + "expands": {}, + "fields": [ + "current_end_date", + "start_date" + ] + }, + "place_of_performance": { + "expands": {}, + "fields": [ + "city_name", + "code", + "country", + "county_fips", + "county_name", + "foreign_location", + "scope", + "state_code", + "state_fips", + "state_name", + "zip_code", + "zip_plus_four" + ] + }, + "recipient": { + "expands": {}, + "fields": [ + "business_types", + "congressional_district", + "congressional_district_original", + "county", + "duns", + "highest_owner", + "legal_business_name", + "legal_business_name_raw", + "uei", + "uuid" + ] + }, + "recipient_address": { + "expands": {}, + "fields": [ + "address_line1", + "address_line2", + "city", + "congressional_district_current", + "congressional_district_original", + "country_code", + "county_fips", + "foreign_city_name", + "foreign_postal_code", + "foreign_province_name", + "state_fips", + "state_or_province_code", + "zip_code", + "zip_code_plus4" + ] + }, + "transactions": { + "expands": {}, + "fields": [ + "action_date_fiscal_year", + "action_type", + "assistance_type_code", + "award_amount_basis", + "award_recipient_basis", + "cfda_number", + "correction_delete_indicator", + "face_value_of_loan", + "indirect_cost_federal_share_amount", + "initial_report_date", + "key", + "last_modified_date", + "loan_subsidy_cost", + "modification_number", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transaction_date" + ] + } + }, + "fields": [ + "assistance_type", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ] + }, + "shape_flat_paths": [ + "assistance_listing", + "assistance_listing.number", + "assistance_listing.title", + "assistance_type", + "assistance_type.code", + "assistance_type.description", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "awarding_office", + "awarding_office.agency_code", + "awarding_office.agency_name", + "awarding_office.department_code", + "awarding_office.department_name", + "awarding_office.office_code", + "awarding_office.office_name", + "awarding_office.organization_id", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_office", + "funding_office.agency_code", + "funding_office.agency_name", + "funding_office.department_code", + "funding_office.department_name", + "funding_office.office_code", + "funding_office.office_name", + "funding_office.organization_id", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings", + "listings.cfda_number", + "listings.face_value_of_loan", + "listings.first_action_date", + "listings.indirect_cost_federal_share_amount", + "listings.is_primary", + "listings.last_action_date", + "listings.loan_subsidy_cost", + "listings.non_federal_funding_amount", + "listings.obligated", + "listings.pragmatic_obligations", + "listings.transactions_count", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "obligations_by_fiscal_year", + "obligations_by_fiscal_year.fiscal_year", + "obligations_by_fiscal_year.obligated", + "officers", + "officers.highly_compensated_officer_1_amount", + "officers.highly_compensated_officer_1_name", + "officers.highly_compensated_officer_2_amount", + "officers.highly_compensated_officer_2_name", + "officers.highly_compensated_officer_3_amount", + "officers.highly_compensated_officer_3_name", + "officers.highly_compensated_officer_4_amount", + "officers.highly_compensated_officer_4_name", + "officers.highly_compensated_officer_5_amount", + "officers.highly_compensated_officer_5_name", + "period_of_performance", + "period_of_performance.current_end_date", + "period_of_performance.start_date", + "place_of_performance", + "place_of_performance.city_name", + "place_of_performance.code", + "place_of_performance.country", + "place_of_performance.county_fips", + "place_of_performance.county_name", + "place_of_performance.foreign_location", + "place_of_performance.scope", + "place_of_performance.state_code", + "place_of_performance.state_fips", + "place_of_performance.state_name", + "place_of_performance.zip_code", + "place_of_performance.zip_plus_four", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "recipient", + "recipient.business_types", + "recipient.congressional_district", + "recipient.congressional_district_original", + "recipient.county", + "recipient.duns", + "recipient.highest_owner", + "recipient.legal_business_name", + "recipient.legal_business_name_raw", + "recipient.uei", + "recipient.uuid", + "recipient_address", + "recipient_address.address_line1", + "recipient_address.address_line2", + "recipient_address.city", + "recipient_address.congressional_district_current", + "recipient_address.congressional_district_original", + "recipient_address.country_code", + "recipient_address.county_fips", + "recipient_address.foreign_city_name", + "recipient_address.foreign_postal_code", + "recipient_address.foreign_province_name", + "recipient_address.state_fips", + "recipient_address.state_or_province_code", + "recipient_address.zip_code", + "recipient_address.zip_code_plus4", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions.action_date_fiscal_year", + "transactions.action_type", + "transactions.assistance_type_code", + "transactions.award_amount_basis", + "transactions.award_recipient_basis", + "transactions.cfda_number", + "transactions.correction_delete_indicator", + "transactions.face_value_of_loan", + "transactions.indirect_cost_federal_share_amount", + "transactions.initial_report_date", + "transactions.key", + "transactions.last_modified_date", + "transactions.loan_subsidy_cost", + "transactions.modification_number", + "transactions.non_federal_funding_amount", + "transactions.obligated", + "transactions.pragmatic_obligations", + "transactions.transaction_date", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ], + "shape_gated_by_level": {}, + "shape_supported": true, + "shape_tier_required": null, + "viewset": "assistance.views.GrantAwardViewSet" + }, + "swagger_has_key": false, + "swagger_params": [] + }, + "assistance/loans": { + "basename": "assistance-loans", + "docs_file": null, + "docs_params": [], + "prefix": "assistance/loans", + "resource_key": "assistance/loans", + "runtime": { + "filter_params": [ + "assistance_type", + "award_date", + "award_date_gte", + "award_date_lte", + "awarding_agency", + "business_funds_indicator", + "cfda_number", + "disaster_emergency_fund_code", + "fain", + "fiscal_year", + "fiscal_year_gte", + "fiscal_year_lte", + "funding_agency", + "funding_opportunity_number", + "key", + "obligated_gte", + "obligated_lte", + "ordering", + "pop_country", + "pop_end_date_gte", + "pop_end_date_lte", + "pop_start_date_gte", + "pop_start_date_lte", + "pop_state", + "pop_zip", + "recipient", + "record_type", + "search", + "uei", + "uri" + ], + "filter_params_detail": { + "assistance_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "award_date": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_gte": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_lte": { + "filter_class": "DateFilter", + "type": "date" + }, + "awarding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "business_funds_indicator": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "cfda_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "disaster_emergency_fund_code": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "fain": { + "filter_class": "IdListFilter", + "type": "string" + }, + "fiscal_year": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_gte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_lte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "funding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "funding_opportunity_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "key": { + "filter_class": "IdListFilter", + "type": "string" + }, + "obligated_gte": { + "filter_class": "NumberFilter", + "lookup": "gte", + "type": "number" + }, + "obligated_lte": { + "filter_class": "NumberFilter", + "lookup": "lte", + "type": "number" + }, + "ordering": { + "choices": [ + "-award_date", + "-obligated", + "-pragmatic_obligations", + "award_date", + "obligated", + "pragmatic_obligations" + ], + "choices_count": 6, + "filter_class": "OrderingFilter", + "type": "ordering" + }, + "pop_country": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_end_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_end_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_start_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_start_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_state": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_zip": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "recipient": { + "filter_class": "CharFilter", + "type": "string" + }, + "record_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "search": { + "filter_class": "CharFilter", + "type": "string" + }, + "uei": { + "filter_class": "UeiToEntityUuidFilter", + "type": "string" + }, + "uri": { + "filter_class": "IdListFilter", + "type": "string" + } + }, + "ordering_aliases": [], + "ordering_fields": [ + "award_date", + "obligated", + "pragmatic_obligations" + ], + "pagination": { + "class": "AssistanceKeysetPagination", + "max_page_size": 100 + }, + "shape": { + "expands": { + "assistance_listing": { + "expands": {}, + "fields": [ + "number", + "title" + ] + }, + "assistance_type": { + "expands": {}, + "fields": [ + "code", + "description" + ] + }, + "awarding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "funding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "listings": { + "expands": {}, + "fields": [ + "cfda_number", + "face_value_of_loan", + "first_action_date", + "indirect_cost_federal_share_amount", + "is_primary", + "last_action_date", + "loan_subsidy_cost", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transactions_count" + ] + }, + "obligations_by_fiscal_year": { + "expands": {}, + "fields": [ + "fiscal_year", + "obligated" + ] + }, + "officers": { + "expands": {}, + "fields": [ + "highly_compensated_officer_1_amount", + "highly_compensated_officer_1_name", + "highly_compensated_officer_2_amount", + "highly_compensated_officer_2_name", + "highly_compensated_officer_3_amount", + "highly_compensated_officer_3_name", + "highly_compensated_officer_4_amount", + "highly_compensated_officer_4_name", + "highly_compensated_officer_5_amount", + "highly_compensated_officer_5_name" + ] + }, + "period_of_performance": { + "expands": {}, + "fields": [ + "current_end_date", + "start_date" + ] + }, + "place_of_performance": { + "expands": {}, + "fields": [ + "city_name", + "code", + "country", + "county_fips", + "county_name", + "foreign_location", + "scope", + "state_code", + "state_fips", + "state_name", + "zip_code", + "zip_plus_four" + ] + }, + "recipient": { + "expands": {}, + "fields": [ + "business_types", + "congressional_district", + "congressional_district_original", + "county", + "duns", + "highest_owner", + "legal_business_name", + "legal_business_name_raw", + "uei", + "uuid" + ] + }, + "recipient_address": { + "expands": {}, + "fields": [ + "address_line1", + "address_line2", + "city", + "congressional_district_current", + "congressional_district_original", + "country_code", + "county_fips", + "foreign_city_name", + "foreign_postal_code", + "foreign_province_name", + "state_fips", + "state_or_province_code", + "zip_code", + "zip_code_plus4" + ] + }, + "transactions": { + "expands": {}, + "fields": [ + "action_date_fiscal_year", + "action_type", + "assistance_type_code", + "award_amount_basis", + "award_recipient_basis", + "cfda_number", + "correction_delete_indicator", + "face_value_of_loan", + "indirect_cost_federal_share_amount", + "initial_report_date", + "key", + "last_modified_date", + "loan_subsidy_cost", + "modification_number", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transaction_date" + ] + } + }, + "fields": [ + "assistance_type", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ] + }, + "shape_flat_paths": [ + "assistance_listing", + "assistance_listing.number", + "assistance_listing.title", + "assistance_type", + "assistance_type.code", + "assistance_type.description", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "awarding_office", + "awarding_office.agency_code", + "awarding_office.agency_name", + "awarding_office.department_code", + "awarding_office.department_name", + "awarding_office.office_code", + "awarding_office.office_name", + "awarding_office.organization_id", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_office", + "funding_office.agency_code", + "funding_office.agency_name", + "funding_office.department_code", + "funding_office.department_name", + "funding_office.office_code", + "funding_office.office_name", + "funding_office.organization_id", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings", + "listings.cfda_number", + "listings.face_value_of_loan", + "listings.first_action_date", + "listings.indirect_cost_federal_share_amount", + "listings.is_primary", + "listings.last_action_date", + "listings.loan_subsidy_cost", + "listings.non_federal_funding_amount", + "listings.obligated", + "listings.pragmatic_obligations", + "listings.transactions_count", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "obligations_by_fiscal_year", + "obligations_by_fiscal_year.fiscal_year", + "obligations_by_fiscal_year.obligated", + "officers", + "officers.highly_compensated_officer_1_amount", + "officers.highly_compensated_officer_1_name", + "officers.highly_compensated_officer_2_amount", + "officers.highly_compensated_officer_2_name", + "officers.highly_compensated_officer_3_amount", + "officers.highly_compensated_officer_3_name", + "officers.highly_compensated_officer_4_amount", + "officers.highly_compensated_officer_4_name", + "officers.highly_compensated_officer_5_amount", + "officers.highly_compensated_officer_5_name", + "period_of_performance", + "period_of_performance.current_end_date", + "period_of_performance.start_date", + "place_of_performance", + "place_of_performance.city_name", + "place_of_performance.code", + "place_of_performance.country", + "place_of_performance.county_fips", + "place_of_performance.county_name", + "place_of_performance.foreign_location", + "place_of_performance.scope", + "place_of_performance.state_code", + "place_of_performance.state_fips", + "place_of_performance.state_name", + "place_of_performance.zip_code", + "place_of_performance.zip_plus_four", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "recipient", + "recipient.business_types", + "recipient.congressional_district", + "recipient.congressional_district_original", + "recipient.county", + "recipient.duns", + "recipient.highest_owner", + "recipient.legal_business_name", + "recipient.legal_business_name_raw", + "recipient.uei", + "recipient.uuid", + "recipient_address", + "recipient_address.address_line1", + "recipient_address.address_line2", + "recipient_address.city", + "recipient_address.congressional_district_current", + "recipient_address.congressional_district_original", + "recipient_address.country_code", + "recipient_address.county_fips", + "recipient_address.foreign_city_name", + "recipient_address.foreign_postal_code", + "recipient_address.foreign_province_name", + "recipient_address.state_fips", + "recipient_address.state_or_province_code", + "recipient_address.zip_code", + "recipient_address.zip_code_plus4", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions.action_date_fiscal_year", + "transactions.action_type", + "transactions.assistance_type_code", + "transactions.award_amount_basis", + "transactions.award_recipient_basis", + "transactions.cfda_number", + "transactions.correction_delete_indicator", + "transactions.face_value_of_loan", + "transactions.indirect_cost_federal_share_amount", + "transactions.initial_report_date", + "transactions.key", + "transactions.last_modified_date", + "transactions.loan_subsidy_cost", + "transactions.modification_number", + "transactions.non_federal_funding_amount", + "transactions.obligated", + "transactions.pragmatic_obligations", + "transactions.transaction_date", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ], + "shape_gated_by_level": {}, + "shape_supported": true, + "shape_tier_required": null, + "viewset": "assistance.views.LoanAwardViewSet" + }, + "swagger_has_key": false, + "swagger_params": [] + }, + "assistance/other": { + "basename": "assistance-other", + "docs_file": null, + "docs_params": [], + "prefix": "assistance/other", + "resource_key": "assistance/other", + "runtime": { + "filter_params": [ + "assistance_type", + "award_date", + "award_date_gte", + "award_date_lte", + "awarding_agency", + "business_funds_indicator", + "cfda_number", + "disaster_emergency_fund_code", + "fain", + "fiscal_year", + "fiscal_year_gte", + "fiscal_year_lte", + "funding_agency", + "funding_opportunity_number", + "key", + "obligated_gte", + "obligated_lte", + "ordering", + "pop_country", + "pop_end_date_gte", + "pop_end_date_lte", + "pop_start_date_gte", + "pop_start_date_lte", + "pop_state", + "pop_zip", + "recipient", + "record_type", + "search", + "uei", + "uri" + ], + "filter_params_detail": { + "assistance_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "award_date": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_gte": { + "filter_class": "DateFilter", + "type": "date" + }, + "award_date_lte": { + "filter_class": "DateFilter", + "type": "date" + }, + "awarding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "business_funds_indicator": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "cfda_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "disaster_emergency_fund_code": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "fain": { + "filter_class": "IdListFilter", + "type": "string" + }, + "fiscal_year": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_gte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "fiscal_year_lte": { + "filter_class": "NumberFilter", + "type": "number" + }, + "funding_agency": { + "filter_class": "PerformantAgencyFilter", + "type": "string" + }, + "funding_opportunity_number": { + "filter_class": "IdListFilter", + "type": "string" + }, + "key": { + "filter_class": "IdListFilter", + "type": "string" + }, + "obligated_gte": { + "filter_class": "NumberFilter", + "lookup": "gte", + "type": "number" + }, + "obligated_lte": { + "filter_class": "NumberFilter", + "lookup": "lte", + "type": "number" + }, + "ordering": { + "choices": [ + "-award_date", + "-obligated", + "-pragmatic_obligations", + "award_date", + "obligated", + "pragmatic_obligations" + ], + "choices_count": 6, + "filter_class": "OrderingFilter", + "type": "ordering" + }, + "pop_country": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_end_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_end_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_start_date_gte": { + "filter_class": "DateFilter", + "lookup": "gte", + "type": "date" + }, + "pop_start_date_lte": { + "filter_class": "DateFilter", + "lookup": "lte", + "type": "date" + }, + "pop_state": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "pop_zip": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "recipient": { + "filter_class": "CharFilter", + "type": "string" + }, + "record_type": { + "filter_class": "BaseSmartFilter", + "type": "string" + }, + "search": { + "filter_class": "CharFilter", + "type": "string" + }, + "uei": { + "filter_class": "UeiToEntityUuidFilter", + "type": "string" + }, + "uri": { + "filter_class": "IdListFilter", + "type": "string" + } + }, + "ordering_aliases": [], + "ordering_fields": [ + "award_date", + "obligated", + "pragmatic_obligations" + ], + "pagination": { + "class": "AssistanceKeysetPagination", + "max_page_size": 100 + }, + "shape": { + "expands": { + "assistance_listing": { + "expands": {}, + "fields": [ + "number", + "title" + ] + }, + "assistance_type": { + "expands": {}, + "fields": [ + "code", + "description" + ] + }, + "awarding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "funding_office": { + "expands": {}, + "fields": [ + "agency_code", + "agency_name", + "department_code", + "department_name", + "office_code", + "office_name", + "organization_id" + ] + }, + "listings": { + "expands": {}, + "fields": [ + "cfda_number", + "face_value_of_loan", + "first_action_date", + "indirect_cost_federal_share_amount", + "is_primary", + "last_action_date", + "loan_subsidy_cost", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transactions_count" + ] + }, + "obligations_by_fiscal_year": { + "expands": {}, + "fields": [ + "fiscal_year", + "obligated" + ] + }, + "officers": { + "expands": {}, + "fields": [ + "highly_compensated_officer_1_amount", + "highly_compensated_officer_1_name", + "highly_compensated_officer_2_amount", + "highly_compensated_officer_2_name", + "highly_compensated_officer_3_amount", + "highly_compensated_officer_3_name", + "highly_compensated_officer_4_amount", + "highly_compensated_officer_4_name", + "highly_compensated_officer_5_amount", + "highly_compensated_officer_5_name" + ] + }, + "period_of_performance": { + "expands": {}, + "fields": [ + "current_end_date", + "start_date" + ] + }, + "place_of_performance": { + "expands": {}, + "fields": [ + "city_name", + "code", + "country", + "county_fips", + "county_name", + "foreign_location", + "scope", + "state_code", + "state_fips", + "state_name", + "zip_code", + "zip_plus_four" + ] + }, + "recipient": { + "expands": {}, + "fields": [ + "business_types", + "congressional_district", + "congressional_district_original", + "county", + "duns", + "highest_owner", + "legal_business_name", + "legal_business_name_raw", + "uei", + "uuid" + ] + }, + "recipient_address": { + "expands": {}, + "fields": [ + "address_line1", + "address_line2", + "city", + "congressional_district_current", + "congressional_district_original", + "country_code", + "county_fips", + "foreign_city_name", + "foreign_postal_code", + "foreign_province_name", + "state_fips", + "state_or_province_code", + "zip_code", + "zip_code_plus4" + ] + }, + "transactions": { + "expands": {}, + "fields": [ + "action_date_fiscal_year", + "action_type", + "assistance_type_code", + "award_amount_basis", + "award_recipient_basis", + "cfda_number", + "correction_delete_indicator", + "face_value_of_loan", + "indirect_cost_federal_share_amount", + "initial_report_date", + "key", + "last_modified_date", + "loan_subsidy_cost", + "modification_number", + "non_federal_funding_amount", + "obligated", + "pragmatic_obligations", + "transaction_date" + ] + } + }, + "fields": [ + "assistance_type", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ] + }, + "shape_flat_paths": [ + "assistance_listing", + "assistance_listing.number", + "assistance_listing.title", + "assistance_type", + "assistance_type.code", + "assistance_type.description", + "assistance_types_count", + "award_amount_basis", + "award_date", + "award_recipient_basis", + "award_total_face_value_of_loan", + "award_total_loan_subsidy_cost", + "award_total_non_federal_funding", + "award_total_obligated", + "award_total_outlayed", + "awarding_office", + "awarding_office.agency_code", + "awarding_office.agency_name", + "awarding_office.department_code", + "awarding_office.department_name", + "awarding_office.office_code", + "awarding_office.office_name", + "awarding_office.organization_id", + "business_funds_indicator", + "cfda_number", + "covid19_obligated", + "covid19_outlayed", + "disaster_emergency_fund_codes", + "face_value_of_loan", + "fain", + "federal_accounts_funding_this_award", + "fiscal_year", + "former_award_keys", + "funding_office", + "funding_office.agency_code", + "funding_office.agency_name", + "funding_office.department_code", + "funding_office.department_name", + "funding_office.office_code", + "funding_office.office_name", + "funding_office.organization_id", + "funding_opportunity_goals_text", + "funding_opportunity_number", + "iija_obligated", + "iija_outlayed", + "indirect_cost_federal_share_amount", + "insurance_coverage_amount", + "key", + "last_action_date", + "last_modified_date", + "listings", + "listings.cfda_number", + "listings.face_value_of_loan", + "listings.first_action_date", + "listings.indirect_cost_federal_share_amount", + "listings.is_primary", + "listings.last_action_date", + "listings.loan_subsidy_cost", + "listings.non_federal_funding_amount", + "listings.obligated", + "listings.pragmatic_obligations", + "listings.transactions_count", + "listings_count", + "loan_subsidy_cost", + "non_federal_funding_amount", + "object_classes_funding_this_award", + "obligated", + "obligations_by_fiscal_year", + "obligations_by_fiscal_year.fiscal_year", + "obligations_by_fiscal_year.obligated", + "officers", + "officers.highly_compensated_officer_1_amount", + "officers.highly_compensated_officer_1_name", + "officers.highly_compensated_officer_2_amount", + "officers.highly_compensated_officer_2_name", + "officers.highly_compensated_officer_3_amount", + "officers.highly_compensated_officer_3_name", + "officers.highly_compensated_officer_4_amount", + "officers.highly_compensated_officer_4_name", + "officers.highly_compensated_officer_5_amount", + "officers.highly_compensated_officer_5_name", + "period_of_performance", + "period_of_performance.current_end_date", + "period_of_performance.start_date", + "place_of_performance", + "place_of_performance.city_name", + "place_of_performance.code", + "place_of_performance.country", + "place_of_performance.county_fips", + "place_of_performance.county_name", + "place_of_performance.foreign_location", + "place_of_performance.scope", + "place_of_performance.state_code", + "place_of_performance.state_fips", + "place_of_performance.state_name", + "place_of_performance.zip_code", + "place_of_performance.zip_plus_four", + "pragmatic_obligations", + "program_activities_funding_this_award", + "purposes_differ", + "recipient", + "recipient.business_types", + "recipient.congressional_district", + "recipient.congressional_district_original", + "recipient.county", + "recipient.duns", + "recipient.highest_owner", + "recipient.legal_business_name", + "recipient.legal_business_name_raw", + "recipient.uei", + "recipient.uuid", + "recipient_address", + "recipient_address.address_line1", + "recipient_address.address_line2", + "recipient_address.city", + "recipient_address.congressional_district_current", + "recipient_address.congressional_district_original", + "recipient_address.country_code", + "recipient_address.county_fips", + "recipient_address.foreign_city_name", + "recipient_address.foreign_postal_code", + "recipient_address.foreign_province_name", + "recipient_address.state_fips", + "recipient_address.state_or_province_code", + "recipient_address.zip_code", + "recipient_address.zip_code_plus4", + "record_type", + "sai_number", + "summary", + "title", + "transactions", + "transactions.action_date_fiscal_year", + "transactions.action_type", + "transactions.assistance_type_code", + "transactions.award_amount_basis", + "transactions.award_recipient_basis", + "transactions.cfda_number", + "transactions.correction_delete_indicator", + "transactions.face_value_of_loan", + "transactions.indirect_cost_federal_share_amount", + "transactions.initial_report_date", + "transactions.key", + "transactions.last_modified_date", + "transactions.loan_subsidy_cost", + "transactions.modification_number", + "transactions.non_federal_funding_amount", + "transactions.obligated", + "transactions.pragmatic_obligations", + "transactions.transaction_date", + "transactions_count", + "treasury_accounts_funding_this_award", + "uri" + ], + "shape_gated_by_level": {}, + "shape_supported": true, + "shape_tier_required": null, + "viewset": "assistance.views.OtherAssistanceAwardViewSet" + }, + "swagger_has_key": false, + "swagger_params": [] + }, "assistance_listings": { "basename": "assistancelisting", "docs_file": null, @@ -3797,6 +6021,7 @@ "awardee_cage", "delivery_order_number", "entity", + "fsc", "nsn", "organization", "part_number", @@ -3835,6 +6060,10 @@ "filter_class": "BaseSmartFilter", "type": "string" }, + "fsc": { + "filter_class": "FscFilter", + "type": "string" + }, "nsn": { "filter_class": "BaseSmartFilter", "type": "string" @@ -3981,6 +6210,7 @@ "buyer_code", "closes_date_after", "closes_date_before", + "fsc", "issued_date_after", "issued_date_before", "nsn", @@ -4005,6 +6235,10 @@ "lookup": "lte", "type": "date" }, + "fsc": { + "filter_class": "FscFilter", + "type": "string" + }, "issued_date_after": { "filter_class": "DateFilter", "lookup": "gte", @@ -4117,6 +6351,7 @@ "resource_key": "dibbs/rfqs", "runtime": { "filter_params": [ + "fsc", "issue_date_after", "issue_date_before", "nsn", @@ -4134,6 +6369,10 @@ "status_code" ], "filter_params_detail": { + "fsc": { + "filter_class": "FscFilter", + "type": "string" + }, "issue_date_after": { "filter_class": "DateFilter", "lookup": "gte", @@ -17665,6 +19904,10 @@ "agencies", "agencies_contracts_awarding", "agencies_contracts_funding", + "assistance/direct_payments", + "assistance/grants", + "assistance/loans", + "assistance/other", "assistance_listings", "budget/accounts", "business_types", @@ -17717,6 +19960,10 @@ "no_swagger": [ "agencies_contracts_awarding", "agencies_contracts_funding", + "assistance/direct_payments", + "assistance/grants", + "assistance/loans", + "assistance/other", "budget/accounts", "contracts_subawards", "dibbs/awards", diff --git a/contracts/shape_coverage_baseline.json b/contracts/shape_coverage_baseline.json index 15207af..c3646b2 100644 --- a/contracts/shape_coverage_baseline.json +++ b/contracts/shape_coverage_baseline.json @@ -1,9 +1,13 @@ { "description": "Known reverse shape-coverage gaps (Tango exposes, SDK schema lacks), accepted as a tracked backlog. check_shape_coverage.py fails only on gaps NOT listed here. Burn down and regenerate with --update-baseline.", - "count": 14, + "count": 18, "known_gaps": [ "unmapped_resource|agencies_contracts_awarding|(root)|None", "unmapped_resource|agencies_contracts_funding|(root)|None", + "unmapped_resource|assistance/direct_payments|(root)|None", + "unmapped_resource|assistance/grants|(root)|None", + "unmapped_resource|assistance/loans|(root)|None", + "unmapped_resource|assistance/other|(root)|None", "unmapped_resource|contracts_subawards|(root)|None", "unmapped_resource|entities_contracts|(root)|None", "unmapped_resource|entities_idvs|(root)|None", diff --git a/tango/client.py b/tango/client.py index bb576fc..ee0997c 100644 --- a/tango/client.py +++ b/tango/client.py @@ -3313,6 +3313,7 @@ def list_dibbs_rfqs( return_by_date_before: str | None = None, search: str | None = None, ordering: str | None = None, + fsc: str | None = None, ) -> PaginatedResponse: """ List DLA DIBBS request-for-quote solicitations. @@ -3327,6 +3328,7 @@ def list_dibbs_rfqs( flat_lists: If True, flatten arrays using indexed keys nsn: Filter by National Stock Number part_number: Filter by manufacturer part number + fsc: Filter by four-digit Federal Supply Class (NSN prefix), e.g. "6515" or "6515|6530" solicitation: Filter by solicitation number purchase_request: Filter by purchase request number organization: Filter by buying organization id @@ -3358,6 +3360,7 @@ def list_dibbs_rfqs( for key, val in ( ("nsn", nsn), ("part_number", part_number), + ("fsc", fsc), ("solicitation", solicitation), ("purchase_request", purchase_request), ("organization", organization), @@ -3442,6 +3445,7 @@ def list_dibbs_rfps( closes_date_before: str | None = None, search: str | None = None, ordering: str | None = None, + fsc: str | None = None, ) -> PaginatedResponse: """ List DLA DIBBS request-for-proposal solicitations. @@ -3456,6 +3460,7 @@ def list_dibbs_rfps( flat_lists: If True, flatten arrays using indexed keys nsn: Filter by National Stock Number part_number: Filter by manufacturer part number + fsc: Filter by four-digit Federal Supply Class (NSN prefix), e.g. "6515" or "6515|6530" solicitation: Filter by solicitation number organization: Filter by buying organization id buyer_code: Filter by buyer code @@ -3483,6 +3488,7 @@ def list_dibbs_rfps( for key, val in ( ("nsn", nsn), ("part_number", part_number), + ("fsc", fsc), ("solicitation", solicitation), ("organization", organization), ("buyer_code", buyer_code), @@ -3568,6 +3574,7 @@ def list_dibbs_awards( posted_date_before: str | None = None, search: str | None = None, ordering: str | None = None, + fsc: str | None = None, ) -> PaginatedResponse: """ List DLA DIBBS awards. @@ -3591,6 +3598,7 @@ def list_dibbs_awards( purchase_request: Filter by purchase request number nsn: Filter by National Stock Number part_number: Filter by manufacturer part number + fsc: Filter by four-digit Federal Supply Class (NSN prefix), e.g. "6515" or "6515|6530" awardee_cage: Filter by awardee CAGE code entity: Filter by awardee entity id organization: Filter by buying organization id @@ -3621,6 +3629,7 @@ def list_dibbs_awards( ("purchase_request", purchase_request), ("nsn", nsn), ("part_number", part_number), + ("fsc", fsc), ("awardee_cage", awardee_cage), ("entity", entity), ("organization", organization), diff --git a/tests/test_dibbs_exclusions_sbir.py b/tests/test_dibbs_exclusions_sbir.py index a6ce47f..b785c24 100644 --- a/tests/test_dibbs_exclusions_sbir.py +++ b/tests/test_dibbs_exclusions_sbir.py @@ -90,6 +90,22 @@ def test_list_dibbs_awards_price_bounds(self, mock_request): assert params["total_contract_price_max"] == 5000 assert params["awardee_cage"] == "1ABC2" + @pytest.mark.parametrize( + ("method", "path"), + [ + ("list_dibbs_rfqs", "/api/dibbs/rfqs/"), + ("list_dibbs_rfps", "/api/dibbs/rfps/"), + ("list_dibbs_awards", "/api/dibbs/awards/"), + ], + ) + @patch("tango.client.httpx.Client.request") + def test_list_dibbs_fsc_filter(self, mock_request, method, path): + _mock(mock_request) + getattr(TangoClient(api_key="k"), method)(fsc="6515|6530") + params = _call_params(mock_request) + assert path in _call_url(mock_request) + assert params["fsc"] == "6515|6530" + @patch("tango.client.httpx.Client.request") def test_dibbs_award_results_are_parsed(self, mock_request): _mock( From 457ec6214c93e092cb62ac306ff99903915be394 Mon Sep 17 00:00:00 2001 From: "V. David Zvenyach" Date: Thu, 29 Oct 2026 14:52:42 -0500 Subject: [PATCH 2/2] chore: release 1.21.0 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 2 ++ pyproject.toml | 2 +- tango/__init__.py | 2 +- uv.lock | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 795d1f6..5ab914a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.21.0] - 2026-10-29 + ### Added - **`fsc` on `list_dibbs_rfqs()`, `list_dibbs_rfps()` and `list_dibbs_awards()` (Tango API 5.13.0).** Filters DIBBS records by Federal Supply Class, the first four digits of the NSN (`fsc="6515"`); OR several with `|` (`"6515|6530"`). Each value must be exactly four digits, or the API returns 400. Optional and keyword-style, appended after the existing parameters, so existing calls send the same request. diff --git a/pyproject.toml b/pyproject.toml index 45d99f6..5a25229 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "tango-python" -version = "1.20.0" +version = "1.21.0" description = "Python SDK for the Tango API" readme = "README.md" requires-python = ">=3.12" diff --git a/tango/__init__.py b/tango/__init__.py index 62cd274..41f1b14 100644 --- a/tango/__init__.py +++ b/tango/__init__.py @@ -62,7 +62,7 @@ ) from .webhooks.receiver import Delivery, WebhookReceiver -__version__ = "1.20.0" +__version__ = "1.21.0" __all__ = [ "TangoClient", "TangoAPIError", diff --git a/uv.lock b/uv.lock index d63c40a..7482fda 100644 --- a/uv.lock +++ b/uv.lock @@ -515,7 +515,7 @@ wheels = [ [[package]] name = "tango-python" -version = "1.20.0" +version = "1.21.0" source = { editable = "." } dependencies = [ { name = "httpx" },