Hämta finansiell data i C# och .NET Core

En utvecklarguide till hur du konsumerar finansiell rapportdata från BörsAPI i C# och .NET med HttpClient och starkt typade klasser.

10 juli 20265 min läsning

För utvecklare i Microsoft-ekosystemet är C# och .NET Core kraftfulla verktyg för att bygga robusta handelssystem, kalkylatorer eller interna databaser. Här går vi igenom hur du sätter upp en anslutning till BörsAPI.se i C# för att hämta finansiell data i JSON-format.

Steg 1: Definiera de finansiella modellerna

För att få full nytta av C#:s typsäkerhet skapar vi klasser som matchar BörsAPI:s JSON-struktur:

using System;
using System.Text.Json.Serialization;

public class Company
{
    [JsonPropertyName("id")]
    public string Id { get; set; }

    [JsonPropertyName("ticker")]
    public string Ticker { get; set; }

    [JsonPropertyName("name")]
    public string Name { get; set; }

    [JsonPropertyName("sector")]
    public string Sector { get; set; }

    [JsonPropertyName("market")]
    public string Market { get; set; }
}

public class FinancialReport
{
    [JsonPropertyName("period")]
    public string Period { get; set; }

    [JsonPropertyName("report_type")]
    public string ReportType { get; set; }

    [JsonPropertyName("revenue")]
    public long? Revenue { get; set; }

    [JsonPropertyName("operating_income")]
    public long? OperatingIncome { get; set; }

    [JsonPropertyName("net_income")]
    public long? NetIncome { get; set; }

    [JsonPropertyName("total_assets")]
    public long? TotalAssets { get; set; }
}

Steg 2: Skapa API-klienten

Vi använder HttpClient för att skicka anropet och lägger till vår API-nyckel som ett Authorization header-attribut:

using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Threading.Tasks;
using System.Collections.Generic;

public class BorsApiClient
{
    private readonly HttpClient _httpClient;
    private const string BaseUrl = "https://borsapi.se/api/v1";

    public BorsApiClient(string apiKey)
    {
        _httpClient = new HttpClient();
        _httpClient.DefaultRequestHeaders.Authorization = 
            new AuthenticationHeaderValue("Bearer", apiKey);
        _httpClient.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));
    }

    public async Task<List<Company>> GetCompaniesAsync(int limit = 10)
    {
        var response = await _httpClient.GetAsync($"${BaseUrl}/companies?limit=${limit}");
        response.EnsureSuccessStatusCode();
        var json = await response.Content.ReadAsStringAsync();
        return JsonSerializer.Deserialize<List<Company>>(json);
    }

    public async Task<List<FinancialReport>> GetReportsAsync(string isin)
    {
        var response = await _httpClient.GetAsync($"${BaseUrl}/companies/${isin}/reports");
        response.EnsureSuccessStatusCode();
        var json = await response.Content.ReadAsStringAsync();
        return JsonSerializer.Deserialize<List<FinancialReport>>(json);
    }
}

Steg 3: Hämta data i programmet

Här är ett enkelt exempel på hur du anropar klasserna i din Program.cs:

class Program
{
    static async Task Main(string[] args)
    {
        string apiKey = "fd_din_api_nyckel_här";
        var client = new BorsApiClient(apiKey);

        // Hämta bolag
        var companies = await client.GetCompaniesAsync(5);
        foreach (var company in companies)
        {
            System.Console.WriteLine($"Bolag: {company.Name} ({company.Ticker})");
            
            // Hämta rapporter för det första bolaget
            var reports = await client.GetReportsAsync(company.Id);
            if (reports.Count > 0)
            {
                System.Console.WriteLine($"  Senaste perioden: {reports[0].Period}");
                System.Console.WriteLine($"  Omsättning: {reports[0].Revenue:N0} SEK");
            }
        }
    }
}

Kom igång med BörsAPI

För att använda dessa mallar och skript behöver du ett personligt konto och en API-nyckel. Det är helt kostnadsfritt under vår beta-period.

1. Skapa konto

Registrera dig på några sekunder via registreringssidan.

2. Generera API-nyckel

Gå till din Dashboard och klicka på "Generera API-nyckel".

3. Anslut i mallen

Ersätt placeholder-nyckeln i källkoden eller kalkylarket med din personliga nyckel.

    Hämta finansiell data i C# och .NET Core - BörsAPI.se