invinite-data-api 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- invinite_data_api/__init__.py +534 -0
- invinite_data_api/api/__init__.py +25 -0
- invinite_data_api/api/account_api.py +316 -0
- invinite_data_api/api/as_reported_balance_sheet_api.py +1086 -0
- invinite_data_api/api/as_reported_cash_flow_statement_api.py +1086 -0
- invinite_data_api/api/as_reported_income_statement_api.py +1086 -0
- invinite_data_api/api/as_reported_snapshot_api.py +1035 -0
- invinite_data_api/api/company_api.py +1907 -0
- invinite_data_api/api/earnings_calls_api.py +11855 -0
- invinite_data_api/api/financial_metrics_api.py +1101 -0
- invinite_data_api/api/health_api.py +280 -0
- invinite_data_api/api/insider_trades_api.py +434 -0
- invinite_data_api/api/institutional_ownership_api.py +1480 -0
- invinite_data_api/api/ipos_api.py +397 -0
- invinite_data_api/api/market_api.py +344 -0
- invinite_data_api/api/metadata_api.py +540 -0
- invinite_data_api/api/sec_filings_api.py +1325 -0
- invinite_data_api/api/segmented_financials_api.py +759 -0
- invinite_data_api/api/standardized_balance_sheet_api.py +1086 -0
- invinite_data_api/api/standardized_cash_flow_statement_api.py +1086 -0
- invinite_data_api/api/standardized_income_statement_api.py +1086 -0
- invinite_data_api/api/standardized_snapshot_api.py +1035 -0
- invinite_data_api/api/status_api.py +535 -0
- invinite_data_api/api_client.py +804 -0
- invinite_data_api/api_response.py +21 -0
- invinite_data_api/configuration.py +605 -0
- invinite_data_api/exceptions.py +218 -0
- invinite_data_api/models/__init__.py +239 -0
- invinite_data_api/models/account_usage200_response.py +133 -0
- invinite_data_api/models/account_usage200_response_by_family_inner.py +94 -0
- invinite_data_api/models/account_usage200_response_by_key_inner.py +108 -0
- invinite_data_api/models/account_usage200_response_daily_inner.py +99 -0
- invinite_data_api/models/account_usage200_response_daily_inner_errors.py +96 -0
- invinite_data_api/models/account_usage200_response_period.py +109 -0
- invinite_data_api/models/as_reported_income_statement200_response.py +96 -0
- invinite_data_api/models/as_reported_income_statement200_response_companies_inner.py +102 -0
- invinite_data_api/models/as_reported_income_statement200_response_companies_inner_periods_inner.py +100 -0
- invinite_data_api/models/as_reported_income_statement_detailed200_response.py +96 -0
- invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner.py +102 -0
- invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner_periods_inner.py +113 -0
- invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner_periods_inner_facts_value.py +120 -0
- invinite_data_api/models/as_reported_income_statement_presentation200_response.py +96 -0
- invinite_data_api/models/as_reported_income_statement_presentation200_response_companies_inner.py +102 -0
- invinite_data_api/models/as_reported_income_statement_presentation200_response_companies_inner_periods_inner.py +108 -0
- invinite_data_api/models/as_reported_snapshot_detailed200_response.py +97 -0
- invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner.py +117 -0
- invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner_statements.py +117 -0
- invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner_statements_income_statement.py +101 -0
- invinite_data_api/models/as_reported_snapshot_presentation200_response.py +97 -0
- invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner.py +117 -0
- invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner_statements.py +117 -0
- invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner_statements_income_statement.py +96 -0
- invinite_data_api/models/bad_request_error.py +90 -0
- invinite_data_api/models/company_available_companies200_response.py +98 -0
- invinite_data_api/models/company_available_companies200_response_companies_inner.py +92 -0
- invinite_data_api/models/company_available_companies401_response.py +90 -0
- invinite_data_api/models/company_details200_response.py +96 -0
- invinite_data_api/models/company_details200_response_companies_inner.py +279 -0
- invinite_data_api/models/company_dividends200_response.py +96 -0
- invinite_data_api/models/company_dividends200_response_companies_inner.py +102 -0
- invinite_data_api/models/company_dividends200_response_companies_inner_dividends_inner.py +101 -0
- invinite_data_api/models/company_fiscal_periods200_response.py +96 -0
- invinite_data_api/models/company_fiscal_periods200_response_companies_inner.py +102 -0
- invinite_data_api/models/company_fiscal_periods200_response_companies_inner_periods_inner.py +97 -0
- invinite_data_api/models/company_search200_response.py +100 -0
- invinite_data_api/models/company_search200_response_companies_inner.py +99 -0
- invinite_data_api/models/company_splits200_response.py +96 -0
- invinite_data_api/models/company_splits200_response_companies_inner.py +102 -0
- invinite_data_api/models/company_splits200_response_companies_inner_splits_inner.py +95 -0
- invinite_data_api/models/earnings_calls_analysts200_response.py +102 -0
- invinite_data_api/models/earnings_calls_analysts200_response_analysts_inner.py +116 -0
- invinite_data_api/models/earnings_calls_audio200_response.py +135 -0
- invinite_data_api/models/earnings_calls_audio202_response.py +97 -0
- invinite_data_api/models/earnings_calls_calendar200_response.py +103 -0
- invinite_data_api/models/earnings_calls_calendar200_response_events_inner.py +228 -0
- invinite_data_api/models/earnings_calls_company_document200_response.py +98 -0
- invinite_data_api/models/earnings_calls_company_documents200_response.py +104 -0
- invinite_data_api/models/earnings_calls_company_documents200_response_company.py +92 -0
- invinite_data_api/models/earnings_calls_company_documents200_response_documents_inner.py +293 -0
- invinite_data_api/models/earnings_calls_diff200_response.py +190 -0
- invinite_data_api/models/earnings_calls_diff200_response_hedging.py +100 -0
- invinite_data_api/models/earnings_calls_diff200_response_new_topics_inner.py +97 -0
- invinite_data_api/models/earnings_calls_diff200_response_prior_event.py +92 -0
- invinite_data_api/models/earnings_calls_diff200_response_slide_diff.py +98 -0
- invinite_data_api/models/earnings_calls_document_search200_response.py +98 -0
- invinite_data_api/models/earnings_calls_document_search200_response_hits_inner.py +177 -0
- invinite_data_api/models/earnings_calls_documents200_response.py +104 -0
- invinite_data_api/models/earnings_calls_documents200_response_documents_inner.py +206 -0
- invinite_data_api/models/earnings_calls_events200_response.py +104 -0
- invinite_data_api/models/earnings_calls_events200_response_events_inner.py +238 -0
- invinite_data_api/models/earnings_calls_events200_response_events_inner_observations_inner.py +119 -0
- invinite_data_api/models/earnings_calls_extractions200_response.py +123 -0
- invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner.py +187 -0
- invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner_sources_inner.py +110 -0
- invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner_sources_inner_speaker.py +107 -0
- invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner.py +155 -0
- invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner_filing_link.py +166 -0
- invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner_filing_link_fact_period.py +110 -0
- invinite_data_api/models/earnings_calls_guidance_history200_response.py +102 -0
- invinite_data_api/models/earnings_calls_guidance_history200_response_series_inner.py +183 -0
- invinite_data_api/models/earnings_calls_guidance_history200_response_series_inner_change_vs_prior.py +107 -0
- invinite_data_api/models/earnings_calls_live200_response.py +99 -0
- invinite_data_api/models/earnings_calls_live200_response_events_inner.py +236 -0
- invinite_data_api/models/earnings_calls_live_stream200_response.py +141 -0
- invinite_data_api/models/earnings_calls_live_stream200_response_event.py +96 -0
- invinite_data_api/models/earnings_calls_metrics200_response.py +158 -0
- invinite_data_api/models/earnings_calls_participants200_response.py +109 -0
- invinite_data_api/models/earnings_calls_participants200_response_participants_inner.py +148 -0
- invinite_data_api/models/earnings_calls_participants200_response_participants_inner_evidence_inner.py +90 -0
- invinite_data_api/models/earnings_calls_participants200_response_participation_events_inner.py +105 -0
- invinite_data_api/models/earnings_calls_person200_response.py +133 -0
- invinite_data_api/models/earnings_calls_person200_response_appearances_inner.py +134 -0
- invinite_data_api/models/earnings_calls_press_release200_response.py +146 -0
- invinite_data_api/models/earnings_calls_press_release200_response_participants_inner.py +102 -0
- invinite_data_api/models/earnings_calls_price_attribution200_response.py +190 -0
- invinite_data_api/models/earnings_calls_price_attribution200_response_buckets_inner.py +105 -0
- invinite_data_api/models/earnings_calls_price_attribution200_response_buckets_inner_utterance_refs_inner.py +92 -0
- invinite_data_api/models/earnings_calls_price_attribution200_response_top_minutes_inner.py +101 -0
- invinite_data_api/models/earnings_calls_prosody200_response.py +111 -0
- invinite_data_api/models/earnings_calls_prosody200_response_speakers_inner.py +177 -0
- invinite_data_api/models/earnings_calls_prosody200_response_speakers_inner_speaker.py +109 -0
- invinite_data_api/models/earnings_calls_qa200_response.py +101 -0
- invinite_data_api/models/earnings_calls_qa200_response_pairs_inner.py +149 -0
- invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_analyst.py +110 -0
- invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_answers_inner.py +110 -0
- invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_scores.py +119 -0
- invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_scores_evidence.py +97 -0
- invinite_data_api/models/earnings_calls_search200_response.py +98 -0
- invinite_data_api/models/earnings_calls_search200_response_hits_inner.py +161 -0
- invinite_data_api/models/earnings_calls_search200_response_hits_inner_slide.py +95 -0
- invinite_data_api/models/earnings_calls_slides200_response.py +113 -0
- invinite_data_api/models/earnings_calls_slides200_response_deck.py +124 -0
- invinite_data_api/models/earnings_calls_slides200_response_slides_inner.py +104 -0
- invinite_data_api/models/earnings_calls_transcript200_response.py +140 -0
- invinite_data_api/models/earnings_calls_transcript404_response.py +98 -0
- invinite_data_api/models/earnings_calls_transcript_diff200_response.py +111 -0
- invinite_data_api/models/earnings_calls_transcript_diff200_response_changes_inner.py +104 -0
- invinite_data_api/models/earnings_calls_transcript_diff200_response_stats.py +90 -0
- invinite_data_api/models/earnings_calls_transcript_versions200_response.py +106 -0
- invinite_data_api/models/earnings_calls_transcript_versions200_response_versions_inner.py +116 -0
- invinite_data_api/models/earnings_calls_webhooks_create201_response.py +126 -0
- invinite_data_api/models/earnings_calls_webhooks_create_request.py +97 -0
- invinite_data_api/models/earnings_calls_webhooks_create_request_filters.py +91 -0
- invinite_data_api/models/earnings_calls_webhooks_deliveries200_response.py +97 -0
- invinite_data_api/models/earnings_calls_webhooks_deliveries200_response_data_inner.py +133 -0
- invinite_data_api/models/earnings_calls_webhooks_list200_response.py +96 -0
- invinite_data_api/models/earnings_calls_webhooks_list200_response_data_inner.py +124 -0
- invinite_data_api/models/earnings_calls_webhooks_list200_response_data_inner_filters.py +90 -0
- invinite_data_api/models/earnings_calls_webhooks_rotate_secret200_response.py +91 -0
- invinite_data_api/models/earnings_calls_webhooks_test202_response.py +98 -0
- invinite_data_api/models/earnings_calls_webhooks_update_request.py +95 -0
- invinite_data_api/models/financial_metrics_ratios200_response.py +97 -0
- invinite_data_api/models/financial_metrics_ratios200_response_companies_inner.py +103 -0
- invinite_data_api/models/financial_metrics_ratios200_response_companies_inner_periods_inner.py +109 -0
- invinite_data_api/models/forbidden_error.py +90 -0
- invinite_data_api/models/health_get200_response.py +90 -0
- invinite_data_api/models/insider_trades_list200_response.py +102 -0
- invinite_data_api/models/insider_trades_list200_response_transactions_inner.py +146 -0
- invinite_data_api/models/institutional_ownership_holdings_by_company200_response.py +102 -0
- invinite_data_api/models/institutional_ownership_holdings_by_investor200_response.py +100 -0
- invinite_data_api/models/institutional_ownership_holdings_by_investor200_response_holdings_inner.py +171 -0
- invinite_data_api/models/institutional_ownership_institutions200_response.py +98 -0
- invinite_data_api/models/institutional_ownership_institutions200_response_institutions_inner.py +132 -0
- invinite_data_api/models/institutional_ownership_transactions200_response.py +98 -0
- invinite_data_api/models/institutional_ownership_transactions200_response_transactions_inner.py +186 -0
- invinite_data_api/models/internal_server_error.py +90 -0
- invinite_data_api/models/ipos_list200_response.py +98 -0
- invinite_data_api/models/ipos_list200_response_ipos_inner.py +130 -0
- invinite_data_api/models/market_holidays200_response.py +98 -0
- invinite_data_api/models/market_holidays200_response_holidays_inner.py +105 -0
- invinite_data_api/models/metadata_available_metrics200_response.py +96 -0
- invinite_data_api/models/metadata_available_metrics200_response_metrics_inner.py +90 -0
- invinite_data_api/models/metadata_available_section_ids200_response.py +96 -0
- invinite_data_api/models/metadata_available_section_ids200_response_form_types_inner.py +105 -0
- invinite_data_api/models/metadata_available_section_ids200_response_form_types_inner_sections_inner.py +94 -0
- invinite_data_api/models/not_found_error.py +90 -0
- invinite_data_api/models/presentation_fact.py +112 -0
- invinite_data_api/models/sec_filings_available_form_types200_response.py +88 -0
- invinite_data_api/models/sec_filings_list200_response.py +96 -0
- invinite_data_api/models/sec_filings_list200_response_companies_inner.py +102 -0
- invinite_data_api/models/sec_filings_list200_response_companies_inner_filings_inner.py +127 -0
- invinite_data_api/models/sec_filings_search200_response.py +98 -0
- invinite_data_api/models/sec_filings_search200_response_sources_inner.py +99 -0
- invinite_data_api/models/sec_filings_sections200_response.py +96 -0
- invinite_data_api/models/sec_filings_sections200_response_companies_inner.py +100 -0
- invinite_data_api/models/sec_filings_sections200_response_companies_inner_sections_inner.py +132 -0
- invinite_data_api/models/segmented_financials200_response.py +96 -0
- invinite_data_api/models/segmented_financials200_response_companies_inner.py +102 -0
- invinite_data_api/models/segmented_financials200_response_companies_inner_periods_inner.py +123 -0
- invinite_data_api/models/segmented_financials200_response_companies_inner_periods_inner_facts_value_inner.py +104 -0
- invinite_data_api/models/segmented_financials_detailed200_response.py +96 -0
- invinite_data_api/models/segmented_financials_detailed200_response_companies_inner.py +102 -0
- invinite_data_api/models/segmented_financials_detailed200_response_companies_inner_periods_inner.py +123 -0
- invinite_data_api/models/segmented_financials_detailed200_response_companies_inner_periods_inner_facts_value_inner.py +141 -0
- invinite_data_api/models/service_unavailable_error.py +90 -0
- invinite_data_api/models/standardized_income_statement200_response.py +97 -0
- invinite_data_api/models/standardized_income_statement200_response_companies_inner.py +103 -0
- invinite_data_api/models/standardized_income_statement200_response_companies_inner_periods_inner.py +109 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response.py +97 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner.py +103 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner.py +122 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value.py +120 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula.py +98 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner.py +137 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner_one_of.py +134 -0
- invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner_one_of1.py +120 -0
- invinite_data_api/models/standardized_income_statement_presentation200_response.py +97 -0
- invinite_data_api/models/standardized_income_statement_presentation200_response_companies_inner.py +103 -0
- invinite_data_api/models/standardized_income_statement_presentation200_response_companies_inner_periods_inner.py +117 -0
- invinite_data_api/models/standardized_presentation_fact.py +101 -0
- invinite_data_api/models/standardized_snapshot200_response.py +97 -0
- invinite_data_api/models/standardized_snapshot200_response_companies_inner.py +117 -0
- invinite_data_api/models/standardized_snapshot200_response_companies_inner_statements.py +117 -0
- invinite_data_api/models/standardized_snapshot200_response_companies_inner_statements_income_statement.py +88 -0
- invinite_data_api/models/standardized_snapshot_detailed200_response.py +97 -0
- invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner.py +117 -0
- invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner_statements.py +117 -0
- invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner_statements_income_statement.py +101 -0
- invinite_data_api/models/standardized_snapshot_presentation200_response.py +97 -0
- invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner.py +117 -0
- invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner_statements.py +117 -0
- invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner_statements_income_statement.py +96 -0
- invinite_data_api/models/status_get200_response.py +110 -0
- invinite_data_api/models/status_get200_response_services_inner.py +125 -0
- invinite_data_api/models/status_get200_response_universe.py +99 -0
- invinite_data_api/models/status_get200_response_universe_earnings_calls.py +90 -0
- invinite_data_api/models/status_licensing200_response.py +130 -0
- invinite_data_api/models/status_licensing200_response_families_inner.py +105 -0
- invinite_data_api/models/status_licensing200_response_families_inner_routes_inner.py +106 -0
- invinite_data_api/models/status_licensing200_response_notes.py +98 -0
- invinite_data_api/models/status_licensing200_response_tiers.py +107 -0
- invinite_data_api/models/status_licensing200_response_tiers_free.py +98 -0
- invinite_data_api/models/unauthorized_error.py +90 -0
- invinite_data_api/models/web_socket_call_lifecycle_event.py +116 -0
- invinite_data_api/models/web_socket_error_event.py +109 -0
- invinite_data_api/models/web_socket_filing.py +127 -0
- invinite_data_api/models/web_socket_gap_event.py +104 -0
- invinite_data_api/models/web_socket_guidance_flash_event.py +156 -0
- invinite_data_api/models/web_socket_keyword_hit_event.py +177 -0
- invinite_data_api/models/web_socket_new_filing_event.py +101 -0
- invinite_data_api/models/web_socket_ping_event.py +95 -0
- invinite_data_api/models/web_socket_price_tick_event.py +170 -0
- invinite_data_api/models/web_socket_speaker_names_event.py +112 -0
- invinite_data_api/models/web_socket_speaker_names_event_assignments_inner.py +120 -0
- invinite_data_api/models/web_socket_subscribe_earnings_call.py +183 -0
- invinite_data_api/models/web_socket_subscribed_event.py +142 -0
- invinite_data_api/models/web_socket_transcript_segment_event.py +118 -0
- invinite_data_api/models/web_socket_unsubscribe.py +98 -0
- invinite_data_api/models/web_socket_unsubscribed_event.py +107 -0
- invinite_data_api/models/web_socket_warning_event.py +109 -0
- invinite_data_api/models/webhook_envelope.py +103 -0
- invinite_data_api/py.typed +0 -0
- invinite_data_api/rest.py +263 -0
- invinite_data_api-0.1.0.dist-info/METADATA +133 -0
- invinite_data_api-0.1.0.dist-info/RECORD +257 -0
- invinite_data_api-0.1.0.dist-info/WHEEL +5 -0
- invinite_data_api-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from datetime import date
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Union
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
from pydantic_core import to_jsonable_python
|
|
26
|
+
|
|
27
|
+
class CompanyDividends200ResponseCompaniesInnerDividendsInner(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
CompanyDividends200ResponseCompaniesInnerDividendsInner
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
ex_dividend_date: date = Field(description="Ex-dividend date")
|
|
32
|
+
declaration_date: date = Field(description="Declaration date")
|
|
33
|
+
cash_amount: Union[StrictFloat, StrictInt] = Field(description="Cash amount per share")
|
|
34
|
+
dividend_type: StrictStr = Field(description="Dividend type code")
|
|
35
|
+
frequency: StrictInt = Field(description="Payment frequency per year")
|
|
36
|
+
pay_date: date = Field(description="Payable date")
|
|
37
|
+
record_date: date = Field(description="Shareholder record date")
|
|
38
|
+
__properties: ClassVar[List[str]] = ["ex_dividend_date", "declaration_date", "cash_amount", "dividend_type", "frequency", "pay_date", "record_date"]
|
|
39
|
+
|
|
40
|
+
model_config = ConfigDict(
|
|
41
|
+
validate_by_name=True,
|
|
42
|
+
validate_by_alias=True,
|
|
43
|
+
validate_assignment=True,
|
|
44
|
+
protected_namespaces=(),
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def to_str(self) -> str:
|
|
49
|
+
"""Returns the string representation of the model using alias"""
|
|
50
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
51
|
+
|
|
52
|
+
def to_json(self) -> str:
|
|
53
|
+
"""Returns the JSON representation of the model using alias"""
|
|
54
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
58
|
+
"""Create an instance of CompanyDividends200ResponseCompaniesInnerDividendsInner from a JSON string"""
|
|
59
|
+
return cls.from_dict(json.loads(json_str))
|
|
60
|
+
|
|
61
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
62
|
+
"""Return the dictionary representation of the model using alias.
|
|
63
|
+
|
|
64
|
+
This has the following differences from calling pydantic's
|
|
65
|
+
`self.model_dump(by_alias=True)`:
|
|
66
|
+
|
|
67
|
+
* `None` is only added to the output dict for nullable fields that
|
|
68
|
+
were set at model initialization. Other fields with value `None`
|
|
69
|
+
are ignored.
|
|
70
|
+
"""
|
|
71
|
+
excluded_fields: Set[str] = set([
|
|
72
|
+
])
|
|
73
|
+
|
|
74
|
+
_dict = self.model_dump(
|
|
75
|
+
by_alias=True,
|
|
76
|
+
exclude=excluded_fields,
|
|
77
|
+
exclude_none=True,
|
|
78
|
+
)
|
|
79
|
+
return _dict
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
83
|
+
"""Create an instance of CompanyDividends200ResponseCompaniesInnerDividendsInner from a dict"""
|
|
84
|
+
if obj is None:
|
|
85
|
+
return None
|
|
86
|
+
|
|
87
|
+
if not isinstance(obj, dict):
|
|
88
|
+
return cls.model_validate(obj)
|
|
89
|
+
|
|
90
|
+
_obj = cls.model_validate({
|
|
91
|
+
"ex_dividend_date": obj.get("ex_dividend_date"),
|
|
92
|
+
"declaration_date": obj.get("declaration_date"),
|
|
93
|
+
"cash_amount": obj.get("cash_amount"),
|
|
94
|
+
"dividend_type": obj.get("dividend_type"),
|
|
95
|
+
"frequency": obj.get("frequency"),
|
|
96
|
+
"pay_date": obj.get("pay_date"),
|
|
97
|
+
"record_date": obj.get("record_date")
|
|
98
|
+
})
|
|
99
|
+
return _obj
|
|
100
|
+
|
|
101
|
+
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
21
|
+
from typing import Any, ClassVar, Dict, List
|
|
22
|
+
from invinite_data_api.models.company_fiscal_periods200_response_companies_inner import CompanyFiscalPeriods200ResponseCompaniesInner
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
from pydantic_core import to_jsonable_python
|
|
26
|
+
|
|
27
|
+
class CompanyFiscalPeriods200Response(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
CompanyFiscalPeriods200Response
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
companies: List[CompanyFiscalPeriods200ResponseCompaniesInner] = Field(description="Fiscal period lists grouped by company")
|
|
32
|
+
__properties: ClassVar[List[str]] = ["companies"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
validate_by_name=True,
|
|
36
|
+
validate_by_alias=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
49
|
+
|
|
50
|
+
@classmethod
|
|
51
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
+
"""Create an instance of CompanyFiscalPeriods200Response from a JSON string"""
|
|
53
|
+
return cls.from_dict(json.loads(json_str))
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
56
|
+
"""Return the dictionary representation of the model using alias.
|
|
57
|
+
|
|
58
|
+
This has the following differences from calling pydantic's
|
|
59
|
+
`self.model_dump(by_alias=True)`:
|
|
60
|
+
|
|
61
|
+
* `None` is only added to the output dict for nullable fields that
|
|
62
|
+
were set at model initialization. Other fields with value `None`
|
|
63
|
+
are ignored.
|
|
64
|
+
"""
|
|
65
|
+
excluded_fields: Set[str] = set([
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of each item in companies (list)
|
|
74
|
+
_items = []
|
|
75
|
+
if self.companies:
|
|
76
|
+
for _item_companies in self.companies:
|
|
77
|
+
if _item_companies:
|
|
78
|
+
_items.append(_item_companies.to_dict())
|
|
79
|
+
_dict['companies'] = _items
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of CompanyFiscalPeriods200Response from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate({
|
|
92
|
+
"companies": [CompanyFiscalPeriods200ResponseCompaniesInner.from_dict(_item) for _item in obj["companies"]] if obj.get("companies") is not None else None
|
|
93
|
+
})
|
|
94
|
+
return _obj
|
|
95
|
+
|
|
96
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from invinite_data_api.models.company_fiscal_periods200_response_companies_inner_periods_inner import CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
from pydantic_core import to_jsonable_python
|
|
26
|
+
|
|
27
|
+
class CompanyFiscalPeriods200ResponseCompaniesInner(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
CompanyFiscalPeriods200ResponseCompaniesInner
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
ticker: StrictStr = Field(description="Ticker symbol")
|
|
32
|
+
cik: StrictStr = Field(description="CIK with or without leading zeros")
|
|
33
|
+
periods: List[CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner] = Field(description="Fiscal periods for the company")
|
|
34
|
+
next_url: Optional[StrictStr] = Field(default=None, description="URL for the next page (includes next offset and same limit). Omitted when no next page exists.")
|
|
35
|
+
__properties: ClassVar[List[str]] = ["ticker", "cik", "periods", "next_url"]
|
|
36
|
+
|
|
37
|
+
model_config = ConfigDict(
|
|
38
|
+
validate_by_name=True,
|
|
39
|
+
validate_by_alias=True,
|
|
40
|
+
validate_assignment=True,
|
|
41
|
+
protected_namespaces=(),
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def to_str(self) -> str:
|
|
46
|
+
"""Returns the string representation of the model using alias"""
|
|
47
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
48
|
+
|
|
49
|
+
def to_json(self) -> str:
|
|
50
|
+
"""Returns the JSON representation of the model using alias"""
|
|
51
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
+
"""Create an instance of CompanyFiscalPeriods200ResponseCompaniesInner from a JSON string"""
|
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
|
57
|
+
|
|
58
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
59
|
+
"""Return the dictionary representation of the model using alias.
|
|
60
|
+
|
|
61
|
+
This has the following differences from calling pydantic's
|
|
62
|
+
`self.model_dump(by_alias=True)`:
|
|
63
|
+
|
|
64
|
+
* `None` is only added to the output dict for nullable fields that
|
|
65
|
+
were set at model initialization. Other fields with value `None`
|
|
66
|
+
are ignored.
|
|
67
|
+
"""
|
|
68
|
+
excluded_fields: Set[str] = set([
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
_dict = self.model_dump(
|
|
72
|
+
by_alias=True,
|
|
73
|
+
exclude=excluded_fields,
|
|
74
|
+
exclude_none=True,
|
|
75
|
+
)
|
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of each item in periods (list)
|
|
77
|
+
_items = []
|
|
78
|
+
if self.periods:
|
|
79
|
+
for _item_periods in self.periods:
|
|
80
|
+
if _item_periods:
|
|
81
|
+
_items.append(_item_periods.to_dict())
|
|
82
|
+
_dict['periods'] = _items
|
|
83
|
+
return _dict
|
|
84
|
+
|
|
85
|
+
@classmethod
|
|
86
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
87
|
+
"""Create an instance of CompanyFiscalPeriods200ResponseCompaniesInner from a dict"""
|
|
88
|
+
if obj is None:
|
|
89
|
+
return None
|
|
90
|
+
|
|
91
|
+
if not isinstance(obj, dict):
|
|
92
|
+
return cls.model_validate(obj)
|
|
93
|
+
|
|
94
|
+
_obj = cls.model_validate({
|
|
95
|
+
"ticker": obj.get("ticker"),
|
|
96
|
+
"cik": obj.get("cik"),
|
|
97
|
+
"periods": [CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner.from_dict(_item) for _item in obj["periods"]] if obj.get("periods") is not None else None,
|
|
98
|
+
"next_url": obj.get("next_url")
|
|
99
|
+
})
|
|
100
|
+
return _obj
|
|
101
|
+
|
|
102
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from datetime import date
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictInt
|
|
22
|
+
from typing import Any, ClassVar, Dict, List
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
from pydantic_core import to_jsonable_python
|
|
26
|
+
|
|
27
|
+
class CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
fiscal_year: StrictInt = Field(description="Fiscal year")
|
|
32
|
+
fiscal_quarter: StrictInt = Field(description="Fiscal quarter (1-4)")
|
|
33
|
+
calendar_year: StrictInt = Field(description="Calendar year")
|
|
34
|
+
calendar_quarter: StrictInt = Field(description="Calendar quarter (1-4)")
|
|
35
|
+
period_end: date = Field(description="Period end date")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["fiscal_year", "fiscal_quarter", "calendar_year", "calendar_quarter", "period_end"]
|
|
37
|
+
|
|
38
|
+
model_config = ConfigDict(
|
|
39
|
+
validate_by_name=True,
|
|
40
|
+
validate_by_alias=True,
|
|
41
|
+
validate_assignment=True,
|
|
42
|
+
protected_namespaces=(),
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def to_str(self) -> str:
|
|
47
|
+
"""Returns the string representation of the model using alias"""
|
|
48
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
49
|
+
|
|
50
|
+
def to_json(self) -> str:
|
|
51
|
+
"""Returns the JSON representation of the model using alias"""
|
|
52
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
56
|
+
"""Create an instance of CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner from a JSON string"""
|
|
57
|
+
return cls.from_dict(json.loads(json_str))
|
|
58
|
+
|
|
59
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
60
|
+
"""Return the dictionary representation of the model using alias.
|
|
61
|
+
|
|
62
|
+
This has the following differences from calling pydantic's
|
|
63
|
+
`self.model_dump(by_alias=True)`:
|
|
64
|
+
|
|
65
|
+
* `None` is only added to the output dict for nullable fields that
|
|
66
|
+
were set at model initialization. Other fields with value `None`
|
|
67
|
+
are ignored.
|
|
68
|
+
"""
|
|
69
|
+
excluded_fields: Set[str] = set([
|
|
70
|
+
])
|
|
71
|
+
|
|
72
|
+
_dict = self.model_dump(
|
|
73
|
+
by_alias=True,
|
|
74
|
+
exclude=excluded_fields,
|
|
75
|
+
exclude_none=True,
|
|
76
|
+
)
|
|
77
|
+
return _dict
|
|
78
|
+
|
|
79
|
+
@classmethod
|
|
80
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
+
"""Create an instance of CompanyFiscalPeriods200ResponseCompaniesInnerPeriodsInner from a dict"""
|
|
82
|
+
if obj is None:
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
if not isinstance(obj, dict):
|
|
86
|
+
return cls.model_validate(obj)
|
|
87
|
+
|
|
88
|
+
_obj = cls.model_validate({
|
|
89
|
+
"fiscal_year": obj.get("fiscal_year"),
|
|
90
|
+
"fiscal_quarter": obj.get("fiscal_quarter"),
|
|
91
|
+
"calendar_year": obj.get("calendar_year"),
|
|
92
|
+
"calendar_quarter": obj.get("calendar_quarter"),
|
|
93
|
+
"period_end": obj.get("period_end")
|
|
94
|
+
})
|
|
95
|
+
return _obj
|
|
96
|
+
|
|
97
|
+
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
22
|
+
from invinite_data_api.models.company_search200_response_companies_inner import CompanySearch200ResponseCompaniesInner
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
from pydantic_core import to_jsonable_python
|
|
26
|
+
|
|
27
|
+
class CompanySearch200Response(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
CompanySearch200Response
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
count: Union[StrictFloat, StrictInt] = Field(description="Total matched companies (may be limited by pagination)")
|
|
32
|
+
companies: List[CompanySearch200ResponseCompaniesInner] = Field(description="Matched companies ordered by ticker")
|
|
33
|
+
next_url: Optional[StrictStr] = Field(default=None, description="URL for the next page (includes next offset and same limit). Omitted when no next page exists.")
|
|
34
|
+
__properties: ClassVar[List[str]] = ["count", "companies", "next_url"]
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
validate_by_name=True,
|
|
38
|
+
validate_by_alias=True,
|
|
39
|
+
validate_assignment=True,
|
|
40
|
+
protected_namespaces=(),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def to_str(self) -> str:
|
|
45
|
+
"""Returns the string representation of the model using alias"""
|
|
46
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
47
|
+
|
|
48
|
+
def to_json(self) -> str:
|
|
49
|
+
"""Returns the JSON representation of the model using alias"""
|
|
50
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
54
|
+
"""Create an instance of CompanySearch200Response from a JSON string"""
|
|
55
|
+
return cls.from_dict(json.loads(json_str))
|
|
56
|
+
|
|
57
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
58
|
+
"""Return the dictionary representation of the model using alias.
|
|
59
|
+
|
|
60
|
+
This has the following differences from calling pydantic's
|
|
61
|
+
`self.model_dump(by_alias=True)`:
|
|
62
|
+
|
|
63
|
+
* `None` is only added to the output dict for nullable fields that
|
|
64
|
+
were set at model initialization. Other fields with value `None`
|
|
65
|
+
are ignored.
|
|
66
|
+
"""
|
|
67
|
+
excluded_fields: Set[str] = set([
|
|
68
|
+
])
|
|
69
|
+
|
|
70
|
+
_dict = self.model_dump(
|
|
71
|
+
by_alias=True,
|
|
72
|
+
exclude=excluded_fields,
|
|
73
|
+
exclude_none=True,
|
|
74
|
+
)
|
|
75
|
+
# override the default output from pydantic by calling `to_dict()` of each item in companies (list)
|
|
76
|
+
_items = []
|
|
77
|
+
if self.companies:
|
|
78
|
+
for _item_companies in self.companies:
|
|
79
|
+
if _item_companies:
|
|
80
|
+
_items.append(_item_companies.to_dict())
|
|
81
|
+
_dict['companies'] = _items
|
|
82
|
+
return _dict
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
86
|
+
"""Create an instance of CompanySearch200Response from a dict"""
|
|
87
|
+
if obj is None:
|
|
88
|
+
return None
|
|
89
|
+
|
|
90
|
+
if not isinstance(obj, dict):
|
|
91
|
+
return cls.model_validate(obj)
|
|
92
|
+
|
|
93
|
+
_obj = cls.model_validate({
|
|
94
|
+
"count": obj.get("count"),
|
|
95
|
+
"companies": [CompanySearch200ResponseCompaniesInner.from_dict(_item) for _item in obj["companies"]] if obj.get("companies") is not None else None,
|
|
96
|
+
"next_url": obj.get("next_url")
|
|
97
|
+
})
|
|
98
|
+
return _obj
|
|
99
|
+
|
|
100
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Invinite API
|
|
5
|
+
|
|
6
|
+
Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
from pydantic_core import to_jsonable_python
|
|
25
|
+
|
|
26
|
+
class CompanySearch200ResponseCompaniesInner(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
CompanySearch200ResponseCompaniesInner
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
cik: StrictStr = Field(description="CIK with or without leading zeros")
|
|
31
|
+
ticker: StrictStr = Field(description="Ticker symbol")
|
|
32
|
+
name: StrictStr = Field(description="Company name")
|
|
33
|
+
logo_url: Optional[StrictStr] = Field(description="Logo image URL")
|
|
34
|
+
__properties: ClassVar[List[str]] = ["cik", "ticker", "name", "logo_url"]
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
validate_by_name=True,
|
|
38
|
+
validate_by_alias=True,
|
|
39
|
+
validate_assignment=True,
|
|
40
|
+
protected_namespaces=(),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def to_str(self) -> str:
|
|
45
|
+
"""Returns the string representation of the model using alias"""
|
|
46
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
47
|
+
|
|
48
|
+
def to_json(self) -> str:
|
|
49
|
+
"""Returns the JSON representation of the model using alias"""
|
|
50
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
54
|
+
"""Create an instance of CompanySearch200ResponseCompaniesInner from a JSON string"""
|
|
55
|
+
return cls.from_dict(json.loads(json_str))
|
|
56
|
+
|
|
57
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
58
|
+
"""Return the dictionary representation of the model using alias.
|
|
59
|
+
|
|
60
|
+
This has the following differences from calling pydantic's
|
|
61
|
+
`self.model_dump(by_alias=True)`:
|
|
62
|
+
|
|
63
|
+
* `None` is only added to the output dict for nullable fields that
|
|
64
|
+
were set at model initialization. Other fields with value `None`
|
|
65
|
+
are ignored.
|
|
66
|
+
"""
|
|
67
|
+
excluded_fields: Set[str] = set([
|
|
68
|
+
])
|
|
69
|
+
|
|
70
|
+
_dict = self.model_dump(
|
|
71
|
+
by_alias=True,
|
|
72
|
+
exclude=excluded_fields,
|
|
73
|
+
exclude_none=True,
|
|
74
|
+
)
|
|
75
|
+
# set to None if logo_url (nullable) is None
|
|
76
|
+
# and model_fields_set contains the field
|
|
77
|
+
if self.logo_url is None and "logo_url" in self.model_fields_set:
|
|
78
|
+
_dict['logo_url'] = None
|
|
79
|
+
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of CompanySearch200ResponseCompaniesInner from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate({
|
|
92
|
+
"cik": obj.get("cik"),
|
|
93
|
+
"ticker": obj.get("ticker"),
|
|
94
|
+
"name": obj.get("name"),
|
|
95
|
+
"logo_url": obj.get("logo_url")
|
|
96
|
+
})
|
|
97
|
+
return _obj
|
|
98
|
+
|
|
99
|
+
|