# C#
URL: /docs/examples/csharp.mdx

Integre a API brapi.dev em suas aplicações C# usando HttpClient. Exemplos práticos para buscar cotações de ações brasileiras.

***

title: 'C#'
description: >-
Integre a API brapi.dev em suas aplicações C# usando HttpClient. Exemplos
práticos para buscar cotações de ações brasileiras.
full: false
keywords: brapi, api, csharp, dotnet, httpclient, cotações, ações brasileiras
openGraph:
title: Integração C# - brapi.dev
description: Exemplos de integração usando C# e .NET
type: website
locale: pt\_BR
lastUpdated: '2025-10-12T17:30:00.000Z'
lang: pt-BR
howToSteps:

* name: 'Crie um HttpClient'
  text: 'Use new HttpClient() com Timeout configurado. Considere reutilizar a instância para evitar esgotamento de sockets.'
* name: 'Faça a requisição GET assíncrona'
  text: 'Use await client.GetStringAsync(url) para buscar dados da API brapi.dev de forma assíncrona.'
* name: 'Defina classes para deserialização'
  text: 'Crie classes Quote e QuoteResponse com propriedades que mapeiam os campos JSON retornados pela API.'
* name: 'Deserialize o JSON usando System.Text.Json'
  text: 'Use JsonSerializer.Deserialize(response) para converter a resposta JSON em objetos C# tipados.'
* name: 'Acesse e exiba os dados'
  text: 'Acesse data.Results\[0].RegularMarketPrice para obter o preço e formate com Console.WriteLine($"R$ {price:F2}").'
  howToTools:
* '.NET 6+ ou .NET Framework 4.8+'
* 'Visual Studio ou VS Code'
* 'System.Text.Json ou Newtonsoft.Json'
  howToSupplies:
* 'Projeto .NET configurado'
* 'Conta brapi.dev'
* 'Token de API brapi.dev'

***

Integre a API brapi.dev em suas aplicações C# usando HttpClient.

## Exemplo Básico

```csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string token = "SEU_TOKEN";
        string ticker = "PETR4";
        string url = $"https://brapi.dev/api/quote/{ticker}";

        using HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue("Bearer", token);
        string response = await client.GetStringAsync(url);
        Console.WriteLine(response);
    }
}
```

## Com Classes Tipadas

```csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Threading.Tasks;

public class Quote
{
    public string Symbol { get; set; }
    public string ShortName { get; set; }
    public decimal RegularMarketPrice { get; set; }
    public decimal RegularMarketChangePercent { get; set; }
    public string Currency { get; set; }
}

public class QuoteResponse
{
    public Quote[] Results { get; set; }
}

public class BrapiClient
{
    private readonly HttpClient _httpClient;
    private const string BaseUrl = "https://brapi.dev/api";

    public BrapiClient(string token)
    {
        _httpClient = new HttpClient
        {
            Timeout = TimeSpan.FromSeconds(10)
        };
        _httpClient.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue("Bearer", token);
    }

    public async Task GetQuoteAsync(string ticker)
    {
        var url = $"{BaseUrl}/quote/{ticker}";
        var response = await _httpClient.GetStringAsync(url);
        var data = JsonSerializer.Deserialize(response);
        return data?.Results?[0];
    }

    static async Task Main()
    {
        var client = new BrapiClient("SEU_TOKEN");
        var quote = await client.GetQuoteAsync("PETR4");
        
        if (quote != null)
        {
            Console.WriteLine($"{quote.Symbol}: R$ {quote.RegularMarketPrice:F2}");
        }
    }
}
```

## Próximos Passos

* Explore [outros exemplos](/docs/examples)
* Veja a [documentação completa](/docs)


