Como posso obter taxas de câmbio através de uma API como o Google Finance? [fechado]

Author: George Stocker, 2010-06-29

10 answers

Obrigado por todas as respostas.

Currencyconverterapi livre:

  • taxas actualizadas a cada 30 minutos
  • não é necessária nenhuma conta

Um URL de conversão de amostras é: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Para a posteridade, eles estão junto com outras possíveis respostas:
  1. a API do Yahoo finance descontinuou 2017-11-06

    Descontinuado em 2017-11-06 com mensagem

    Chegou ao nosso conhecimento que este serviço está a ser utilizado em violação dos Termos de Serviço do Yahoo. Como tal, o serviço está a ser descontinuado. Para todos os futuros mercados e acções investigação de dados, por favor consulte finance.yahoo.com.

    Pedido: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
    Este CSV estava a ser usado por um plugin jQuery chamado Curry. Caril tem desde então (2017-08-29) transferido para usar fixer.io em vez disso, devido a problemas de estabilidade. Pode ser útil se precisar de mais do que um CSV.

  2. (graças a Keyo) a linguagem de pesquisa do Yahoo permite-lhe obter um monte de moedas ao mesmo tempo em XML ou JSON. Os dados atualizam-se no segundo (enquanto o Banco Central Europeu tem dados do dia anterior), e param no fim-de-semana. Não requer nenhum tipo de inscrição.

    Http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.Financas.xchange onde o par ("USDEUR", "PAR", "USDBGN", "USDCZK", "USDDKK", "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "o par usd / chf", "USDNOK", "USDHRK", "USDRUB", "USDTRY", "USDAUD", "USDBRL", "PAR", "USDCNY", "USDHKD", "USDIDR", "USDILS", "USDINR", "USDKRW", "USDMXN", "USDMYR", "USDNZD", "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK")&env=armazenamento://datatables.org/alltableswithkeys

    Aqui está o construtor de pesquisas YQL, onde poderá testar uma pesquisa e copiar o url: (já não está disponível)

    http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDMXN%22%2C%20%22USDCHF%22%29

enter image description here

  1. Taxas de câmbio de código aberto API

    Grátis para uso pessoal (1000 visitas por mês)
    Mudar a "base" (de "USD") Não é permitido gratuitamente conta
    Requer registo.
    Pedido: http://openexchangerates.org/latest.json
    Resposta:

    {
      "disclaimer": "This data is collected from various providers ...",
      "license": "all code open-source under GPL v3 ...",
      "timestamp": 1323115901,
      "base": "USD",
      "rates": {
          "AED": 3.66999725,
          "ALL": 102.09382091,
          "ANG": 1.78992886,
          // 115 more currency rates here ...
      }
    }
    
  2. Currencylayer API

    Plano gratuito {[19] } para 1.000 visualizações mensais
    A alteração de "fonte" (de "USD") não é permitida em conta gratuita
    Requer registo.
    Documentação:
    currencylayer.com/documentation

    Resposta JSON:

    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
    
  3. Fixer.io API (Banco Central Europeu) data)

    Plano gratuito para 1000 visualizações mensais A alteração de " fonte "(a partir de "USD") não é permitida em conta gratuita Requer registo.

    Este ponto final da API está desactualizado e deixará de funcionar a 1 de junho de 2018. Para mais informações, visite: https://github.com/fixerAPI/fixer#readme)


    Sítio web: http://fixer.io/
    Pedido de exemplo : http://api.fixer.io/latest?base=USD
    Só recolhe um valor por cada dia

  4. Banco Central Europeu Feed

    Docs: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
    Pedido: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

    Resposta XML:

    <Cube>
      <Cube time="2015-07-07">
      <Cube currency="USD" rate="1.0931"/>
      <Cube currency="JPY" rate="133.88"/>
      <Cube currency="BGN" rate="1.9558"/>
      <Cube currency="CZK" rate="27.100"/>
    </Cube>
    
  5. pesquisa da taxa de câmbio do Google (processada) actualmente indisponível:

    Pedido: http://rate-exchange.appspot.com/currency?from=USD&to=EUR
    Resposta:

    {"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
    


    Aqui está outra API JSON (P) baseada na API do Google (fonte: este comentário):
    http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1

    Resposta Original por Ryan.

 723
Author: Frank, 2018-09-12 06:48:07

O Banco Central Europeu (BCE) também tem a informação gratuita mais fiável que conheço. Contém cerca de 28 moedas e é actualizado pelo menos diariamente.

Http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

Para mais formatos e ferramentas, ver a página de referência do BCE: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html

 52
Author: Ryan, 2011-08-23 17:37:42

Se você precisa de uma API livre e simples para converter uma moeda para outra, tente free.currencyconverterapi.com.

Disclaimer, eu sou o autor do site e eu usá-lo para um dos meus outros sites.

O serviço é livre de usar mesmo para aplicações comerciais, mas não oferece nenhuma garantia. Por razões de desempenho, os valores só são atualizados a cada hora.

Um URL de conversão de amostras é: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_PHP&compact=ultra que devolverá um valor json formatado, por exemplo {"EUR_PHP": 60.849184}

 34
Author: Manny, 2018-07-06 07:20:17
Tenho este conteúdo de http://www.scriptarticle.com/2012/05/03/get-live-currency-rates-and-currency-conversion-using-php-and-apis/
<?php

function get_currency($from_Currency, $to_Currency, $amount) {
    $amount = urlencode($amount);
    $from_Currency = urlencode($from_Currency);
    $to_Currency = urlencode($to_Currency);

    $url = "http://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency";

    $ch = curl_init();
    $timeout = 0;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt ($ch, CURLOPT_USERAGENT,
                 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $rawdata = curl_exec($ch);
    curl_close($ch);
    $data = explode('bld>', $rawdata);
    $data = explode($to_Currency, $data[1]);

    return round($data[0], 2);
}

// Call the function to get the currency converted
echo get_currency('USD', 'INR', 1);

?>
 26
Author: Lokesh, 2013-06-06 18:29:44
Aqui estão algumas APIs de troca com Exemplo de PHP.

[ taxas de câmbio abertas API ]

Fornece 1.000 pedidos por mês grátis. Você deve se registrar e pegar o ID da aplicação. A moeda de base USD por conta gratuita. Verifique a documentação das moedas suportadas e .

// open exchange URL // valid app_id * REQUIRED *
$exchange_url = 'https://openexchangerates.org/api/latest.json';
$params = array(
    'app_id' => 'YOUR_APP_ID'
);

// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
    CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);

if (!empty($response->rates)) {
    // convert 150 USD to JPY ( Japanese Yen )
    echo $response->rates->JPY * 150;
}

150 USD = 18039.09015 JPY

[ API de camada de moeda ]

Fornece 1.000 pedidos por mês grátis. Você deve se registrar e pegar o

 13
Author: Madan Sapkota, 2016-03-01 17:19:32

Podes tentar geoplugin

Ao lado da geolocalização feita pelo IP (mas o IP é o IP fornecedor, por isso não é tão preciso), eles também devolvem moedas e têm um conversor de moeda: ver exemplos.

Têm 111 moedas actualizadas.

 1
Author: user3227746, 2016-04-04 11:56:35

Se está à procura de uma solução baseada em ruby para este problema, recomendo a utilização do método da Calculadora do Google uma solução semelhante à seguinte: http://j.mp/QIC564

require 'faraday'
require 'faraday_middleware'
require 'json'

# Debug: 
# require "pry"


country_code_src = "USD"
country_code_dst = "INR"
connection = Faraday.get("http://www.google.com/ig/calculator?hl=en&q=1#{country_code_src}=?#{country_code_dst}")

currency_comparison_hash = eval connection.body #Google's output is not JSON, it's a hash

dst_currency_value, *dst_currency_text = *currency_comparison_hash[:rhs].split(' ')
dst_currency_value = dst_currency_value.to_f
dst_currency_text = dst_currency_text.join(' ')

puts "#{country_code_dst} -> #{dst_currency_value} (#{dst_currency_text} to 1 #{country_code_src})"
 0
Author: ylluminate, 2013-06-06 18:32:17

Aqui está um script PHP simples que recebe a taxa de câmbio entre GBP e USD

<?php
$amount = urlencode("1");
$from_GBP0 = urlencode("GBP");
$to_usd= urlencode("USD");
$Dallor = "hl=en&q=$amount$from_GBP0%3D%3F$to_usd";
$US_Rate = file_get_contents("http://google.com/ig/calculator?".$Dallor);
$US_data = explode('"', $US_Rate);
$US_data = explode(' ', $US_data['3']);
$var_USD = $US_data['0'];
echo $to_usd;
echo $var_USD;
echo '<br/>'; 
?>

As taxas de câmbio do Google não são corretas o próprio google diz = = > O Google não pode garantir a precisão das taxas de câmbio utilizadas pela calculadora. Deverá confirmar as taxas actuais antes de efectuar quaisquer transacções que possam ser afectadas por alterações nas taxas de câmbio. As taxas de câmbio fornecidas pelo Citibank N. A. são apresentadas sob licença. As tarifas são apenas para fins informativos e são sujeito a alterações sem aviso prévio. As taxas para as transações efetivas podem variar e o Citibank não está se oferecendo para entrar em qualquer transação a qualquer taxa exibida.

 0
Author: mohamed nur, 2013-06-06 18:33:19
{[[2]} para todos os tipos novatos que procuram alguma dica sobre a conversão de moeda, dê uma olhada neste link. Datavoila Ajudou muito a med em relação ao meu próprio projecto em C#. Caso o site desapareça, vou adicionar o código abaixo. Basta adicionar os passos abaixo para o seu próprio projeto. Desculpa a formatação.
const string fromCurrency = "USD";
const string toCurrency = "EUR";
const double amount = 49.95;
// For other currency symbols see http://finance.yahoo.com/currency-converter/
// Clear the output editor //optional use, AFAIK
Output.Clear();

// Construct URL to query the Yahoo! Finance API
const string urlPattern = "http://finance.yahoo.com/d/quotes.csv?s={0}{1}=X&f=l1";
string url = String.Format(urlPattern, fromCurrency, toCurrency);

// Get response as string
string response = new WebClient().DownloadString(url);

// Convert string to number
double exchangeRate =
    double.Parse(response, System.Globalization.CultureInfo.InvariantCulture);

// Output the result
Output.Text = String.Format("{0} {1} = {2} {3}",
                            amount, fromCurrency,
                            amount * exchangeRate, toCurrency);
 -1
Author: Emperor 2052, 2013-06-06 18:25:17