Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Paribu Bitcoin Rates
Paribu.com - Türkiye'nin Bitcoin Borsası
2021 (update)
Api endpoint
https://v3.paribu.com/app/markets/btc-tl?interval=1000
Ticker
https://www.paribu.com/ticker
Initials
https://v3.paribu.com/app/initials
headers
user-agent = ParibuApp/332 ("+v.Platform.OS+" "+v.Platform.Version+")
Bonus
get("https://v3.paribu.com/app/initials")
post("https://v3.paribu.com/app/login",t)
post("https://v3.paribu.com/app/register",t)
post("https://v3.paribu.com/app/user/id-verify",t)
post("https://v3.paribu.com/app/two-factor",t)
post("https://v3.paribu.com/app/retry-sms",t)
get("https://v3.paribu.com/app/markets/"+t+'?interval='+s)
get("https://v3.paribu.com/app/charts/"+t+'?interval='+s)
post("https://v3.paribu.com/app/user/orders",t)
post("https://v3.paribu.com/app/user/addresses/assign",t)
post("https://v3.paribu.com/app/user/papara/deposit",t)
post("https://v3.paribu.com/app/user/withdraws",t)
post("https://v3.paribu.com/app/user/alerts",t)
delete("https://v3.paribu.com/app/user/alerts/"+t)
post("https://v3.paribu.com/app/user/papara/"+t,s)
put("https://v3.paribu.com/app/user/password",t)
put("https://v3.paribu.com/app/user/email",t)
put("https://v3.paribu.com/app/user/two-factor")
post("https://v3.paribu.com/app/reset/password",t)
put("https://v3.paribu.com/app/reset/password",t)
post("https://v3.paribu.com/app/user/email/confirmation",t)
post("https://v3.paribu.com/app/tickets",t)
get('https://www.paribu.com/app/notification-trigger?label='+t)
----
2017
Endpoint
https://www.paribu.com/endpoint/state
https://www.paribu.com/ticker
@asozyurt

This comment has been minimized.

Copy link

@asozyurt asozyurt commented Dec 22, 2017

Paribu'nun zahmet edip de sitesine koymadığı bilgiyi burada paylaştığın için teşekkürler. Kolay gelsin.

@kodmanyagha

This comment has been minimized.

Copy link

@kodmanyagha kodmanyagha commented Dec 28, 2017

asozyurt'a aynen katılıyorum

@yedincisenol

This comment has been minimized.

Copy link

@yedincisenol yedincisenol commented Dec 31, 2017

@yasinkuyu çok teşekkürler

@corsel

This comment has been minimized.

Copy link

@corsel corsel commented Jan 6, 2018

benden de teşekkürler, gerçekten kullanışlı bir arayüz.

@silenca

This comment has been minimized.

Copy link

@silenca silenca commented Feb 9, 2018

Does Paribu have the full API? With order creation, order book, order cancelation etc. Thanks for the answer in advance.

@sh4dowb

This comment has been minimized.

Copy link

@sh4dowb sh4dowb commented May 20, 2018

Cloudflare var ilk URL'de. Direk kullanamayabilirsiniz dikkat edin.
İkinci URL sorunsuz gibi. Teşekkürler! :)

@GokhanPolat

This comment has been minimized.

Copy link

@GokhanPolat GokhanPolat commented Dec 25, 2018

ticker linki şimdilik çalışıyor, teşekkürler.

@ferhatcklt

This comment has been minimized.

Copy link

@ferhatcklt ferhatcklt commented Apr 23, 2019

ticker linki çalışıyor koineks kullanıyordum. Paribuya geçebilirim.

@cagbal

This comment has been minimized.

Copy link

@cagbal cagbal commented Jul 3, 2019

tesekkurler, rate limitini asan olup da buraya yazarsa sevinirim.

@recoscoin

This comment has been minimized.

Copy link

@recoscoin recoscoin commented Nov 15, 2020

binancenin api adresini bilen varmı arkadaşlar

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Dec 26, 2020

Bana mail atarsanız paribunun 1 saniyelik

success true
data  
orderBook {…}
marketMatches […]
charts  
market "xrp-tl"
interval "1d"
t […]
c […]
v […]

verilerini atabilirim. denizhan49@gmail.com

@ebubekirbastama

This comment has been minimized.

Copy link

@ebubekirbastama ebubekirbastama commented Jan 5, 2021

(5.1.2021 tarihli) (https://www.paribu.com/endpoint/state) çalışmıyor 👎

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Jan 5, 2021

@yasinkuyu

This comment has been minimized.

Copy link
Owner Author

@yasinkuyu yasinkuyu commented Jan 12, 2021

Rica ederim.

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Jan 12, 2021

@yasinkuyu

This comment has been minimized.

Copy link
Owner Author

@yasinkuyu yasinkuyu commented Jan 12, 2021

Bağlantıları güncelledim.

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Jan 12, 2021

@yasinkuyu

This comment has been minimized.

Copy link
Owner Author

@yasinkuyu yasinkuyu commented Jan 12, 2021

Sorgu sınırını bilmiyorum açıkçası

@burakgunvar

This comment has been minimized.

Copy link

@burakgunvar burakgunvar commented Jan 15, 2021

c# üzerinden basit api kodları. Referans olabilir diye bırakıyorum.

using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace paribu_console_app
{
internal class Program
{
private static void Main()
{
start:
var webRequest = WebRequest.Create("https://www.paribu.com/ticker") as HttpWebRequest;
if (webRequest == null)
{
return;
}

        webRequest.ContentType = "application/json";
        webRequest.UserAgent = "Nothing";

        using (var s = webRequest.GetResponse().GetResponseStream())
        {
            using (var sr = new StreamReader(s))
            {
                var contributorsAsJson = sr.ReadToEnd();
                var orderResponse = Coins.FromJson(contributorsAsJson);
                orderResponse.Select(i => $"{i.Key}: {i.Value.Last}").ToList().ForEach(System.Console.WriteLine);
				 // orderResponse üzerinden devam... 
            }
        }
        System.Threading.Thread.Sleep(60000);
        System.Console.Clear();
        goto start;
    }
   
}

public partial class Coins
{
    [JsonProperty("lowestAsk")]
    public double LowestAsk { get; set; }

    [JsonProperty("highestBid")]
    public double HighestBid { get; set; }

    [JsonProperty("low24hr")]
    public double Low24Hr { get; set; }

    [JsonProperty("high24hr")]
    public double High24Hr { get; set; }

    [JsonProperty("avg24hr")]
    public double Avg24Hr { get; set; }

    [JsonProperty("volume")]
    public double Volume { get; set; }

    [JsonProperty("last")]
    public double Last { get; set; }

    [JsonProperty("change")]
    public double Change { get; set; }

    [JsonProperty("percentChange")]
    public double PercentChange { get; set; }

    [JsonProperty("chartData")]
    public object[] ChartData { get; set; }
}

public partial class Coins
{
    public static Dictionary<string, Coins> FromJson(string json) => JsonConvert.DeserializeObject<Dictionary<string, Coins>>(json, paribu_console_app.Converter.Settings);
}

public static class Serialize
{
    public static string ToJson(this Dictionary<string, Coins> self) => JsonConvert.SerializeObject(self, paribu_console_app.Converter.Settings);
}

internal static class Converter
{
    public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
    {
        MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
        DateParseHandling = DateParseHandling.None,
        Converters =
        {
            new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
        },
    };
}

}


using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;

namespace paribu_console_app
{
internal class Program
{
private static void Main()
{
start:
var webRequest = WebRequest.Create("https://v3.paribu.com/app/markets/btc-tl?interval=1000") as HttpWebRequest;
if (webRequest == null)
{
return;
}

        webRequest.ContentType = "application/json";
        webRequest.UserAgent = "Nothing";

        using (var s = webRequest.GetResponse().GetResponseStream())
        {
            using (var sr = new StreamReader(s))
            {
                var contributorsAsJson = sr.ReadToEnd();
                var orderResponse = Coins.FromJson(contributorsAsJson);

                // orderResponse üzerinden otomasyon 
            }
        }
        System.Threading.Thread.Sleep(60000);
        System.Console.Clear();
        goto start;
    }
   
}

public partial class Coins
{
    [JsonProperty("success")]
    public bool Success { get; set; }

    [JsonProperty("data")]
    public Data Data { get; set; }
}

public partial class Data
{
    [JsonProperty("orderBook")]
    public OrderBook OrderBook { get; set; }

    [JsonProperty("marketMatches")]
    public MarketMatch[] MarketMatches { get; set; }

    [JsonProperty("charts")]
    public Charts Charts { get; set; }
}

public partial class Charts
{
    [JsonProperty("market")]
    public string Market { get; set; }

    [JsonProperty("interval")]
    [JsonConverter(typeof(ParseStringConverter))]
    public long Interval { get; set; }

    [JsonProperty("t")]
    public object[] T { get; set; }

    [JsonProperty("c")]
    public object[] C { get; set; }

    [JsonProperty("v")]
    public object[] V { get; set; }
}

public partial class MarketMatch
{
    [JsonProperty("timestamp")]
    public long Timestamp { get; set; }

    [JsonProperty("amount")]
    public string Amount { get; set; }

    [JsonProperty("price")]
    public string Price { get; set; }

    [JsonProperty("trade")]
    public Trade Trade { get; set; }
}

public partial class OrderBook
{
    [JsonProperty("buy")]
    public Dictionary<string, double> Buy { get; set; }

    [JsonProperty("sell")]
    public Dictionary<string, double> Sell { get; set; }
}

public enum Trade { Buy, Sell };

public partial class Coins
{
    public static Coins FromJson(string json) => JsonConvert.DeserializeObject<Coins>(json, paribu_console_app.Converter.Settings);
}

public static class Serialize
{
    public static string ToJson(this Coins self) => JsonConvert.SerializeObject(self, paribu_console_app.Converter.Settings);
}

internal static class Converter
{
    public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
    {
        MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
        DateParseHandling = DateParseHandling.None,
        Converters =
        {
            TradeConverter.Singleton,
            new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
        },
    };
}

internal class ParseStringConverter : JsonConverter
{
    public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?);

    public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType == JsonToken.Null) return null;
        var value = serializer.Deserialize<string>(reader);
        long l;
        if (Int64.TryParse(value, out l))
        {
            return l;
        }
        throw new Exception("Cannot unmarshal type long");
    }

    public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
    {
        if (untypedValue == null)
        {
            serializer.Serialize(writer, null);
            return;
        }
        var value = (long)untypedValue;
        serializer.Serialize(writer, value.ToString());
        return;
    }

    public static readonly ParseStringConverter Singleton = new ParseStringConverter();
}

internal class TradeConverter : JsonConverter
{
    public override bool CanConvert(Type t) => t == typeof(Trade) || t == typeof(Trade?);

    public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType == JsonToken.Null) return null;
        var value = serializer.Deserialize<string>(reader);
        switch (value)
        {
            case "buy":
                return Trade.Buy;
            case "sell":
                return Trade.Sell;
        }
        throw new Exception("Cannot unmarshal type Trade");
    }

    public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
    {
        if (untypedValue == null)
        {
            serializer.Serialize(writer, null);
            return;
        }
        var value = (Trade)untypedValue;
        switch (value)
        {
            case Trade.Buy:
                serializer.Serialize(writer, "buy");
                return;
            case Trade.Sell:
                serializer.Serialize(writer, "sell");
                return;
        }
        throw new Exception("Cannot marshal type Trade");
    }

    public static readonly TradeConverter Singleton = new TradeConverter();
}

}

@buraksahin59

This comment has been minimized.

Copy link

@buraksahin59 buraksahin59 commented Feb 24, 2021

Tesekkurler hocam,

Burada ki 'https://www.paribu.com/app/markets/avax-tl?interval=1d' apisini kullanirken 'userMathces'leri cekmek icin tarayicidan giris mi yapmis olmak gerekiyor ? Kullaniciya ait alis - satis emirlerini nasil cekebilirim ?

Screenshot at Feb 24 21-46-39

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Feb 24, 2021

@burakgunvar

This comment has been minimized.

Copy link

@burakgunvar burakgunvar commented Feb 25, 2021

Merhaba
@buraksahin59 https://www.paribu.com/app/markets/btc-tl?interval=1d üzerinden marketMatches'i kullabiliriz sanırım istediğin bilgi için fakat @denizhantoy 'a katılıyorum, eğer borsalar arasında arbitraj kullanacaksan paribu üzerinden deneme yapabilirsin fakat bot yazmak istiyorsan binance gibi yüksek hacimli piyasalarda işlem yapmak daha mantıklı olabilir.

Ek olarak python için EMA20 EMA50 kontrülünü ve al sat sinyalini oluşturan basit kodlarıda bırakıyorum. Bunlar sadece konu hakkında bilgisi olmayan ve ilgilenmek isteyenlere ilk başlangıc olabilecek seviyede kodlardır.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
import os

import package

import pandas_datareader.data as web

set start and end dates

start = datetime.datetime(2018, 2, 1)
end = datetime.datetime(2021, 2, 2)

extract the closing price data

df = web.DataReader(['BTC-USD'], 'yahoo', start = start, end = end)['Close']
df.columns = {'Close Price'}
df.head(10)

df['Close Price'].plot(figsize = (15, 8))
plt.grid()
plt.ylabel("Price in USD")

wdir = os.getcwd() + "\Result.csv"

df.to_csv(wdir)

create 20 days simple moving average column

df['20_SMA'] = df['Close Price'].rolling(window = 20, min_periods = 1).mean()

create 50 days simple moving average column

df['50_SMA'] = df['Close Price'].rolling(window = 50, min_periods = 1).mean()

display first few rows

df.head()

df['Signal'] = 0.0
df['Signal'] = np.where(df['20_SMA'] > df['50_SMA'], 1.0, 0.0)

df['Position'] = df['Signal'].diff()

display first few rows

df.head()

colors = {'k':'red', 'b':'blue', 'g':'green', 'G':'black'}

plt.figure(figsize = (20,10))

plot close price, short-term and long-term moving averages

df["Close Price"].plot(color = "k", label= "Close Price")
df['20_SMA'].plot(color = 'b',label = '20-day SMA')
df['50_SMA'].plot(color = 'g', label = '50-day SMA')

plot 'buy' signals

plt.plot(df[df['Position'] == 1].index,
df['20_SMA'][df['Position'] == 1],
'^', markersize = 15, color = 'g', label = 'buy')

plot 'sell' signals

plt.plot(df[df['Position'] == -1].index,
df['20_SMA'][df['Position'] == -1],
'v', markersize = 15, color = 'r', label = 'sell')
plt.ylabel('Price in USD', fontsize = 15 )
plt.xlabel('Date', fontsize = 15 )
plt.title('BTC-USD', fontsize = 20)
plt.legend()
plt.grid()
plt.show()

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Feb 25, 2021

@safakyavsan

This comment has been minimized.

Copy link

@safakyavsan safakyavsan commented Mar 9, 2021

2 saniyede bir istek göndermeme rağmen rate limite takılıp ban yiyorum 60 saniyede kaç istek atabiliyoruz ?

@Ekaya76

This comment has been minimized.

Copy link

@Ekaya76 Ekaya76 commented Apr 7, 2021

@denizhantoy hocam tam istediğim şeyi yapmışsın ama link ölmüş. Rica etsem linki yenileyip, tekrar paylaşabilir misin?

Benimde susekilde anlık alîm satımları toplayıp fikir olusturabilecek bir programım var kodlar acik halde düzenleyebilirsiniz. https://repl.it/talk/share/Paribu-anlik-ALIM-SATIM-ve-TOPLAM-ALIM-SATIM-GOSTEREN-PROGRAM/111193

@EminnTR

This comment has been minimized.

Copy link

@EminnTR EminnTR commented Apr 20, 2021

paribu alım satım için api sağlıyor mu?

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Apr 20, 2021

@canerd7u

This comment has been minimized.

Copy link

@canerd7u canerd7u commented May 5, 2021

post("https://v3.paribu.com/app/user/orders",t)

Buradaki t neyi ifade ediyor ?

@karatesi

This comment has been minimized.

Copy link

@karatesi karatesi commented Jun 23, 2021

Bu postlardaki T ne oluyor arkadaşlar. 1 aydır cevap alamadık

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Jun 23, 2021

@karatesi

This comment has been minimized.

Copy link

@karatesi karatesi commented Jun 24, 2021

Peki Bakiye mizi TL ve coin bazından çekebiliyor muyuz ?

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Jun 25, 2021

@ilkersen3

This comment has been minimized.

Copy link

@ilkersen3 ilkersen3 commented Sep 4, 2021

@karatesi T tabiki time :) Paribu api üzerinden al sat işlemi yaptırmıyor. Korkuyorlar. Kendileride açıklıyor borsa manipüle edilir diye... Çünkü paribunun al sat çalışma mantığı 10 saniye boyunca emir topla. 10 saniyede bir cron çalıştır emirleri eşleştir :D bundan ibaret maalesef.

@denizhantoy

This comment has been minimized.

Copy link

@denizhantoy denizhantoy commented Oct 11, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment