PublicFunctions/Get-FMPIPODisclosure.ps1

function Get-FMPIPODisclosure { 
 

    <#
        .SYNOPSIS
            Retrieves IPO disclosure filings for upcoming initial public offerings using the Financial Modeling Prep API.

        .DESCRIPTION
            The Get-FMPIPODisclosure function fetches a list of disclosure filings for upcoming IPOs. This includes
            key regulatory filing details such as filing dates, effectiveness dates, CIK numbers, form types, and direct
            links to the official SEC documents. Users can filter the results by specifying a date range using the "from"
            and "to" parameters. If no API key is provided, the function attempts to retrieve it using the Get-FMPCredential
            function and prompts the user if necessary.

        .PARAMETER FromDate
            Specifies the start date (inclusive) for the IPO disclosure filings. The date must be a [datetime] object
            and is formatted as "yyyy-MM-dd". This parameter is optional.

        .PARAMETER ToDate
            Specifies the end date (inclusive) for the IPO disclosure filings. The date must be a [datetime] object
            and is formatted as "yyyy-MM-dd". This parameter is optional.

        .PARAMETER ApiKey
            Specifies your Financial Modeling Prep API key. If omitted, the function attempts to retrieve it using
            Get-FMPCredential.

        .EXAMPLE
            Get-FMPIPODisclosure -FromDate (Get-Date "2025-01-08") -ToDate (Get-Date "2025-04-08")

            This example retrieves IPO disclosure filings between January 8, 2025 and April 8, 2025 using your Financial Modeling Prep API key.

        .NOTES
            This is a premium endpoint, and requires a paid subscription. This function utilizes the Financial Modeling Prep IPO Disclosures API endpoint.
            For more information, visit: https://financialmodelingprep.com
    #>


    [CmdletBinding()]

    Param (
        [Parameter(Mandatory = $false)]
        [datetime] $FromDate,

        [Parameter(Mandatory = $false)]
        [datetime] $ToDate,

        [Parameter(Mandatory = $false)]
        [string] $ApiKey = (Get-FMPCredential)
    )

    Begin {
        if (-not $ApiKey) {
            $ApiKey = Read-Host "Please enter your Financial Modeling Prep API key"
        }
        $baseUrl = "https://financialmodelingprep.com/stable/ipos-disclosure"
    }

    Process {
        $url = "{0}?apikey={1}" -f $baseUrl, $ApiKey

        if ($FromDate) {
            $url += "&from=" + $FromDate.ToString("yyyy-MM-dd")
        }
        if ($ToDate) {
            $url += "&to=" + $ToDate.ToString("yyyy-MM-dd")
        }

        $headers = @{
            "Upgrade-Insecure-Requests" = "1"
        }

        try {
            $response = Invoke-RestMethod -Uri $url -Method Get -Headers $headers -ErrorAction Stop
            return $response
        }
        catch {
            throw "Error retrieving IPO disclosure data: $_"
        }
    }
 
 };