Skip to content

MatthiWare/FinancialModelingPrep.NET

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
November 11, 2022 17:51
October 13, 2023 11:27
May 16, 2021 08:06
May 16, 2021 08:06
November 19, 2022 14:28

FinancialModelingPrep.NET

.NET Nuget

.NET 7 API Client For https://financialmodelingprep.com/ API written in C#

Installation

PM> Install-Package MatthiWare.FinancialModelingPrep

Quick Start

Register FinancialModelingPrepApiClient in Dependency Injection provider

You can find your API Key here https://site.financialmodelingprep.com/developer/docs/dashboard/

using MatthiWare.FinancialModelingPrep;

Services.AddFinancialModelingPrepApiClient(new FinancialModelingPrepOptions()
{
    ApiKey = "API-KEY-HERE"
});

var api = ServiceProvider.GetRequiredService<IFinancialModelingPrepApiClient>();

// do something with api like getting the latest Apple Stock Quote
var quoteResult = await api.CompanyValuation.GetQuoteAsync("AAPL");

Create FMP API Client using Factory (without Dependency Injection)

using MatthiWare.FinancialModelingPrep;

var api = FinancialModelingPrepApiClientFactory.CreateClient(new FinancialModelingPrepOptions());

// do something with api like getting the latest Apple Stock Quote
var quoteResult = await api.CompanyValuation.GetQuoteAsync("AAPL");

Get Stock Price Quote

var response = await api.CompanyValuation.GetQuoteAsync("AAPL");

// Display Apple Stock Quote
Console.WriteLine($"$AAPL is currently trading at: {response.Data.Price}");

All API Responses are wrapped in an ApiResponse<T> object.

public class ApiResponse<T>
{
    /// <summary>
    /// Error message if any occured
    /// </summary>
    public string Error { get; }

    /// <summary>
    /// True if there was an error with the request otherwise false
    /// </summary>
    public bool HasError { get; }

    /// <summary>
    /// The FMP API response object <see cref="T"/>
    /// </summary>
    public T Data { get; }
}

Example:

var response = await api.CompanyValuation.GetQuoteAsync("AAPL");

// Display Apple Stock Quote
if (!quoteResult.HasError)
{
   Console.WriteLine($"$AAPL is currently trading at: {response.Data.Price}");
}
else
{
   Console.WriteLine($"Error occured, message: {response.Error}");
}

Covered Endpoints

  • Company Valuation
  • Advanced Data
  • Insider Trading (Not yet covered)
  • Calendars
  • Instituational Fund
  • Stock Time Series (Partially covered)
  • Technical Indicators (Not yet covered)
  • Stock Statistics (Partially covered)
  • Market Indexes
  • Alternative Data (Not yet covered)
  • Commodities (Not yet covered)
  • ETF (Partially covered)
  • Mutual Funds (Not yet covered)
  • Stock Market (Partially covered)
  • Cryptocurrencies (Partially covered)
  • Forex (Partially covered)
  • Economics (Partially covered)

Contribute

Create a PR where you add or improve an Endpoint