Skip to content

πŸ“Š Wikifolio (unofficial) API

Notifications You must be signed in to change notification settings

RienNeVaPlus/wikifolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

97 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š Wikifolio API

This is an unofficial Node.js API client for Wikifolio's platform.

⚠️ Wikifolio could change their API at any moment. ⚠️
If anything is broken, please open an issue.

⚠️ On the 7th of april 2021, Wikifolio announced a re-launch of their website, which is likely to (temporarily) break this API. ⚠️

divider

⭐ Features

  • Session management
  • Search wikifolios
  • Fetch wikifolio details / analysis / price
  • Fetch portfolio positions
  • Fetch wikifolio trades
  • Fetch watchlist entries
  • Watch / unwatch wikifolios
  • Fetch users & their wikifolios
  • Trading: place & modify buy & sell orders

divider

🌞 Contributors wanted

divider

πŸ›« Install

# using npm
npm i wikifolio

# using yarn
yarn add wikifolio

divider

πŸ“ Examples

The examples assume the following setup:

import Api from 'wikifolio'

const api = new Api({
  email: '[email protected]',
  password: 'plaintext-password'
})

☝️ Use encrypted environment variables or command line prompts, never store your passwords in plain text.

divider

1. Fetch details of a wikifolio

const wikifolio = api.wikifolio('wfobserver')
console.log( await wikifolio.details() )

divider

2. Fetch wikifolio price

const wikifolio = api.wikifolio('wfobserver')
console.log( await wikifolio.price() )

divider

3. Fetch wikifolio trades

const wikifolio = api.wikifolio('wfobserver')
console.log( await wikifolio.trades({pageSize: 100, page: 1}) )

divider

4. Fetch wikifolio index history (chart)

const wikifolio = api.wikifolio('wfobserver')
console.log( await wikifolio.history() )

divider

5. Fetch portfolio items of a wikifolio

const wikifolio = api.wikifolio('wfobserver')
console.log( await wikifolio.portfolio() )

divider

6. Search wikifolios

const wikifolios = await api.search({query: 'Supervisor'})
console.log( wikifolios )

divider

7. Unwatch all wikifolios on the watchlist

const watchlist = await api.watchlist()
for(const wikifolio of watchlist){
    await wikifolio.watchlist(false)
}

divider

8. Get trader info

const user = api.user('riennevaplus')
console.log( await user.details() )

divider

9. Get wikifolios of a trader

const user = api.user('riennevaplus')
console.log( await user.wikifolios() )

divider

10. Place a limit order

There's a similar sell() method.

const wikifolio = api.wikifolio('wfobserver')
const order = await wikifolio.buy({
    amount: 1,
    limitPrice: 220,
    orderType: "limit",
    underlyingIsin: "DE000LS9NMQ9",
    expiresAt: "2020-07-29T00:00:00.000Z"
})

Note: When orderType is set to quote the first returned quote will be accepted.

divider

11. Update an order

const wikifolio = api.wikifolio('wfobserver')
const order = wikifolio.order('8b4da005-6750-4b4c-9dff-0364d3e07be0')
console.log( await order.submit({limitPrice: 100}) )

divider

12. List & remove wikifolio orders

const wikifolio = api.wikifolio('wfobserver')
const orders = await wikifolio.orders({pageSize: 25, page: 0})

for(const order of orders){
    console.log( await order.remove() )
}

divider

πŸ‘· Todos

  • Improve documentation
  • Implement wikifolio sustainability

divider

🌻 Contributors