PublicFunctions/Get-FMPStockChartLight.ps1

function Get-FMPStockChartLight { 
 

    <#
        .SYNOPSIS
            Retrieves simplified end-of-day stock chart data for a specified stock symbol using the FMP Basic Stock Chart API.

        .DESCRIPTION
            The Get-FMPStockChartLight function accesses the Financial Modeling Prep API to fetch essential charting information,
            such as date, price, and trading volume, for a given stock symbol. This simplified data set is ideal for tracking
            stock performance and creating basic price and volume charts.
            Users can optionally filter the data by 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 Symbol
            Specifies the stock symbol for which to retrieve end-of-day chart data (e.g., AAPL). This parameter is mandatory.

        .PARAMETER FromDate
            (Optional) Specifies the start date (inclusive) for the data to be retrieved.
            The date is formatted as "yyyy-MM-dd". This parameter is optional.

        .PARAMETER ToDate
            (Optional) Specifies the end date (inclusive) for the data to be retrieved.
            The date 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 the Get-FMPCredential function.

        .EXAMPLE
            Get-FMPStockChartLight -Symbol AAPL -FromDate (Get-Date "2025-01-08") -ToDate (Get-Date "2025-04-08")

            This example retrieves the basic end-of-day stock chart data for Apple Inc. between January 8, 2025 and April 8, 2025.

        .NOTES
            This function utilizes the FMP Basic Stock Chart API endpoint.
            For more information, visit: https://financialmodelingprep.com
    #>


    [CmdletBinding()]

    Param (
        [Parameter(Mandatory = $true)]
        [string] $Symbol,

        [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/historical-price-eod/light"
    }

    Process {
        $url = "{0}?symbol={1}&apikey={2}" -f $baseUrl, $Symbol, $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 FMP stock chart light EOD data: $_"
        }
    }
 
 };