P2P Dash API
Tavo P2P portfelio duomenys JSON formatu, skaičiuoklei, scenarijui ar savo valdymo skydui. Paskyroje susikuri raktą, siunti jį su kiekviena užklausa ir gauni tuos pačius skaičius, kuriuos matai P2P Dash.
Tavo pirmoji užklausa
Trys žingsniai terminale macOS ar Linux sistemoje. Jei mieliau pradėtum nuo Google Sheets, žemiau rasi pavyzdį ir tam.
Sukurk raktą
P2P Dash atidaryk naudotojo meniu ir eik į „API prieigos raktai“. Pavadink raktą, prie „Tavo duomenys“ pasirink „Skaitymas“ ir nustatyk, kada jis nustos galioti. Raktą parodome tik vieną kartą, tad nukopijuok jį iškart.
Nelaikyk jo kode
Įrašyk jį į aplinkos kintamąjį, čia P2PDASH_TOKEN, o ne į failą, kuriuo dalijiesi. Kas turi raktą, tas gali perskaityti tavo skaičius.
Išsiųsk užklausą
Kiekviena užklausa neša raktą antraštėje Authorization. Atsakymas ateina JSON formatu, o tavo duomenys yra po data.
export P2PDASH_TOKEN="p2pdash_..."
curl https://app.p2pdash.com/api/v1/account/summary \
-H "Authorization: Bearer $P2PDASH_TOKEN"Windows sistemos PowerShell lange raktą nustatyk komanda $env:P2PDASH_TOKEN = "p2pdash_...", vietoj curl rašyk curl.exe, visą užklausą surašyk vienoje eilutėje, o antraštėje naudok $env:P2PDASH_TOKEN.
{
"data": {
"platformCount": 4,
"firstDate": "2021-03-02",
"lastDate": "2026-11-09",
"interest": 1781.4,
"principalRepayment": 37443.05,
"fee": 12.4,
"tax": 0,
"bonus": 85,
"deposit": 12000,
"withdrawal": 1500,
"investment": 48210.33,
"defaultLoss": 120.5,
"internalTransfer": 0,
"transactionCount": 14873,
"totalBalance": 12233.5,
"availableBalance": 1586.72,
"investedBalance": 10646.78,
"netDeposits": 10500,
"netIncome": 1733.5
}
}Tai pavyzdiniai skaičiai. totalBalance yra tavo paskyros vertė: įnašai minus išėmimai plius viskas, ką uždirbai, atskaičius komisinius, mokesčius ir nuostolius.
Pavyzdžiai
Keturi dalykai, kuriuos gali padaryti su API. Nukopijuok kodą, nustatyk savo raktą ir pritaikyk sau.
Tavo balansas Google Sheets
Savo lentelėje atidaryk Extensions → Apps Script ir įklijuok šią funkciją. Skiltyje Project settings → Script properties pridėk P2PDASH_TOKEN su savo raktu. Tada įrašyk formulę į langelį. Tinka bet kuris suvestinės laukas, pvz., "netIncome".
function P2PDASH(field) {
const token = PropertiesService.getScriptProperties()
.getProperty("P2PDASH_TOKEN");
const res = UrlFetchApp.fetch(
"https://app.p2pdash.com/api/v1/account/summary",
{ headers: { Authorization: "Bearer " + token } },
);
return JSON.parse(res.getContentText()).data[field];
}=P2PDASH("totalBalance") → 12233.5Sheets įsimena rezultatą ir klausia iš naujo tik pasikeitus formulei. Jei nori atnaujinti, pridėk antrą argumentą, pvz., =P2PDASH("totalBalance", A1), ir pakeisk A1. Kiekvienas langelis yra viena užklausa. Kas gali redaguoti lentelę, tas Apps Script gali perskaityti ir raktą, tad nedaryk to lentelėje, kurią redaguoja kiti.
Palūkanos per mėnesį
Laiko eilutė su granularity=month duoda po vieną tašką kiekvienam mėnesiui, kuriame yra duomenų. Biblioteką vieną kartą įdiek komanda pip install requests.
import os
import requests
res = requests.get(
"https://app.p2pdash.com/api/v1/account/timeseries",
params={"granularity": "month", "from": "2026-08-01", "to": "2026-10-31"},
headers={"Authorization": f"Bearer {os.environ['P2PDASH_TOKEN']}"},
)
res.raise_for_status()
for point in res.json()["data"]:
print(point["date"][:7], f"{point['interest']:.2f}")2026-08 94.80
2026-09 96.42
2026-10 98.15XIRR pagal platformą
Išsaugok tai kaip xirr.mjs ir paleisk node xirr.mjs (Node.js 18 ar naujesnė). XIRR pateikiamas trupmena: 0.0984 reiškia 9,84 % per metus. Platforma, kuriai trūksta duomenų, gauna null.
const res = await fetch("https://app.p2pdash.com/api/v1/account/metrics", {
headers: { Authorization: `Bearer ${process.env.P2PDASH_TOKEN}` },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data } = await res.json();
for (const p of data.xirr.platforms) {
const xirr = p.allTimeXirr === null
? "-"
: (p.allTimeXirr * 100).toFixed(2) + "%";
console.log(p.name.padEnd(12), xirr);
}Platform A 9.84%
Platform B 10.37%
Platform C 11.20%
Platform D -Skaičiai mokesčių deklaracijai
Palūkanos ir premijos pagal platformą už vienus metus, sutrumpintos su jq. Kurios iš jų laikomos pajamomis, priklauso nuo tavo šalies taisyklių; API rodo tik tai, kas yra P2P Dash.
curl -s "https://app.p2pdash.com/api/v1/account/tax?year=2025" \
-H "Authorization: Bearer $P2PDASH_TOKEN" \
| jq '.data[] | {name, interest: .years[0].interest, bonus: .years[0].bonus}'{
"name": "Platform A",
"interest": 412.37,
"bonus": 25
}
{
"name": "Platform B",
"interest": 288.9,
"bonus": 0
}Ką gali perskaityti
Visa paskyra, kiekvienas portfelis ir kiekviena platforma atsako į tuos pačius penkis klausimus. Išmok juos kartą ir galėsi užduoti bet kuriame lygyje.
Penki rodiniai
Kiekvienas rodinys yra trijų variantų. Vienai platformai pirmiausia gauk jos ID iš /api/v1/platforms, tada įrašyk jį vietoj {id}. Su portfeliais viskas taip pat.
summaryViso laikotarpio sumos: palūkanos, premijos, komisiniai, nuostoliai, įnašai, išėmimai ir iš jų išeinantys balansai.
- Visa paskyra
- GET /api/v1/account/summary
- Vienas portfelis
- GET /api/v1/portfolios/{id}/summary
- Viena platforma
- GET /api/v1/platforms/{id}/summary
timeseriesTie patys skaičiai laike, pagal dieną, mėnesį ar metus, su balansu kiekvieno laikotarpio pabaigoje. Tinka grafikams.
- Visa paskyra
- GET /api/v1/account/timeseries
- Vienas portfelis
- GET /api/v1/portfolios/{id}/timeseries
- Viena platforma
- GET /api/v1/platforms/{id}/timeseries
metricsXIRR (viso laikotarpio ir kiekvienų metų, su premijomis ir be jų), cash drag, vidutinis investuotas balansas ir kapitalo laisvės indeksas, kiekvienai platformai ir bendrai.
- Visa paskyra
- GET /api/v1/account/metrics
- Vienas portfelis
- GET /api/v1/portfolios/{id}/metrics
- Viena platforma
- GET /api/v1/platforms/{id}/metrics
income-projectionKiek tavo dabartinis balansas uždirbtų per dieną, mėnesį ir metus pagal tavo ankstesnį XIRR be premijų. Tai prognozė, ne pažadas.
- Visa paskyra
- GET /api/v1/account/income-projection
- Vienas portfelis
- GET /api/v1/portfolios/{id}/income-projection
- Viena platforma
- GET /api/v1/platforms/{id}/income-projection
taxPalūkanos, premijos, išskaičiuoti mokesčiai, komisiniai ir nuostoliai pagal platformą ir kalendorinius metus, naujausi metai pirmi.
- Visa paskyra
- GET /api/v1/account/tax
- Vienas portfelis
- GET /api/v1/portfolios/{id}/tax
- Viena platforma
- GET /api/v1/platforms/{id}/tax
Sąrašai ir išsami informacija
- GET /api/v1/account
- Kurį raktą naudoji, kokios jo teisės ir kada jis nustoja galioti. Patogu patikrinti, ar raktas dar veikia.
- GET /api/v1/platforms
- Visos tavo platformos su ID, portfeliais ir sumomis. Pradėk nuo čia, kad sužinotum ID.
- GET /api/v1/platforms/{id}
- Viena platforma, tas pats objektas kaip sąraše.
- GET /api/v1/platforms/{id}/intent-history
- Kada keitei savo planą platformai (didinti, laikyti, pasitraukti ir pan.).
- GET /api/v1/portfolios
- Visi tavo portfeliai su jų platformomis.
- GET /api/v1/portfolios/{id}
- Vienas portfelis.
- GET /api/v1/platform-types
- Faktai apie kiekvieną platformos tipą: šalis, turto klasės, reguliavimas, įkūrimo metai. Visiems naudotojams vienodi.
Užklausos parametrai
from, to- Tik
timeseries. Dienos formatuYYYY-MM-DD, abi imtinai. Sumontharyearjos išsiplečia iki pilnų laikotarpių. Balansai vis tiek skaičiuojami nuo pirmosios tavo duomenų dienos, tad vėlesnisfromjų nenunulina. granularity- Tik
timeseries.day(numatytasis),montharbayear. Taško data yra paskutinė jo laikotarpio diena. Diena ar laikotarpis be duomenų neturi jokio taško, tad nulių nesitikėk. year- Tik
tax. Kalendoriniai metai, pvz.,2025. Platformos be duomenų tais metais praleidžiamos.
Kiekvienas kiekvieno atsakymo laukas aprašytas OpenAPI dokumente. Jį gali nuskaityti tokie įrankiai kaip Postman ar Swagger UI, o kodo generatoriai gali iš jo sukurti klientą.
Atidaryti OpenAPI dokumentąVerta žinoti
Taisyklės, galiojančios kiekvienam galiniam taškui.
Tik skaitymui
API skaito tavo duomenis ir nieko nekeičia. Importai ir nustatymai, kaip ir anksčiau, atliekami programėlėje.
Tiek aktualu, kiek tavo paskutinis importas
P2P Dash nieko neparsisiunčia iš platformų. API grąžina tai, ką importavai ar įvedei ranka, o lastDate parodo paskutinę dieną su duomenimis.
60 užklausų, tada minutės pertrauka
Vienam raktui. Skaičiavimas prasideda iš naujo tik tada, kai raktas visą minutę negauna nė vienos užklausos, todėl ir kas kelias sekundes klausiantis scenarijus pasieks ribą. Tada gausi 429, o Retry-After pasakys, kiek sekundžių palaukti. Sėkminguose atsakymuose X-RateLimit-Remaining rodo, kiek dar liko.
Sumos eurais (EUR)
Pinigų srautai, tokie kaip deposit, withdrawal ar fee, visada teigiami; kryptis aiški iš pavadinimo. Balansai ir netIncome gali nukristi žemiau nulio. XIRR ir cash drag yra trupmenos (0.075 yra 7,5 %), o kapitalo laisvės indeksas yra nuo 0 iki 100.
Datos UTC
Dienos kaip YYYY-MM-DD, laiko momentai kaip ISO 8601. Diena yra ta diena, kuri nurodyta eksporte, laiko juostos jos nepastumia.
Raktai
Iki 10 aktyvių raktų vienai paskyrai, galiojančių „30 dienų“, „90 dienų“, „1 metai“ arba be pabaigos („Niekada“). Raktų puslapyje paspausk „Atšaukti“, ir raktas iškart nustos veikti.
Kai kas nors nepavyksta
Klaidos grįžta JSON formatu su pastoviu error.code. Tikrink kodą, ne pranešimą: pranešimas gali keistis, kodai lieka.
| Būsena | Kodas ir reikšmė |
|---|---|
| 400 | invalid_requestKuris nors parametras neteisingas. |
| 401 | unauthorizedRakto nėra, jis įvestas su klaida, atšauktas arba nebegalioja. |
| 403 | insufficient_scopeRaktas neturi teisės skaityti šios API dalies. |
| 404 | not_foundTokio kelio nėra arba ID nepriklauso nė vienai tavo platformai ar portfeliui. |
| 429 | rate_limited60 užklausų be minutės pertraukos. Palauk tiek sekundžių, kiek nurodo |
| 500 | internal_errorKlaida mūsų pusėje. Bandyk vėliau, o jei kartojasi, parašyk mums. |
Yra dar du 403 kodai, forbidden ir plan_required. Su įprasta paskyra jų nepamatysi.
Pavyzdys: neegzistuojanti data
curl "https://app.p2pdash.com/api/v1/account/timeseries?from=2025-02-30" \
-H "Authorization: Bearer $P2PDASH_TOKEN"{
"error": {
"code": "invalid_request",
"message": "Not a valid calendar date",
"details": [
{
"field": "from",
"message": "Not a valid calendar date"
}
]
}
}Klausimai apie API
Prieš pirmąją užklausą.
Ar API kainuoja?
Ne. Kaip ir programėlė, šiuo metu ji nemokama kiekvienai paskyrai.
Ar galiu importuoti operacijas per API?
Kol kas ne. API tik skaito. Eksportus vis dar įkeli programėlėje.
Ar reikia mokėti programuoti?
Nedaug. Google Sheets pavyzdys yra kopijuok ir įklijuok, o curl užklausa veikia terminale macOS ir Linux sistemose. Kam nors daugiau pravers šiek tiek Python ar JavaScript.
Kas nutiks, jei kas nors gaus mano raktą?
Jis galės perskaityti tavo P2P Dash skaičius, bet nieko negalės pakeisti ir niekada nepamatys tavo el. pašto ar slaptažodžio. Atšauk raktą raktų puslapyje, ir jis iškart nustos veikti.
Ar API keisis?
Taip, gali. Tai pirmoji versija, tad laukai ar galiniai taškai dar gali pasikeisti be naujo versijos numerio. Jei ką nors ant jos kuri, tikėkis, kad kartais teks pataisyti.
Ar galiu gauti kitų naudotojų duomenis?
Ne. Raktas visada skaito tik tos paskyros, kuri jį sukūrė, duomenis. Vienintelė išimtis yra platformų tipų sąrašas, kuriame yra vieši faktai apie platformas.
Sukurk savo pirmąjį raktą
Prisijunk, naudotojo meniu atidaryk „API prieigos raktai“ ir išsiųsk pirmąją užklausą.
Eiti į API prieigos raktusDar neturi paskyros? Užsiregistruok nemokamai ir pirmiausia importuok eksportą, kitaip API neturės ką parodyti.