PublicFunctions/Get-FMPCompanyProfile.ps1

function Get-FMPCompanyProfile { 
 

    <#
        .SYNOPSIS
            Retrieves company profile data for a specified trading symbol using the Financial Modeling Prep API.

        .DESCRIPTION
            The Get-FMPCompanyProfile function fetches comprehensive profile information for a given company based on its trading symbol.
            The returned profile data includes details such as price, market capitalization, beta, dividend, company name, industry,
            website, description, CEO, and other financial and corporate metrics.
            If no API key is provided, the function attempts to retrieve it using the Get-FMPCredential function and will prompt
            the user if necessary.

        .PARAMETER Symbol
            Specifies the trading symbol for the company (e.g., AAPL). This parameter is mandatory.

        .PARAMETER ApiKey
            Specifies your Financial Modeling Prep API key. If omitted, the function will attempt to retrieve it using Get-FMPCredential
            and prompt the user if necessary.

        .EXAMPLE
            Get-FMPCompanyProfile -Symbol AAPL

            This example retrieves the company profile for Apple Inc. using your Financial Modeling Prep API key.

        .NOTES
            This function utilizes the Financial Modeling Prep API's company profile endpoint.
            For more information, visit: https://financialmodelingprep.com
    #>


    [CmdletBinding()]

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

        [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/profile"
    }

    Process {
        # Build the query URL using the provided symbol and API key
        $url = "{0}?symbol={1}&apikey={2}" -f $baseUrl, $Symbol, $ApiKey

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

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