wefunder 0.1.0.beta1
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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +263 -0
- data/lib/wefunder/client.rb +283 -0
- data/lib/wefunder/errors.rb +87 -0
- data/lib/wefunder/oauth.rb +135 -0
- data/lib/wefunder/pagination.rb +52 -0
- data/lib/wefunder/token_manager.rb +80 -0
- data/lib/wefunder/transport.rb +93 -0
- data/lib/wefunder/version.rb +5 -0
- data/lib/wefunder/webhooks.rb +238 -0
- data/lib/wefunder.rb +26 -0
- data/lib/wefunder_generated/api/activity_api.rb +234 -0
- data/lib/wefunder_generated/api/attribution_api.rb +182 -0
- data/lib/wefunder_generated/api/attribution_partners_api.rb +392 -0
- data/lib/wefunder_generated/api/attribution_webhooks_api.rb +504 -0
- data/lib/wefunder_generated/api/campaigns_api.rb +82 -0
- data/lib/wefunder_generated/api/companies_api.rb +101 -0
- data/lib/wefunder_generated/api/explore_api.rb +633 -0
- data/lib/wefunder_generated/api/installations_api.rb +405 -0
- data/lib/wefunder_generated/api/intents_api.rb +301 -0
- data/lib/wefunder_generated/api/investment_delta_api.rb +99 -0
- data/lib/wefunder_generated/api/investments_api.rb +238 -0
- data/lib/wefunder_generated/api/portfolio_api.rb +166 -0
- data/lib/wefunder_generated/api/syndicate_deals_api.rb +381 -0
- data/lib/wefunder_generated/api/syndicate_members_api.rb +976 -0
- data/lib/wefunder_generated/api/syndicate_portfolio_api.rb +178 -0
- data/lib/wefunder_generated/api/syndicate_statistics_api.rb +85 -0
- data/lib/wefunder_generated/api/syndicates_api.rb +226 -0
- data/lib/wefunder_generated/api/users_api.rb +329 -0
- data/lib/wefunder_generated/api/webhook_endpoints_api.rb +539 -0
- data/lib/wefunder_generated/api_client.rb +437 -0
- data/lib/wefunder_generated/api_error.rb +58 -0
- data/lib/wefunder_generated/configuration.rb +392 -0
- data/lib/wefunder_generated/models/anonymized_attribution.rb +298 -0
- data/lib/wefunder_generated/models/anonymized_attribution_attribution.rb +330 -0
- data/lib/wefunder_generated/models/anonymized_attribution_status.rb +260 -0
- data/lib/wefunder_generated/models/attributed_investment_list_envelope.rb +226 -0
- data/lib/wefunder_generated/models/attributed_investment_list_envelope_data_inner.rb +105 -0
- data/lib/wefunder_generated/models/attributed_investment_list_envelope_meta.rb +295 -0
- data/lib/wefunder_generated/models/attribution_campaign_access.rb +241 -0
- data/lib/wefunder_generated/models/attribution_campaign_summary.rb +251 -0
- data/lib/wefunder_generated/models/attribution_campaign_summary_list_envelope.rb +216 -0
- data/lib/wefunder_generated/models/attribution_me.rb +235 -0
- data/lib/wefunder_generated/models/attribution_me_envelope.rb +214 -0
- data/lib/wefunder_generated/models/attribution_partner.rb +275 -0
- data/lib/wefunder_generated/models/attribution_stats.rb +266 -0
- data/lib/wefunder_generated/models/attribution_stats_by_campaign_inner.rb +232 -0
- data/lib/wefunder_generated/models/attribution_stats_by_source_inner.rb +232 -0
- data/lib/wefunder_generated/models/attribution_stats_envelope.rb +214 -0
- data/lib/wefunder_generated/models/attribution_stats_period.rb +223 -0
- data/lib/wefunder_generated/models/attribution_stats_quality_breakdown.rb +236 -0
- data/lib/wefunder_generated/models/attribution_stats_totals.rb +245 -0
- data/lib/wefunder_generated/models/attribution_user.rb +232 -0
- data/lib/wefunder_generated/models/audit_event.rb +234 -0
- data/lib/wefunder_generated/models/audit_event_attributes.rb +391 -0
- data/lib/wefunder_generated/models/audit_event_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/bulk_invite_link_create_input.rb +243 -0
- data/lib/wefunder_generated/models/bulk_invite_link_envelope.rb +237 -0
- data/lib/wefunder_generated/models/bulk_invite_link_envelope_errors_inner.rb +233 -0
- data/lib/wefunder_generated/models/bulk_invite_link_envelope_meta.rb +232 -0
- data/lib/wefunder_generated/models/campaign.rb +232 -0
- data/lib/wefunder_generated/models/campaign_attributes.rb +301 -0
- data/lib/wefunder_generated/models/campaign_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/comment_proposal_envelope.rb +274 -0
- data/lib/wefunder_generated/models/comment_proposal_envelope_draft.rb +260 -0
- data/lib/wefunder_generated/models/comment_proposal_envelope_proposal.rb +286 -0
- data/lib/wefunder_generated/models/comment_proposal_envelope_related_questions_inner.rb +264 -0
- data/lib/wefunder_generated/models/company.rb +234 -0
- data/lib/wefunder_generated/models/company_attributes.rb +318 -0
- data/lib/wefunder_generated/models/company_attributes_location.rb +235 -0
- data/lib/wefunder_generated/models/company_disclosures.rb +268 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes.rb +434 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_business.rb +255 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_capital_structure_inner.rb +255 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_current_position.rb +281 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_filing.rb +256 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_financial_statements.rb +233 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_debts.rb +227 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_debts_items_inner.rb +255 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_notes_inner.rb +284 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_prior_offerings_inner.rb +266 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_ratios.rb +272 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_related_parties.rb +226 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_related_parties_parties_inner.rb +265 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_use_of_funds_inner.rb +226 -0
- data/lib/wefunder_generated/models/company_disclosures_attributes_voting_power_inner.rb +236 -0
- data/lib/wefunder_generated/models/company_disclosures_envelope.rb +214 -0
- data/lib/wefunder_generated/models/company_envelope.rb +214 -0
- data/lib/wefunder_generated/models/company_pitch.rb +268 -0
- data/lib/wefunder_generated/models/company_pitch_attributes.rb +311 -0
- data/lib/wefunder_generated/models/company_pitch_attributes_perks.rb +248 -0
- data/lib/wefunder_generated/models/company_pitch_attributes_story.rb +255 -0
- data/lib/wefunder_generated/models/company_pitch_envelope.rb +214 -0
- data/lib/wefunder_generated/models/company_question.rb +268 -0
- data/lib/wefunder_generated/models/company_question_attributes.rb +329 -0
- data/lib/wefunder_generated/models/company_question_attributes_answers_inner.rb +253 -0
- data/lib/wefunder_generated/models/company_question_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/company_question_list_envelope_meta.rb +301 -0
- data/lib/wefunder_generated/models/company_question_person.rb +247 -0
- data/lib/wefunder_generated/models/company_search_result.rb +268 -0
- data/lib/wefunder_generated/models/company_search_result_attributes.rb +266 -0
- data/lib/wefunder_generated/models/company_search_result_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/company_search_result_list_envelope_meta.rb +223 -0
- data/lib/wefunder_generated/models/company_totals.rb +249 -0
- data/lib/wefunder_generated/models/company_update.rb +269 -0
- data/lib/wefunder_generated/models/company_update_attributes.rb +350 -0
- data/lib/wefunder_generated/models/company_update_attributes_author.rb +215 -0
- data/lib/wefunder_generated/models/company_update_envelope.rb +214 -0
- data/lib/wefunder_generated/models/company_update_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/company_update_list_envelope_meta.rb +243 -0
- data/lib/wefunder_generated/models/connected_app.rb +233 -0
- data/lib/wefunder_generated/models/connected_app_attributes.rb +258 -0
- data/lib/wefunder_generated/models/connected_app_list_envelope.rb +216 -0
- data/lib/wefunder_generated/models/connected_app_revocation.rb +223 -0
- data/lib/wefunder_generated/models/connected_app_revocation_envelope.rb +214 -0
- data/lib/wefunder_generated/models/convertible_note_security.rb +266 -0
- data/lib/wefunder_generated/models/convertible_note_security_terms.rb +266 -0
- data/lib/wefunder_generated/models/create_installation_request.rb +294 -0
- data/lib/wefunder_generated/models/create_installation_token_request.rb +216 -0
- data/lib/wefunder_generated/models/create_intent_request.rb +320 -0
- data/lib/wefunder_generated/models/create_partner_invite_request.rb +287 -0
- data/lib/wefunder_generated/models/create_webhook_endpoint_request.rb +291 -0
- data/lib/wefunder_generated/models/create_webhook_subscription_request.rb +263 -0
- data/lib/wefunder_generated/models/current_raise.rb +288 -0
- data/lib/wefunder_generated/models/deal_investor.rb +234 -0
- data/lib/wefunder_generated/models/deal_investor_attributes.rb +321 -0
- data/lib/wefunder_generated/models/deal_investor_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/deal_investor_list_envelope_meta.rb +252 -0
- data/lib/wefunder_generated/models/debt_security.rb +266 -0
- data/lib/wefunder_generated/models/debt_security_terms.rb +235 -0
- data/lib/wefunder_generated/models/delete_webhook_endpoint200_response.rb +214 -0
- data/lib/wefunder_generated/models/delete_webhook_endpoint200_response_data.rb +232 -0
- data/lib/wefunder_generated/models/disclosure_document.rb +224 -0
- data/lib/wefunder_generated/models/disclosure_person.rb +254 -0
- data/lib/wefunder_generated/models/eligible_target_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/eligible_target_list_envelope_data_inner.rb +295 -0
- data/lib/wefunder_generated/models/equity_security.rb +266 -0
- data/lib/wefunder_generated/models/equity_security_terms.rb +271 -0
- data/lib/wefunder_generated/models/error.rb +214 -0
- data/lib/wefunder_generated/models/error_error.rb +254 -0
- data/lib/wefunder_generated/models/exemption.rb +271 -0
- data/lib/wefunder_generated/models/fiscal_year_financials.rb +296 -0
- data/lib/wefunder_generated/models/follow_state_envelope.rb +214 -0
- data/lib/wefunder_generated/models/follow_state_envelope_data.rb +268 -0
- data/lib/wefunder_generated/models/follow_state_envelope_data_attributes.rb +225 -0
- data/lib/wefunder_generated/models/followed_company.rb +268 -0
- data/lib/wefunder_generated/models/followed_company_attributes.rb +275 -0
- data/lib/wefunder_generated/models/followed_company_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/full_attribution.rb +272 -0
- data/lib/wefunder_generated/models/full_attribution_attribution.rb +326 -0
- data/lib/wefunder_generated/models/full_attribution_investor.rb +242 -0
- data/lib/wefunder_generated/models/full_attribution_status.rb +257 -0
- data/lib/wefunder_generated/models/fund_security.rb +267 -0
- data/lib/wefunder_generated/models/installation.rb +233 -0
- data/lib/wefunder_generated/models/installation_attributes.rb +307 -0
- data/lib/wefunder_generated/models/installation_attributes_target.rb +267 -0
- data/lib/wefunder_generated/models/installation_envelope.rb +223 -0
- data/lib/wefunder_generated/models/installation_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/installation_list_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/installation_token_envelope.rb +232 -0
- data/lib/wefunder_generated/models/installation_token_envelope_token.rb +252 -0
- data/lib/wefunder_generated/models/intent.rb +234 -0
- data/lib/wefunder_generated/models/intent_attributes.rb +375 -0
- data/lib/wefunder_generated/models/intent_attributes_resource_id.rb +106 -0
- data/lib/wefunder_generated/models/intent_envelope.rb +214 -0
- data/lib/wefunder_generated/models/intent_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/intent_preview_envelope.rb +214 -0
- data/lib/wefunder_generated/models/intent_preview_envelope_data.rb +257 -0
- data/lib/wefunder_generated/models/intent_preview_envelope_data_attributes.rb +262 -0
- data/lib/wefunder_generated/models/intent_review.rb +234 -0
- data/lib/wefunder_generated/models/investment_change_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/investment_change_list_envelope_meta.rb +285 -0
- data/lib/wefunder_generated/models/investment_delta_record.rb +504 -0
- data/lib/wefunder_generated/models/investment_delta_record_amounts.rb +251 -0
- data/lib/wefunder_generated/models/investment_delta_record_blockers_inner.rb +224 -0
- data/lib/wefunder_generated/models/investment_delta_record_contracts_inner.rb +234 -0
- data/lib/wefunder_generated/models/investment_delta_record_investor.rb +286 -0
- data/lib/wefunder_generated/models/investment_envelope.rb +223 -0
- data/lib/wefunder_generated/models/investment_envelope_meta.rb +270 -0
- data/lib/wefunder_generated/models/investment_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/investment_list_envelope_meta.rb +288 -0
- data/lib/wefunder_generated/models/investment_session.rb +232 -0
- data/lib/wefunder_generated/models/investment_session_attributes.rb +384 -0
- data/lib/wefunder_generated/models/investment_session_attributes_events_inner.rb +232 -0
- data/lib/wefunder_generated/models/investment_session_create_input.rb +331 -0
- data/lib/wefunder_generated/models/investment_session_envelope.rb +223 -0
- data/lib/wefunder_generated/models/investment_session_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/investment_session_list_envelope_meta.rb +242 -0
- data/lib/wefunder_generated/models/investor.rb +233 -0
- data/lib/wefunder_generated/models/investor_attributes.rb +262 -0
- data/lib/wefunder_generated/models/investor_envelope.rb +214 -0
- data/lib/wefunder_generated/models/investor_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/invite_link.rb +233 -0
- data/lib/wefunder_generated/models/invite_link_attributes.rb +375 -0
- data/lib/wefunder_generated/models/invite_link_attributes_events_inner.rb +243 -0
- data/lib/wefunder_generated/models/invite_link_create_input.rb +295 -0
- data/lib/wefunder_generated/models/invite_link_envelope.rb +223 -0
- data/lib/wefunder_generated/models/invite_link_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/invite_link_update_input.rb +227 -0
- data/lib/wefunder_generated/models/invite_syndicate_member_request.rb +277 -0
- data/lib/wefunder_generated/models/marketing_partner.rb +295 -0
- data/lib/wefunder_generated/models/marketing_partner_envelope.rb +214 -0
- data/lib/wefunder_generated/models/member_investment.rb +234 -0
- data/lib/wefunder_generated/models/member_investment_attributes.rb +301 -0
- data/lib/wefunder_generated/models/member_investment_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/member_investment_list_envelope_meta.rb +225 -0
- data/lib/wefunder_generated/models/my_company.rb +268 -0
- data/lib/wefunder_generated/models/my_company_attributes.rb +257 -0
- data/lib/wefunder_generated/models/my_company_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/offering.rb +267 -0
- data/lib/wefunder_generated/models/offering_attributes.rb +469 -0
- data/lib/wefunder_generated/models/offering_attributes_intended_security.rb +258 -0
- data/lib/wefunder_generated/models/offering_attributes_security.rb +105 -0
- data/lib/wefunder_generated/models/offering_envelope.rb +214 -0
- data/lib/wefunder_generated/models/offering_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/offering_list_envelope_meta.rb +265 -0
- data/lib/wefunder_generated/models/offering_stats_envelope.rb +223 -0
- data/lib/wefunder_generated/models/offering_stats_envelope_data.rb +253 -0
- data/lib/wefunder_generated/models/offering_stats_envelope_data_by_status_value.rb +232 -0
- data/lib/wefunder_generated/models/offering_stats_envelope_data_total.rb +233 -0
- data/lib/wefunder_generated/models/offering_stats_envelope_meta.rb +258 -0
- data/lib/wefunder_generated/models/offering_warnings_inner.rb +257 -0
- data/lib/wefunder_generated/models/other_security.rb +267 -0
- data/lib/wefunder_generated/models/other_security_terms.rb +235 -0
- data/lib/wefunder_generated/models/pagination_meta.rb +234 -0
- data/lib/wefunder_generated/models/pagination_meta_next_cursor.rb +106 -0
- data/lib/wefunder_generated/models/partner_investment.rb +232 -0
- data/lib/wefunder_generated/models/partner_investment_attributes.rb +305 -0
- data/lib/wefunder_generated/models/partner_investment_attributes_accreditation.rb +289 -0
- data/lib/wefunder_generated/models/partner_investment_envelope.rb +214 -0
- data/lib/wefunder_generated/models/partner_investment_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/partner_investor.rb +233 -0
- data/lib/wefunder_generated/models/partner_investor_attributes.rb +264 -0
- data/lib/wefunder_generated/models/partner_investor_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/partner_invite.rb +360 -0
- data/lib/wefunder_generated/models/partner_invite_envelope.rb +214 -0
- data/lib/wefunder_generated/models/partner_invite_list_envelope.rb +216 -0
- data/lib/wefunder_generated/models/partner_webhook_event.rb +257 -0
- data/lib/wefunder_generated/models/partner_webhook_event_envelope.rb +214 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription.rb +232 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_attributes.rb +243 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_create_input.rb +239 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_envelope.rb +214 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_list_envelope.rb +216 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret.rb +239 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret_all_of_attributes.rb +215 -0
- data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret_envelope.rb +214 -0
- data/lib/wefunder_generated/models/past_round.rb +309 -0
- data/lib/wefunder_generated/models/perk_tier.rb +226 -0
- data/lib/wefunder_generated/models/pitch_block.rb +375 -0
- data/lib/wefunder_generated/models/pitch_block_links_inner.rb +226 -0
- data/lib/wefunder_generated/models/portfolio_company_ref.rb +235 -0
- data/lib/wefunder_generated/models/portfolio_holding.rb +258 -0
- data/lib/wefunder_generated/models/portfolio_position.rb +268 -0
- data/lib/wefunder_generated/models/portfolio_position_attributes.rb +456 -0
- data/lib/wefunder_generated/models/portfolio_position_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/portfolio_position_list_envelope_meta.rb +234 -0
- data/lib/wefunder_generated/models/portfolio_security.rb +323 -0
- data/lib/wefunder_generated/models/portfolio_security_owner.rb +258 -0
- data/lib/wefunder_generated/models/portfolio_security_terms.rb +257 -0
- data/lib/wefunder_generated/models/portfolio_summary_envelope.rb +214 -0
- data/lib/wefunder_generated/models/portfolio_summary_envelope_data.rb +223 -0
- data/lib/wefunder_generated/models/portfolio_summary_envelope_data_attributes.rb +292 -0
- data/lib/wefunder_generated/models/portfolio_summary_envelope_data_attributes_position_counts.rb +242 -0
- data/lib/wefunder_generated/models/preview_intent_request.rb +262 -0
- data/lib/wefunder_generated/models/register_as_partner_request.rb +232 -0
- data/lib/wefunder_generated/models/reorder_syndicate_members_request.rb +224 -0
- data/lib/wefunder_generated/models/revenue_share_security.rb +266 -0
- data/lib/wefunder_generated/models/revenue_share_security_terms.rb +300 -0
- data/lib/wefunder_generated/models/safe_security.rb +266 -0
- data/lib/wefunder_generated/models/safe_security_terms.rb +257 -0
- data/lib/wefunder_generated/models/security.rb +66 -0
- data/lib/wefunder_generated/models/security_summary.rb +272 -0
- data/lib/wefunder_generated/models/spv.rb +232 -0
- data/lib/wefunder_generated/models/spv_attributes.rb +353 -0
- data/lib/wefunder_generated/models/spv_attributes_target_company.rb +223 -0
- data/lib/wefunder_generated/models/spv_cancel_intent_envelope.rb +224 -0
- data/lib/wefunder_generated/models/spv_cancel_intent_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/spv_close_intent_envelope.rb +224 -0
- data/lib/wefunder_generated/models/spv_close_intent_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/spv_create_input.rb +274 -0
- data/lib/wefunder_generated/models/spv_envelope.rb +214 -0
- data/lib/wefunder_generated/models/spv_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/spv_metrics.rb +261 -0
- data/lib/wefunder_generated/models/spv_settings.rb +275 -0
- data/lib/wefunder_generated/models/spv_status.rb +232 -0
- data/lib/wefunder_generated/models/spv_status_attributes.rb +289 -0
- data/lib/wefunder_generated/models/spv_status_envelope.rb +223 -0
- data/lib/wefunder_generated/models/spv_terms.rb +348 -0
- data/lib/wefunder_generated/models/spv_with_meta_envelope.rb +223 -0
- data/lib/wefunder_generated/models/spv_with_meta_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/syndicate.rb +234 -0
- data/lib/wefunder_generated/models/syndicate_attributes.rb +412 -0
- data/lib/wefunder_generated/models/syndicate_attributes_annual_subscription.rb +236 -0
- data/lib/wefunder_generated/models/syndicate_attributes_traditional_fund.rb +225 -0
- data/lib/wefunder_generated/models/syndicate_deal.rb +234 -0
- data/lib/wefunder_generated/models/syndicate_deal_attributes.rb +435 -0
- data/lib/wefunder_generated/models/syndicate_deal_attributes_exemption.rb +105 -0
- data/lib/wefunder_generated/models/syndicate_deal_attributes_security.rb +105 -0
- data/lib/wefunder_generated/models/syndicate_deal_close_intent_envelope.rb +224 -0
- data/lib/wefunder_generated/models/syndicate_deal_close_intent_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_deal_detail_envelope.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_deal_envelope.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_deal_finalize_intent_envelope.rb +224 -0
- data/lib/wefunder_generated/models/syndicate_deal_finalize_intent_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_deal_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/syndicate_detail_envelope.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/syndicate_member.rb +234 -0
- data/lib/wefunder_generated/models/syndicate_member_attributes.rb +650 -0
- data/lib/wefunder_generated/models/syndicate_member_envelope.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_member_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope.rb +214 -0
- data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data.rb +223 -0
- data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data_attributes.rb +302 -0
- data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data_attributes_deal_counts.rb +242 -0
- data/lib/wefunder_generated/models/syndicate_statistics.rb +224 -0
- data/lib/wefunder_generated/models/syndicate_statistics_attributes.rb +277 -0
- data/lib/wefunder_generated/models/syndicate_statistics_envelope.rb +214 -0
- data/lib/wefunder_generated/models/tag_ref.rb +238 -0
- data/lib/wefunder_generated/models/target_company_input.rb +258 -0
- data/lib/wefunder_generated/models/test_webhook_endpoint_request.rb +249 -0
- data/lib/wefunder_generated/models/update_syndicate_member_request.rb +221 -0
- data/lib/wefunder_generated/models/update_syndicate_member_request_member.rb +251 -0
- data/lib/wefunder_generated/models/update_syndicate_request.rb +221 -0
- data/lib/wefunder_generated/models/update_syndicate_request_syndicate.rb +232 -0
- data/lib/wefunder_generated/models/update_webhook_endpoint_request.rb +252 -0
- data/lib/wefunder_generated/models/user.rb +233 -0
- data/lib/wefunder_generated/models/user_attributes.rb +300 -0
- data/lib/wefunder_generated/models/user_envelope.rb +214 -0
- data/lib/wefunder_generated/models/validation_error.rb +215 -0
- data/lib/wefunder_generated/models/validation_error_error.rb +234 -0
- data/lib/wefunder_generated/models/validation_error_error_details_inner.rb +232 -0
- data/lib/wefunder_generated/models/webhook_delivery.rb +318 -0
- data/lib/wefunder_generated/models/webhook_endpoint.rb +232 -0
- data/lib/wefunder_generated/models/webhook_endpoint_attributes.rb +327 -0
- data/lib/wefunder_generated/models/webhook_endpoint_envelope.rb +223 -0
- data/lib/wefunder_generated/models/webhook_endpoint_envelope_meta.rb +214 -0
- data/lib/wefunder_generated/models/webhook_endpoint_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/webhook_endpoint_list_envelope_meta.rb +233 -0
- data/lib/wefunder_generated/models/webhook_endpoint_test_result_envelope.rb +223 -0
- data/lib/wefunder_generated/models/webhook_endpoint_test_result_envelope_data.rb +306 -0
- data/lib/wefunder_generated/models/webhook_subscription.rb +304 -0
- data/lib/wefunder_generated/models/webhook_subscription_envelope.rb +214 -0
- data/lib/wefunder_generated/models/webhook_subscription_list_envelope.rb +225 -0
- data/lib/wefunder_generated/models/webhook_subscription_list_envelope_meta.rb +225 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope.rb +214 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope_data.rb +322 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_secret2_envelope.rb +214 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_secret2_envelope_data.rb +320 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope.rb +214 -0
- data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope_data.rb +320 -0
- data/lib/wefunder_generated/models/webhook_test_result.rb +233 -0
- data/lib/wefunder_generated/models/webhook_test_result_envelope.rb +214 -0
- data/lib/wefunder_generated/models/wefunder_round.rb +330 -0
- data/lib/wefunder_generated/models/wefunder_round_exemption.rb +104 -0
- data/lib/wefunder_generated/models/wefunder_round_security.rb +104 -0
- data/lib/wefunder_generated/version.rb +15 -0
- data/lib/wefunder_generated.rb +382 -0
- metadata +456 -0
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Wefunder API v2
|
|
3
|
+
|
|
4
|
+
#OAuth 2.0 API for accessing Wefunder data programmatically. ## Authentication This API uses OAuth 2.0 for authentication. To get started: 1. Create an OAuth application at `/oauth/applications` 2. Get your Client ID and Client Secret 3. Implement the OAuth 2.0 Authorization Code flow 4. Use the access token to make API requests ## Versioning The API is versioned by the dated `Wefunder-Version` request header (`YYYY-MM-DD`), never by the URL. Resolution is header → your application's pinned version → latest; every response carries `Wefunder-Version` (the version that handled it) and `Wefunder-Version-Latest`. An unknown value returns `400 invalid_request` naming the valid versions. Current: `2026-10-01`. ## Rate Limits - Standard API: 1,000 requests/hour per token - Admin API: 10,000 requests/hour per token ## Base URL All API requests should be made to: `https://api.wefunder.com` (no version in the path).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 2.0
|
|
7
|
+
Contact: api@wefunder.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.10.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'cgi'
|
|
14
|
+
|
|
15
|
+
module WefunderGenerated
|
|
16
|
+
class ExploreApi
|
|
17
|
+
attr_accessor :api_client
|
|
18
|
+
|
|
19
|
+
def initialize(api_client = ApiClient.default)
|
|
20
|
+
@api_client = api_client
|
|
21
|
+
end
|
|
22
|
+
# Get a company page
|
|
23
|
+
# The company page behind an offering, as structured data — the \"click a company\" step after `/explore`. Addressed by the `co_...` id every offering carries in `company.id`. Keeps apart the three raised numbers the page shows and readers conflate: `current_raise.amount_raised` (this campaign's live rounds combined, on Wefunder), `past_rounds[]` (prior rounds the page lists, each tagged `source: wefunder` for rounds observed here or `reported` for founder-disclosed off-platform rounds), and `totals.profile_total_raised` (the number on the page's ticker bar). Every figure comes from the same policy the page uses, so the API never disagrees with the site. **Who has a page.** Every company whose profile wefunder.com lists publicly — the same set the site's search bar returns (published, not invite-only, searchable or with a live Form C; accredited-only companies need an accredited viewer) — plus the `/explore` set. A funded company, or one the viewer may see no round of, renders with `raising: false` and `current_raise: null`; its history is in `wefunder_rounds`. **Logged-in view (`read:explore`)** additionally covers the vault / syndicate-led companies the site shows an accredited viewer, and the round described is the one the page would show that viewer. A valid id for a company outside the viewer's set is a `404`, never a partial payload.
|
|
24
|
+
# @param id [String] The company's id (`co_...`).
|
|
25
|
+
# @param [Hash] opts the optional parameters
|
|
26
|
+
# @return [CompanyEnvelope]
|
|
27
|
+
def get_company(id, opts = {})
|
|
28
|
+
data, _status_code, _headers = get_company_with_http_info(id, opts)
|
|
29
|
+
data
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get a company page
|
|
33
|
+
# The company page behind an offering, as structured data — the \"click a company\" step after `/explore`. Addressed by the `co_...` id every offering carries in `company.id`. Keeps apart the three raised numbers the page shows and readers conflate: `current_raise.amount_raised` (this campaign's live rounds combined, on Wefunder), `past_rounds[]` (prior rounds the page lists, each tagged `source: wefunder` for rounds observed here or `reported` for founder-disclosed off-platform rounds), and `totals.profile_total_raised` (the number on the page's ticker bar). Every figure comes from the same policy the page uses, so the API never disagrees with the site. **Who has a page.** Every company whose profile wefunder.com lists publicly — the same set the site's search bar returns (published, not invite-only, searchable or with a live Form C; accredited-only companies need an accredited viewer) — plus the `/explore` set. A funded company, or one the viewer may see no round of, renders with `raising: false` and `current_raise: null`; its history is in `wefunder_rounds`. **Logged-in view (`read:explore`)** additionally covers the vault / syndicate-led companies the site shows an accredited viewer, and the round described is the one the page would show that viewer. A valid id for a company outside the viewer's set is a `404`, never a partial payload.
|
|
34
|
+
# @param id [String] The company's id (`co_...`).
|
|
35
|
+
# @param [Hash] opts the optional parameters
|
|
36
|
+
# @return [Array<(CompanyEnvelope, Integer, Hash)>] CompanyEnvelope data, response status code and response headers
|
|
37
|
+
def get_company_with_http_info(id, opts = {})
|
|
38
|
+
if @api_client.config.debugging
|
|
39
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.get_company ...'
|
|
40
|
+
end
|
|
41
|
+
# verify the required parameter 'id' is set
|
|
42
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
43
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.get_company"
|
|
44
|
+
end
|
|
45
|
+
# resource path
|
|
46
|
+
local_var_path = '/companies/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
|
|
47
|
+
|
|
48
|
+
# query parameters
|
|
49
|
+
query_params = opts[:query_params] || {}
|
|
50
|
+
|
|
51
|
+
# header parameters
|
|
52
|
+
header_params = opts[:header_params] || {}
|
|
53
|
+
# HTTP header 'Accept' (if needed)
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
|
+
|
|
56
|
+
# form parameters
|
|
57
|
+
form_params = opts[:form_params] || {}
|
|
58
|
+
|
|
59
|
+
# http body (model)
|
|
60
|
+
post_body = opts[:debug_body]
|
|
61
|
+
|
|
62
|
+
# return_type
|
|
63
|
+
return_type = opts[:debug_return_type] || 'CompanyEnvelope'
|
|
64
|
+
|
|
65
|
+
# auth_names
|
|
66
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
67
|
+
|
|
68
|
+
new_options = opts.merge(
|
|
69
|
+
:operation => :"ExploreApi.get_company",
|
|
70
|
+
:header_params => header_params,
|
|
71
|
+
:query_params => query_params,
|
|
72
|
+
:form_params => form_params,
|
|
73
|
+
:body => post_body,
|
|
74
|
+
:auth_names => auth_names,
|
|
75
|
+
:return_type => return_type
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
79
|
+
if @api_client.config.debugging
|
|
80
|
+
@api_client.config.logger.debug "API called: ExploreApi#get_company\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
81
|
+
end
|
|
82
|
+
return data, status_code, headers
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Get a company's public Form C disclosures
|
|
86
|
+
# The Details tab of the company's Wefunder page as structured data — the company's own Form C disclosures, section for section: financial statements for the fiscal years on file, the page's ratios, the founder's current-position disclosure (cash on hand, monthly revenue / costs / burn), the financial-condition narrative, document links, risks, use of funds, directors and officers, 20%+ holders, capital structure, prior offerings, outstanding notes and debts, and related-party transactions. Same \"who has a page\" rule as `GET /companies/{id}`. The round read is the page's own: the display round for the viewer, swapped for its concurrent Reg CF sibling on a Reg D round, and only when it is a Reg CF / ECSP round with a Form C. A company with no such round has no details tab on the site and answers `404` with `error.type: no_disclosures` — distinct from an unknown or hidden company. A section the company hides on the site is `null`. Money is decimal strings, never USD by assumption: the round's own figures (use of funds, prior offerings, notes, debts, related parties) are in `currency` — `EUR` for an ECSP round — while the Form C financial statements, the ratio derived from them, and the current-position figures (which repeat it as `current_position.currency`) are in `financials_currency`, the currency the issuer declared for its statements (it can differ from the round's: DKK, RON, GBP, or USD statements behind a EUR round). Ratios are percentages as decimal strings. Everything here is the issuer's own disclosure, served as filed, not a Wefunder assessment.
|
|
87
|
+
# @param id [String]
|
|
88
|
+
# @param [Hash] opts the optional parameters
|
|
89
|
+
# @option opts [Array<String>] :sections Only these sections (`offering_id`, `currency`, `financials_currency` and `filing` are always included). Omit for the whole tab; a disclosure-heavy company runs to ~100 KB. Unknown names are a 400 listing the vocabulary.
|
|
90
|
+
# @return [CompanyDisclosuresEnvelope]
|
|
91
|
+
def get_company_disclosures(id, opts = {})
|
|
92
|
+
data, _status_code, _headers = get_company_disclosures_with_http_info(id, opts)
|
|
93
|
+
data
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Get a company's public Form C disclosures
|
|
97
|
+
# The Details tab of the company's Wefunder page as structured data — the company's own Form C disclosures, section for section: financial statements for the fiscal years on file, the page's ratios, the founder's current-position disclosure (cash on hand, monthly revenue / costs / burn), the financial-condition narrative, document links, risks, use of funds, directors and officers, 20%+ holders, capital structure, prior offerings, outstanding notes and debts, and related-party transactions. Same \"who has a page\" rule as `GET /companies/{id}`. The round read is the page's own: the display round for the viewer, swapped for its concurrent Reg CF sibling on a Reg D round, and only when it is a Reg CF / ECSP round with a Form C. A company with no such round has no details tab on the site and answers `404` with `error.type: no_disclosures` — distinct from an unknown or hidden company. A section the company hides on the site is `null`. Money is decimal strings, never USD by assumption: the round's own figures (use of funds, prior offerings, notes, debts, related parties) are in `currency` — `EUR` for an ECSP round — while the Form C financial statements, the ratio derived from them, and the current-position figures (which repeat it as `current_position.currency`) are in `financials_currency`, the currency the issuer declared for its statements (it can differ from the round's: DKK, RON, GBP, or USD statements behind a EUR round). Ratios are percentages as decimal strings. Everything here is the issuer's own disclosure, served as filed, not a Wefunder assessment.
|
|
98
|
+
# @param id [String]
|
|
99
|
+
# @param [Hash] opts the optional parameters
|
|
100
|
+
# @option opts [Array<String>] :sections Only these sections (`offering_id`, `currency`, `financials_currency` and `filing` are always included). Omit for the whole tab; a disclosure-heavy company runs to ~100 KB. Unknown names are a 400 listing the vocabulary.
|
|
101
|
+
# @return [Array<(CompanyDisclosuresEnvelope, Integer, Hash)>] CompanyDisclosuresEnvelope data, response status code and response headers
|
|
102
|
+
def get_company_disclosures_with_http_info(id, opts = {})
|
|
103
|
+
if @api_client.config.debugging
|
|
104
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.get_company_disclosures ...'
|
|
105
|
+
end
|
|
106
|
+
# verify the required parameter 'id' is set
|
|
107
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
108
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.get_company_disclosures"
|
|
109
|
+
end
|
|
110
|
+
allowable_values = ["business", "financial_statements", "ratios", "current_position", "financial_condition", "financial_statement_documents", "investment_documents", "risks", "use_of_funds", "directors", "officers", "voting_power", "capital_structure", "prior_offerings", "outstanding_notes", "outstanding_debts", "related_parties"]
|
|
111
|
+
if @api_client.config.client_side_validation && opts[:'sections'] && !opts[:'sections'].all? { |item| allowable_values.include?(item) }
|
|
112
|
+
fail ArgumentError, "invalid value for \"sections\", must include one of #{allowable_values}"
|
|
113
|
+
end
|
|
114
|
+
# resource path
|
|
115
|
+
local_var_path = '/companies/{id}/disclosures'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
|
|
116
|
+
|
|
117
|
+
# query parameters
|
|
118
|
+
query_params = opts[:query_params] || {}
|
|
119
|
+
query_params[:'sections'] = @api_client.build_collection_param(opts[:'sections'], :csv) if !opts[:'sections'].nil?
|
|
120
|
+
|
|
121
|
+
# header parameters
|
|
122
|
+
header_params = opts[:header_params] || {}
|
|
123
|
+
# HTTP header 'Accept' (if needed)
|
|
124
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
125
|
+
|
|
126
|
+
# form parameters
|
|
127
|
+
form_params = opts[:form_params] || {}
|
|
128
|
+
|
|
129
|
+
# http body (model)
|
|
130
|
+
post_body = opts[:debug_body]
|
|
131
|
+
|
|
132
|
+
# return_type
|
|
133
|
+
return_type = opts[:debug_return_type] || 'CompanyDisclosuresEnvelope'
|
|
134
|
+
|
|
135
|
+
# auth_names
|
|
136
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
137
|
+
|
|
138
|
+
new_options = opts.merge(
|
|
139
|
+
:operation => :"ExploreApi.get_company_disclosures",
|
|
140
|
+
:header_params => header_params,
|
|
141
|
+
:query_params => query_params,
|
|
142
|
+
:form_params => form_params,
|
|
143
|
+
:body => post_body,
|
|
144
|
+
:auth_names => auth_names,
|
|
145
|
+
:return_type => return_type
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
149
|
+
if @api_client.config.debugging
|
|
150
|
+
@api_client.config.logger.debug "API called: ExploreApi#get_company_disclosures\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
151
|
+
end
|
|
152
|
+
return data, status_code, headers
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Get a company's pitch
|
|
156
|
+
# The Overview tab's pitch as structured data: the story as ordered blocks (`heading`, `paragraph`, `list`, `image`, `video`, `footnote`), plus the perk tiers of the round the page shows the viewer. Images and embedded videos keep their place in the document with an absolute URL, because founders publish perk tiers, stretch goals, timelines, and charts as pictures (typically with no alt text) and a plain-text rendering would drop them. What is parsed is what the page renders: the story passes through the site's own sanitizer first, so an embed the page refuses (a host off its allowlist, a `javascript:` URL) is never served here either. Same \"who has a page\" rule and round chooser as `GET /companies/{id}`. A site-public company with no round the viewer may see still has a pitch (`perks: null`). `perks.described_in_pitch` is a heuristic: true when the structured perk list is a placeholder (\"See investor overview page\", or one identical sentence on every tier) and the real tiers are in the story's images. `authored_by` says who wrote the story: `company` (the issuer's own words and imagery, not a Wefunder assessment) or `wefunder` (a Wefunder-prepared deal memo the company did not participate in; `disclaimer` carries the page's notice). A pitch can run to ~70 KB; use `sections` to ask for less.
|
|
157
|
+
# @param id [String]
|
|
158
|
+
# @param [Hash] opts the optional parameters
|
|
159
|
+
# @option opts [Array<String>] :sections Only these sections (`offering_id`, `title`, `url`, `authored_by`, and `disclaimer` are always included). Omit for the whole pitch. Unknown names are a 400 listing the vocabulary.
|
|
160
|
+
# @return [CompanyPitchEnvelope]
|
|
161
|
+
def get_company_pitch(id, opts = {})
|
|
162
|
+
data, _status_code, _headers = get_company_pitch_with_http_info(id, opts)
|
|
163
|
+
data
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Get a company's pitch
|
|
167
|
+
# The Overview tab's pitch as structured data: the story as ordered blocks (`heading`, `paragraph`, `list`, `image`, `video`, `footnote`), plus the perk tiers of the round the page shows the viewer. Images and embedded videos keep their place in the document with an absolute URL, because founders publish perk tiers, stretch goals, timelines, and charts as pictures (typically with no alt text) and a plain-text rendering would drop them. What is parsed is what the page renders: the story passes through the site's own sanitizer first, so an embed the page refuses (a host off its allowlist, a `javascript:` URL) is never served here either. Same \"who has a page\" rule and round chooser as `GET /companies/{id}`. A site-public company with no round the viewer may see still has a pitch (`perks: null`). `perks.described_in_pitch` is a heuristic: true when the structured perk list is a placeholder (\"See investor overview page\", or one identical sentence on every tier) and the real tiers are in the story's images. `authored_by` says who wrote the story: `company` (the issuer's own words and imagery, not a Wefunder assessment) or `wefunder` (a Wefunder-prepared deal memo the company did not participate in; `disclaimer` carries the page's notice). A pitch can run to ~70 KB; use `sections` to ask for less.
|
|
168
|
+
# @param id [String]
|
|
169
|
+
# @param [Hash] opts the optional parameters
|
|
170
|
+
# @option opts [Array<String>] :sections Only these sections (`offering_id`, `title`, `url`, `authored_by`, and `disclaimer` are always included). Omit for the whole pitch. Unknown names are a 400 listing the vocabulary.
|
|
171
|
+
# @return [Array<(CompanyPitchEnvelope, Integer, Hash)>] CompanyPitchEnvelope data, response status code and response headers
|
|
172
|
+
def get_company_pitch_with_http_info(id, opts = {})
|
|
173
|
+
if @api_client.config.debugging
|
|
174
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.get_company_pitch ...'
|
|
175
|
+
end
|
|
176
|
+
# verify the required parameter 'id' is set
|
|
177
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
178
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.get_company_pitch"
|
|
179
|
+
end
|
|
180
|
+
allowable_values = ["story", "perks"]
|
|
181
|
+
if @api_client.config.client_side_validation && opts[:'sections'] && !opts[:'sections'].all? { |item| allowable_values.include?(item) }
|
|
182
|
+
fail ArgumentError, "invalid value for \"sections\", must include one of #{allowable_values}"
|
|
183
|
+
end
|
|
184
|
+
# resource path
|
|
185
|
+
local_var_path = '/companies/{id}/pitch'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
|
|
186
|
+
|
|
187
|
+
# query parameters
|
|
188
|
+
query_params = opts[:query_params] || {}
|
|
189
|
+
query_params[:'sections'] = @api_client.build_collection_param(opts[:'sections'], :csv) if !opts[:'sections'].nil?
|
|
190
|
+
|
|
191
|
+
# header parameters
|
|
192
|
+
header_params = opts[:header_params] || {}
|
|
193
|
+
# HTTP header 'Accept' (if needed)
|
|
194
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
195
|
+
|
|
196
|
+
# form parameters
|
|
197
|
+
form_params = opts[:form_params] || {}
|
|
198
|
+
|
|
199
|
+
# http body (model)
|
|
200
|
+
post_body = opts[:debug_body]
|
|
201
|
+
|
|
202
|
+
# return_type
|
|
203
|
+
return_type = opts[:debug_return_type] || 'CompanyPitchEnvelope'
|
|
204
|
+
|
|
205
|
+
# auth_names
|
|
206
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
207
|
+
|
|
208
|
+
new_options = opts.merge(
|
|
209
|
+
:operation => :"ExploreApi.get_company_pitch",
|
|
210
|
+
:header_params => header_params,
|
|
211
|
+
:query_params => query_params,
|
|
212
|
+
:form_params => form_params,
|
|
213
|
+
:body => post_body,
|
|
214
|
+
:auth_names => auth_names,
|
|
215
|
+
:return_type => return_type
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
219
|
+
if @api_client.config.debugging
|
|
220
|
+
@api_client.config.logger.debug "API called: ExploreApi#get_company_pitch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
221
|
+
end
|
|
222
|
+
return data, status_code, headers
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
# Get one company post in full
|
|
226
|
+
# One post with its full plain-text content, by the id the list returned. Same visibility as the list; a post the tab would not show this viewer is a 404.
|
|
227
|
+
# @param id [String]
|
|
228
|
+
# @param update_id [String]
|
|
229
|
+
# @param [Hash] opts the optional parameters
|
|
230
|
+
# @return [CompanyUpdateEnvelope]
|
|
231
|
+
def get_company_update(id, update_id, opts = {})
|
|
232
|
+
data, _status_code, _headers = get_company_update_with_http_info(id, update_id, opts)
|
|
233
|
+
data
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
# Get one company post in full
|
|
237
|
+
# One post with its full plain-text content, by the id the list returned. Same visibility as the list; a post the tab would not show this viewer is a 404.
|
|
238
|
+
# @param id [String]
|
|
239
|
+
# @param update_id [String]
|
|
240
|
+
# @param [Hash] opts the optional parameters
|
|
241
|
+
# @return [Array<(CompanyUpdateEnvelope, Integer, Hash)>] CompanyUpdateEnvelope data, response status code and response headers
|
|
242
|
+
def get_company_update_with_http_info(id, update_id, opts = {})
|
|
243
|
+
if @api_client.config.debugging
|
|
244
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.get_company_update ...'
|
|
245
|
+
end
|
|
246
|
+
# verify the required parameter 'id' is set
|
|
247
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
248
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.get_company_update"
|
|
249
|
+
end
|
|
250
|
+
# verify the required parameter 'update_id' is set
|
|
251
|
+
if @api_client.config.client_side_validation && update_id.nil?
|
|
252
|
+
fail ArgumentError, "Missing the required parameter 'update_id' when calling ExploreApi.get_company_update"
|
|
253
|
+
end
|
|
254
|
+
# resource path
|
|
255
|
+
local_var_path = '/companies/{id}/updates/{update_id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'update_id' + '}', CGI.escape(update_id.to_s))
|
|
256
|
+
|
|
257
|
+
# query parameters
|
|
258
|
+
query_params = opts[:query_params] || {}
|
|
259
|
+
|
|
260
|
+
# header parameters
|
|
261
|
+
header_params = opts[:header_params] || {}
|
|
262
|
+
# HTTP header 'Accept' (if needed)
|
|
263
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
264
|
+
|
|
265
|
+
# form parameters
|
|
266
|
+
form_params = opts[:form_params] || {}
|
|
267
|
+
|
|
268
|
+
# http body (model)
|
|
269
|
+
post_body = opts[:debug_body]
|
|
270
|
+
|
|
271
|
+
# return_type
|
|
272
|
+
return_type = opts[:debug_return_type] || 'CompanyUpdateEnvelope'
|
|
273
|
+
|
|
274
|
+
# auth_names
|
|
275
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
276
|
+
|
|
277
|
+
new_options = opts.merge(
|
|
278
|
+
:operation => :"ExploreApi.get_company_update",
|
|
279
|
+
:header_params => header_params,
|
|
280
|
+
:query_params => query_params,
|
|
281
|
+
:form_params => form_params,
|
|
282
|
+
:body => post_body,
|
|
283
|
+
:auth_names => auth_names,
|
|
284
|
+
:return_type => return_type
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
288
|
+
if @api_client.config.debugging
|
|
289
|
+
@api_client.config.logger.debug "API called: ExploreApi#get_company_update\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
290
|
+
end
|
|
291
|
+
return data, status_code, headers
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# Get a public offering
|
|
295
|
+
# Retrieves a single offering by its id (`ofr_...`). With `read:public`, a valid id for a non-public offering (e.g. a private Reg D 506(b) round) returns `404` — having an id does not make an offering publicly resolvable. With `read:explore` on a user access token, the offering resolves if *that user* may see it on wefunder.com (e.g. an accredited-only or invited round), and the response gains `publicly_visible` and `invested`.
|
|
296
|
+
# @param external_id [String] The offering's id (`ofr_...`).
|
|
297
|
+
# @param [Hash] opts the optional parameters
|
|
298
|
+
# @return [OfferingEnvelope]
|
|
299
|
+
def get_offering(external_id, opts = {})
|
|
300
|
+
data, _status_code, _headers = get_offering_with_http_info(external_id, opts)
|
|
301
|
+
data
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
# Get a public offering
|
|
305
|
+
# Retrieves a single offering by its id (`ofr_...`). With `read:public`, a valid id for a non-public offering (e.g. a private Reg D 506(b) round) returns `404` — having an id does not make an offering publicly resolvable. With `read:explore` on a user access token, the offering resolves if *that user* may see it on wefunder.com (e.g. an accredited-only or invited round), and the response gains `publicly_visible` and `invested`.
|
|
306
|
+
# @param external_id [String] The offering's id (`ofr_...`).
|
|
307
|
+
# @param [Hash] opts the optional parameters
|
|
308
|
+
# @return [Array<(OfferingEnvelope, Integer, Hash)>] OfferingEnvelope data, response status code and response headers
|
|
309
|
+
def get_offering_with_http_info(external_id, opts = {})
|
|
310
|
+
if @api_client.config.debugging
|
|
311
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.get_offering ...'
|
|
312
|
+
end
|
|
313
|
+
# verify the required parameter 'external_id' is set
|
|
314
|
+
if @api_client.config.client_side_validation && external_id.nil?
|
|
315
|
+
fail ArgumentError, "Missing the required parameter 'external_id' when calling ExploreApi.get_offering"
|
|
316
|
+
end
|
|
317
|
+
# resource path
|
|
318
|
+
local_var_path = '/offerings/{external_id}'.sub('{' + 'external_id' + '}', CGI.escape(external_id.to_s))
|
|
319
|
+
|
|
320
|
+
# query parameters
|
|
321
|
+
query_params = opts[:query_params] || {}
|
|
322
|
+
|
|
323
|
+
# header parameters
|
|
324
|
+
header_params = opts[:header_params] || {}
|
|
325
|
+
# HTTP header 'Accept' (if needed)
|
|
326
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
327
|
+
|
|
328
|
+
# form parameters
|
|
329
|
+
form_params = opts[:form_params] || {}
|
|
330
|
+
|
|
331
|
+
# http body (model)
|
|
332
|
+
post_body = opts[:debug_body]
|
|
333
|
+
|
|
334
|
+
# return_type
|
|
335
|
+
return_type = opts[:debug_return_type] || 'OfferingEnvelope'
|
|
336
|
+
|
|
337
|
+
# auth_names
|
|
338
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
339
|
+
|
|
340
|
+
new_options = opts.merge(
|
|
341
|
+
:operation => :"ExploreApi.get_offering",
|
|
342
|
+
:header_params => header_params,
|
|
343
|
+
:query_params => query_params,
|
|
344
|
+
:form_params => form_params,
|
|
345
|
+
:body => post_body,
|
|
346
|
+
:auth_names => auth_names,
|
|
347
|
+
:return_type => return_type
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
351
|
+
if @api_client.config.debugging
|
|
352
|
+
@api_client.config.logger.debug "API called: ExploreApi#get_offering\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
353
|
+
end
|
|
354
|
+
return data, status_code, headers
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
# List a company's investor questions and answers
|
|
358
|
+
# The company page's Ask tab as data: the questions investors asked and the answers, as the tab lists them for this viewer (the same repository and visibility as the site). Like the tab, questions default to the current raise — those asked since it opened (`meta.questions_since`); `past_raises=true` includes every raise, which the site offers to any visitor because past-raise questions are public. `sort` is the tab's dropdown: `relevance` (default: highlighted, then answered, then most liked), `recent`, `upvoted`, `unanswered`. Text is plain. Questions and answers carry their id (`cmt_...`); the integer key never leaves the API. Answers are the founders' own words. `q` searches question and answer text (Postgres full text: quoted phrases and `-word` work; one- or two-word queries also prefix-match) and replaces the sort with match rank — `meta.sort` is then `search` and each result's `match` says whether its question or an answer matched. `unanswered_by_team=true` keeps only questions with no live answer from the company's team (the founder's queue; the `unanswered` sort merely orders by whether anyone replied).
|
|
359
|
+
# @param id [String]
|
|
360
|
+
# @param [Hash] opts the optional parameters
|
|
361
|
+
# @option opts [String] :sort (default to 'relevance')
|
|
362
|
+
# @option opts [Boolean] :past_raises (default to false)
|
|
363
|
+
# @option opts [String] :q Full-text search over questions and answers. At most 200 bytes.
|
|
364
|
+
# @option opts [Boolean] :unanswered_by_team (default to false)
|
|
365
|
+
# @option opts [String] :cursor
|
|
366
|
+
# @option opts [Integer] :per_page (default to 20)
|
|
367
|
+
# @return [CompanyQuestionListEnvelope]
|
|
368
|
+
def list_company_questions(id, opts = {})
|
|
369
|
+
data, _status_code, _headers = list_company_questions_with_http_info(id, opts)
|
|
370
|
+
data
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
# List a company's investor questions and answers
|
|
374
|
+
# The company page's Ask tab as data: the questions investors asked and the answers, as the tab lists them for this viewer (the same repository and visibility as the site). Like the tab, questions default to the current raise — those asked since it opened (`meta.questions_since`); `past_raises=true` includes every raise, which the site offers to any visitor because past-raise questions are public. `sort` is the tab's dropdown: `relevance` (default: highlighted, then answered, then most liked), `recent`, `upvoted`, `unanswered`. Text is plain. Questions and answers carry their id (`cmt_...`); the integer key never leaves the API. Answers are the founders' own words. `q` searches question and answer text (Postgres full text: quoted phrases and `-word` work; one- or two-word queries also prefix-match) and replaces the sort with match rank — `meta.sort` is then `search` and each result's `match` says whether its question or an answer matched. `unanswered_by_team=true` keeps only questions with no live answer from the company's team (the founder's queue; the `unanswered` sort merely orders by whether anyone replied).
|
|
375
|
+
# @param id [String]
|
|
376
|
+
# @param [Hash] opts the optional parameters
|
|
377
|
+
# @option opts [String] :sort (default to 'relevance')
|
|
378
|
+
# @option opts [Boolean] :past_raises (default to false)
|
|
379
|
+
# @option opts [String] :q Full-text search over questions and answers. At most 200 bytes.
|
|
380
|
+
# @option opts [Boolean] :unanswered_by_team (default to false)
|
|
381
|
+
# @option opts [String] :cursor
|
|
382
|
+
# @option opts [Integer] :per_page (default to 20)
|
|
383
|
+
# @return [Array<(CompanyQuestionListEnvelope, Integer, Hash)>] CompanyQuestionListEnvelope data, response status code and response headers
|
|
384
|
+
def list_company_questions_with_http_info(id, opts = {})
|
|
385
|
+
if @api_client.config.debugging
|
|
386
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.list_company_questions ...'
|
|
387
|
+
end
|
|
388
|
+
# verify the required parameter 'id' is set
|
|
389
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
390
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.list_company_questions"
|
|
391
|
+
end
|
|
392
|
+
allowable_values = ["relevance", "recent", "upvoted", "unanswered"]
|
|
393
|
+
if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
|
|
394
|
+
fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
|
|
395
|
+
end
|
|
396
|
+
if @api_client.config.client_side_validation && !opts[:'q'].nil? && opts[:'q'].to_s.length > 200
|
|
397
|
+
fail ArgumentError, 'invalid value for "opts[:"q"]" when calling ExploreApi.list_company_questions, the character length must be smaller than or equal to 200.'
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 50
|
|
401
|
+
fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ExploreApi.list_company_questions, must be smaller than or equal to 50.'
|
|
402
|
+
end
|
|
403
|
+
|
|
404
|
+
# resource path
|
|
405
|
+
local_var_path = '/companies/{id}/questions'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
|
|
406
|
+
|
|
407
|
+
# query parameters
|
|
408
|
+
query_params = opts[:query_params] || {}
|
|
409
|
+
query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
|
|
410
|
+
query_params[:'past_raises'] = opts[:'past_raises'] if !opts[:'past_raises'].nil?
|
|
411
|
+
query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
|
|
412
|
+
query_params[:'unanswered_by_team'] = opts[:'unanswered_by_team'] if !opts[:'unanswered_by_team'].nil?
|
|
413
|
+
query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
|
|
414
|
+
query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
|
|
415
|
+
|
|
416
|
+
# header parameters
|
|
417
|
+
header_params = opts[:header_params] || {}
|
|
418
|
+
# HTTP header 'Accept' (if needed)
|
|
419
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
420
|
+
|
|
421
|
+
# form parameters
|
|
422
|
+
form_params = opts[:form_params] || {}
|
|
423
|
+
|
|
424
|
+
# http body (model)
|
|
425
|
+
post_body = opts[:debug_body]
|
|
426
|
+
|
|
427
|
+
# return_type
|
|
428
|
+
return_type = opts[:debug_return_type] || 'CompanyQuestionListEnvelope'
|
|
429
|
+
|
|
430
|
+
# auth_names
|
|
431
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
432
|
+
|
|
433
|
+
new_options = opts.merge(
|
|
434
|
+
:operation => :"ExploreApi.list_company_questions",
|
|
435
|
+
:header_params => header_params,
|
|
436
|
+
:query_params => query_params,
|
|
437
|
+
:form_params => form_params,
|
|
438
|
+
:body => post_body,
|
|
439
|
+
:auth_names => auth_names,
|
|
440
|
+
:return_type => return_type
|
|
441
|
+
)
|
|
442
|
+
|
|
443
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
444
|
+
if @api_client.config.debugging
|
|
445
|
+
@api_client.config.logger.debug "API called: ExploreApi#list_company_questions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
446
|
+
end
|
|
447
|
+
return data, status_code, headers
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
# List a company's posts
|
|
451
|
+
# The company page's Posts tab as data: the published updates, notes, and spotlights the viewer may see, pinned first then newest, with a plain-text excerpt each. With `read:explore` the viewer is the authorizing user, so a follower or investor sees the community- and investors-only posts the site shows them; with `read:public` it is the anonymous view. Same query as the tab (`FeedItem.viewable_by`); investments, Q&A threads, and investor quotes belong to other tabs and are not here. Fetch one post in full with `GET /companies/{id}/updates/{update_id}`. Posts are the issuer's own words.
|
|
452
|
+
# @param id [String]
|
|
453
|
+
# @param [Hash] opts the optional parameters
|
|
454
|
+
# @option opts [String] :cursor
|
|
455
|
+
# @option opts [Integer] :per_page (default to 20)
|
|
456
|
+
# @return [CompanyUpdateListEnvelope]
|
|
457
|
+
def list_company_updates(id, opts = {})
|
|
458
|
+
data, _status_code, _headers = list_company_updates_with_http_info(id, opts)
|
|
459
|
+
data
|
|
460
|
+
end
|
|
461
|
+
|
|
462
|
+
# List a company's posts
|
|
463
|
+
# The company page's Posts tab as data: the published updates, notes, and spotlights the viewer may see, pinned first then newest, with a plain-text excerpt each. With `read:explore` the viewer is the authorizing user, so a follower or investor sees the community- and investors-only posts the site shows them; with `read:public` it is the anonymous view. Same query as the tab (`FeedItem.viewable_by`); investments, Q&A threads, and investor quotes belong to other tabs and are not here. Fetch one post in full with `GET /companies/{id}/updates/{update_id}`. Posts are the issuer's own words.
|
|
464
|
+
# @param id [String]
|
|
465
|
+
# @param [Hash] opts the optional parameters
|
|
466
|
+
# @option opts [String] :cursor
|
|
467
|
+
# @option opts [Integer] :per_page (default to 20)
|
|
468
|
+
# @return [Array<(CompanyUpdateListEnvelope, Integer, Hash)>] CompanyUpdateListEnvelope data, response status code and response headers
|
|
469
|
+
def list_company_updates_with_http_info(id, opts = {})
|
|
470
|
+
if @api_client.config.debugging
|
|
471
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.list_company_updates ...'
|
|
472
|
+
end
|
|
473
|
+
# verify the required parameter 'id' is set
|
|
474
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
475
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling ExploreApi.list_company_updates"
|
|
476
|
+
end
|
|
477
|
+
if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 50
|
|
478
|
+
fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ExploreApi.list_company_updates, must be smaller than or equal to 50.'
|
|
479
|
+
end
|
|
480
|
+
|
|
481
|
+
# resource path
|
|
482
|
+
local_var_path = '/companies/{id}/updates'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
|
|
483
|
+
|
|
484
|
+
# query parameters
|
|
485
|
+
query_params = opts[:query_params] || {}
|
|
486
|
+
query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
|
|
487
|
+
query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
|
|
488
|
+
|
|
489
|
+
# header parameters
|
|
490
|
+
header_params = opts[:header_params] || {}
|
|
491
|
+
# HTTP header 'Accept' (if needed)
|
|
492
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
493
|
+
|
|
494
|
+
# form parameters
|
|
495
|
+
form_params = opts[:form_params] || {}
|
|
496
|
+
|
|
497
|
+
# http body (model)
|
|
498
|
+
post_body = opts[:debug_body]
|
|
499
|
+
|
|
500
|
+
# return_type
|
|
501
|
+
return_type = opts[:debug_return_type] || 'CompanyUpdateListEnvelope'
|
|
502
|
+
|
|
503
|
+
# auth_names
|
|
504
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
505
|
+
|
|
506
|
+
new_options = opts.merge(
|
|
507
|
+
:operation => :"ExploreApi.list_company_updates",
|
|
508
|
+
:header_params => header_params,
|
|
509
|
+
:query_params => query_params,
|
|
510
|
+
:form_params => form_params,
|
|
511
|
+
:body => post_body,
|
|
512
|
+
:auth_names => auth_names,
|
|
513
|
+
:return_type => return_type
|
|
514
|
+
)
|
|
515
|
+
|
|
516
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
517
|
+
if @api_client.config.debugging
|
|
518
|
+
@api_client.config.logger.debug "API called: ExploreApi#list_company_updates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
519
|
+
end
|
|
520
|
+
return data, status_code, headers
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
# List public offerings
|
|
524
|
+
# Returns the offerings shown on wefunder.com/explore — the curated set of companies that meet Wefunder's discoverability bar (a soft-confirmed traction threshold plus approval), **one offering per company**. An \"offering\" is a fundraise, addressed by its id (`ofr_...`). **Public view (`read:public`).** Reachable with either a server-side (client_credentials) token or a user access token. Private rounds (e.g. Reg D 506(b)) are never listed, and low-traction or unapproved companies are excluded — exactly as they are on the website for a logged-out visitor. **Logged-in view (`read:explore`).** A user access token carrying `read:explore` gets what *that user* sees on wefunder.com/explore: the public offerings plus any the user qualifies for (accredited-only / Vault deals, invited private rounds), each checked against the same visibility policy the website applies. The response is a strict superset of the public one — same fields and ids — with two extra attributes, `publicly_visible` and `invested`, and `meta.personalized: true`. A server-side key can never hold `read:explore`; a token with `read:explore` but no resolvable user gets the public view. Order with `sort` (default: most raised); paginate with `cursor`. `meta.total_count` is the number of offerings across all pages, after filters. **Filters** are objective, per-offering terms — exemption family, security type, TTW vs. live, minimum investment ceiling, close date, amount raised floor. The response echoes the applied set in `meta.filters`. An out-of-vocabulary value is a `400` naming the accepted values. There are deliberately no relevance, quality, or ranking criteria. Use this endpoint to: - Discover and monitor active deals - Build deal aggregators and public listings
|
|
525
|
+
# @param [Hash] opts the optional parameters
|
|
526
|
+
# @option opts [Integer] :cursor Cursor-based pagination token. Use the `next_cursor` value from the previous response's `meta` object to retrieve the next page of results. Omit this parameter to retrieve the first page.
|
|
527
|
+
# @option opts [String] :sort Result ordering: - `most_raised` (default) — highest amount raised first - `closing_soon` — soonest funding close first - `newest` — most recently launched first - `most_investors` — highest investor count first (default to 'most_raised')
|
|
528
|
+
# @option opts [String] :exemption Only offerings under this SEC exemption family. Reg CF and Reg D are the supported public filters.
|
|
529
|
+
# @option opts [String] :security Only offerings issuing this kind of security — the `security.type` value on results.
|
|
530
|
+
# @option opts [Boolean] :testing_the_waters `false` — only live rounds accepting investments; `true` — only Testing-the-Waters rounds collecting non-binding reservations.
|
|
531
|
+
# @option opts [Float] :max_min_investment Only offerings whose minimum investment is at most this amount (USD).
|
|
532
|
+
# @option opts [Date] :closing_before Only offerings whose funding close date is on or before this date (ISO 8601). Offerings with no close date are excluded.
|
|
533
|
+
# @option opts [Float] :min_amount_raised Only offerings that have raised at least this amount so far (USD).
|
|
534
|
+
# @option opts [Array<String>] :industry Only companies tagged with any of these industries — the curated tags the wefunder.com explore page filters by (see each offering's `industries`). One value or a comma-separated list; unknown values are a 400 listing the vocabulary. Objective facets, not a ranking.
|
|
535
|
+
# @option opts [Array<String>] :business_model Only companies with any of these business models (see each offering's `business_models`). One value or a comma-separated list.
|
|
536
|
+
# @option opts [Boolean] :followed **Logged-in view only** (`read:explore` with a user). `true` — only companies the authorizing user follows on wefunder.com (their watchlist); `false` — only companies they do not follow. A 400 on the public view, which has no user to filter by.
|
|
537
|
+
# @return [OfferingListEnvelope]
|
|
538
|
+
def list_offerings(opts = {})
|
|
539
|
+
data, _status_code, _headers = list_offerings_with_http_info(opts)
|
|
540
|
+
data
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
# List public offerings
|
|
544
|
+
# Returns the offerings shown on wefunder.com/explore — the curated set of companies that meet Wefunder's discoverability bar (a soft-confirmed traction threshold plus approval), **one offering per company**. An \"offering\" is a fundraise, addressed by its id (`ofr_...`). **Public view (`read:public`).** Reachable with either a server-side (client_credentials) token or a user access token. Private rounds (e.g. Reg D 506(b)) are never listed, and low-traction or unapproved companies are excluded — exactly as they are on the website for a logged-out visitor. **Logged-in view (`read:explore`).** A user access token carrying `read:explore` gets what *that user* sees on wefunder.com/explore: the public offerings plus any the user qualifies for (accredited-only / Vault deals, invited private rounds), each checked against the same visibility policy the website applies. The response is a strict superset of the public one — same fields and ids — with two extra attributes, `publicly_visible` and `invested`, and `meta.personalized: true`. A server-side key can never hold `read:explore`; a token with `read:explore` but no resolvable user gets the public view. Order with `sort` (default: most raised); paginate with `cursor`. `meta.total_count` is the number of offerings across all pages, after filters. **Filters** are objective, per-offering terms — exemption family, security type, TTW vs. live, minimum investment ceiling, close date, amount raised floor. The response echoes the applied set in `meta.filters`. An out-of-vocabulary value is a `400` naming the accepted values. There are deliberately no relevance, quality, or ranking criteria. Use this endpoint to: - Discover and monitor active deals - Build deal aggregators and public listings
|
|
545
|
+
# @param [Hash] opts the optional parameters
|
|
546
|
+
# @option opts [Integer] :cursor Cursor-based pagination token. Use the `next_cursor` value from the previous response's `meta` object to retrieve the next page of results. Omit this parameter to retrieve the first page.
|
|
547
|
+
# @option opts [String] :sort Result ordering: - `most_raised` (default) — highest amount raised first - `closing_soon` — soonest funding close first - `newest` — most recently launched first - `most_investors` — highest investor count first (default to 'most_raised')
|
|
548
|
+
# @option opts [String] :exemption Only offerings under this SEC exemption family. Reg CF and Reg D are the supported public filters.
|
|
549
|
+
# @option opts [String] :security Only offerings issuing this kind of security — the `security.type` value on results.
|
|
550
|
+
# @option opts [Boolean] :testing_the_waters `false` — only live rounds accepting investments; `true` — only Testing-the-Waters rounds collecting non-binding reservations.
|
|
551
|
+
# @option opts [Float] :max_min_investment Only offerings whose minimum investment is at most this amount (USD).
|
|
552
|
+
# @option opts [Date] :closing_before Only offerings whose funding close date is on or before this date (ISO 8601). Offerings with no close date are excluded.
|
|
553
|
+
# @option opts [Float] :min_amount_raised Only offerings that have raised at least this amount so far (USD).
|
|
554
|
+
# @option opts [Array<String>] :industry Only companies tagged with any of these industries — the curated tags the wefunder.com explore page filters by (see each offering's `industries`). One value or a comma-separated list; unknown values are a 400 listing the vocabulary. Objective facets, not a ranking.
|
|
555
|
+
# @option opts [Array<String>] :business_model Only companies with any of these business models (see each offering's `business_models`). One value or a comma-separated list.
|
|
556
|
+
# @option opts [Boolean] :followed **Logged-in view only** (`read:explore` with a user). `true` — only companies the authorizing user follows on wefunder.com (their watchlist); `false` — only companies they do not follow. A 400 on the public view, which has no user to filter by.
|
|
557
|
+
# @return [Array<(OfferingListEnvelope, Integer, Hash)>] OfferingListEnvelope data, response status code and response headers
|
|
558
|
+
def list_offerings_with_http_info(opts = {})
|
|
559
|
+
if @api_client.config.debugging
|
|
560
|
+
@api_client.config.logger.debug 'Calling API: ExploreApi.list_offerings ...'
|
|
561
|
+
end
|
|
562
|
+
allowable_values = ["most_raised", "closing_soon", "newest", "most_investors"]
|
|
563
|
+
if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
|
|
564
|
+
fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
|
|
565
|
+
end
|
|
566
|
+
allowable_values = ["reg_cf", "reg_d"]
|
|
567
|
+
if @api_client.config.client_side_validation && opts[:'exemption'] && !allowable_values.include?(opts[:'exemption'])
|
|
568
|
+
fail ArgumentError, "invalid value for \"exemption\", must be one of #{allowable_values}"
|
|
569
|
+
end
|
|
570
|
+
allowable_values = ["safe", "equity", "convertible_note", "revenue_share", "debt", "fund", "other"]
|
|
571
|
+
if @api_client.config.client_side_validation && opts[:'security'] && !allowable_values.include?(opts[:'security'])
|
|
572
|
+
fail ArgumentError, "invalid value for \"security\", must be one of #{allowable_values}"
|
|
573
|
+
end
|
|
574
|
+
allowable_values = ["ar_and_vr", "agriculture_and_agtech", "artificial_intelligence", "biotech", "blockchain_and_web3", "edtech", "energy", "fintech_and_finance", "food_tech", "games", "health_and_fitness", "healthcare", "manufacturing", "mobile_apps", "robotics", "science_and_r_and_d", "transportation", "travel_and_tourism", "bars_and_clubs", "brewery", "cafe_and_food_truck", "events_and_festivals", "education", "distillery_and_vineyards", "fashion", "film", "media", "music", "restaurant", "sports", "real_estate", "pets", "recreation", "infrastructure_and_construction", "childcare", "sustainability", "sports_tech", "home_tech", "devtools", "clean_tech", "beauty", "entertainment", "technology", "brick_and_mortar", "food_and_beverage", "climate_change", "alcohol_and_vice", "consumer_goods", "hardware", "moonshots"]
|
|
575
|
+
if @api_client.config.client_side_validation && opts[:'industry'] && !opts[:'industry'].all? { |item| allowable_values.include?(item) }
|
|
576
|
+
fail ArgumentError, "invalid value for \"industry\", must include one of #{allowable_values}"
|
|
577
|
+
end
|
|
578
|
+
allowable_values = ["b2b", "b2c", "subscription", "saas", "service", "marketplace", "ecommerce", "retail"]
|
|
579
|
+
if @api_client.config.client_side_validation && opts[:'business_model'] && !opts[:'business_model'].all? { |item| allowable_values.include?(item) }
|
|
580
|
+
fail ArgumentError, "invalid value for \"business_model\", must include one of #{allowable_values}"
|
|
581
|
+
end
|
|
582
|
+
# resource path
|
|
583
|
+
local_var_path = '/explore'
|
|
584
|
+
|
|
585
|
+
# query parameters
|
|
586
|
+
query_params = opts[:query_params] || {}
|
|
587
|
+
query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
|
|
588
|
+
query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
|
|
589
|
+
query_params[:'exemption'] = opts[:'exemption'] if !opts[:'exemption'].nil?
|
|
590
|
+
query_params[:'security'] = opts[:'security'] if !opts[:'security'].nil?
|
|
591
|
+
query_params[:'testing_the_waters'] = opts[:'testing_the_waters'] if !opts[:'testing_the_waters'].nil?
|
|
592
|
+
query_params[:'max_min_investment'] = opts[:'max_min_investment'] if !opts[:'max_min_investment'].nil?
|
|
593
|
+
query_params[:'closing_before'] = opts[:'closing_before'] if !opts[:'closing_before'].nil?
|
|
594
|
+
query_params[:'min_amount_raised'] = opts[:'min_amount_raised'] if !opts[:'min_amount_raised'].nil?
|
|
595
|
+
query_params[:'industry'] = @api_client.build_collection_param(opts[:'industry'], :csv) if !opts[:'industry'].nil?
|
|
596
|
+
query_params[:'business_model'] = @api_client.build_collection_param(opts[:'business_model'], :csv) if !opts[:'business_model'].nil?
|
|
597
|
+
query_params[:'followed'] = opts[:'followed'] if !opts[:'followed'].nil?
|
|
598
|
+
|
|
599
|
+
# header parameters
|
|
600
|
+
header_params = opts[:header_params] || {}
|
|
601
|
+
# HTTP header 'Accept' (if needed)
|
|
602
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
603
|
+
|
|
604
|
+
# form parameters
|
|
605
|
+
form_params = opts[:form_params] || {}
|
|
606
|
+
|
|
607
|
+
# http body (model)
|
|
608
|
+
post_body = opts[:debug_body]
|
|
609
|
+
|
|
610
|
+
# return_type
|
|
611
|
+
return_type = opts[:debug_return_type] || 'OfferingListEnvelope'
|
|
612
|
+
|
|
613
|
+
# auth_names
|
|
614
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
|
|
615
|
+
|
|
616
|
+
new_options = opts.merge(
|
|
617
|
+
:operation => :"ExploreApi.list_offerings",
|
|
618
|
+
:header_params => header_params,
|
|
619
|
+
:query_params => query_params,
|
|
620
|
+
:form_params => form_params,
|
|
621
|
+
:body => post_body,
|
|
622
|
+
:auth_names => auth_names,
|
|
623
|
+
:return_type => return_type
|
|
624
|
+
)
|
|
625
|
+
|
|
626
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
627
|
+
if @api_client.config.debugging
|
|
628
|
+
@api_client.config.logger.debug "API called: ExploreApi#list_offerings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
629
|
+
end
|
|
630
|
+
return data, status_code, headers
|
|
631
|
+
end
|
|
632
|
+
end
|
|
633
|
+
end
|