{"id":24998025,"url":"https://github.com/riennevaplus/wikifolio","last_synced_at":"2025-04-12T06:24:36.255Z","repository":{"id":38362488,"uuid":"275060801","full_name":"RienNeVaPlus/wikifolio","owner":"RienNeVaPlus","description":"📊 Wikifolio (unofficial) API","archived":false,"fork":false,"pushed_at":"2023-02-04T02:00:18.000Z","size":148,"stargazers_count":18,"open_issues_count":8,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-26T01:51:07.310Z","etag":null,"topics":["api-client","nodejs","stock-market","typescript","wikifolio","wikifolio-api","wikifolio-certificates"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RienNeVaPlus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-26T02:53:12.000Z","updated_at":"2023-06-16T08:01:45.000Z","dependencies_parsed_at":"2022-08-25T01:40:18.498Z","dependency_job_id":null,"html_url":"https://github.com/RienNeVaPlus/wikifolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RienNeVaPlus%2Fwikifolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RienNeVaPlus%2Fwikifolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RienNeVaPlus%2Fwikifolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RienNeVaPlus%2Fwikifolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RienNeVaPlus","download_url":"https://codeload.github.com/RienNeVaPlus/wikifolio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248526358,"owners_count":21118872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","nodejs","stock-market","typescript","wikifolio","wikifolio-api","wikifolio-certificates"],"created_at":"2025-02-04T17:38:24.288Z","updated_at":"2025-04-12T06:24:36.232Z","avatar_url":"https://github.com/RienNeVaPlus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  📊 Wikifolio API\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/RienNeVaPlus/wikifolio/commits/master\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/riennevaplus/wikifolio.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/RienNeVaPlus/wikifolio/blob/master/package.json\"\u003e\u003cimg src=\"https://img.shields.io/github/package-json/v/riennevaplus/wikifolio.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/wikifolio\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/wikifolio.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/RienNeVaPlus/wikifolio/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/wikifolio.svg\" /\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/github/repo-size/RienNeVaPlus/wikifolio.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nThis is an \u003cstrong\u003eunofficial\u003c/strong\u003e Node.js API client for \u003ca href=\"https://www.wikifolio.com\"\u003eWikifolio's platform\u003c/a\u003e.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003csub\u003e\n        ⚠️ \u003cstrong\u003eWikifolio could change their API at any moment.\u003c/strong\u003e ⚠️\n        \u003cbr/\u003e\n        If anything is broken, please \u003ca href=\"https://github.com/RienNeVaPlus/wikifolio/issues/new/choose\"\u003eopen an issue\u003c/a\u003e.\n     \u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003csub\u003e\n        \u003ca href=\"https://github.com/RienNeVaPlus/wikifolio/issues/15\"\u003e⚠️ On the 7th of april 2021, Wikifolio announced a re-launch of their website, which is likely to (temporarily) break this API. ⚠️\u003c/a\u003e\n     \u003c/sub\u003e\n\u003c/p\u003e\n\n![divider](./assets/divider.png)\n\n### ⭐ Features\n- **Session management**\n- **Search wikifolios**\n- Fetch wikifolio **details** / **analysis** / **price**\n- Fetch **portfolio positions**\n- Fetch wikifolio **trades**\n- Fetch **watchlist entries**\n- **Watch** / **unwatch** wikifolios\n- Fetch **users** \u0026 their **wikifolios**\n- **Trading**: place \u0026 modify **buy** \u0026 **sell orders**\n\n![divider](./assets/divider.small.png)\n\n🌞 **Contributors wanted**\n\n![divider](./assets/divider.png)\n\n### 🛫 Install\n\n```bash\n# using npm\nnpm i wikifolio\n\n# using yarn\nyarn add wikifolio\n```\n\n![divider](./assets/divider.png)\n\n### 📝 Examples\n\nThe examples assume the following setup:\n\n```ts\nimport Api from 'wikifolio'\n\nconst api = new Api({\n  email: 'email@example.org',\n  password: 'plaintext-password'\n})\n```\n\n\u003csub\u003e☝️ Use encrypted environment variables or command line [prompts](https://github.com/terkelg/prompts), **never store your passwords in plain text**.\u003c/sub\u003e\n\n![divider](./assets/divider.small.png)\n\n#### 1. Fetch details of a wikifolio\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconsole.log( await wikifolio.details() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 2. Fetch wikifolio price\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconsole.log( await wikifolio.price() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 3. Fetch wikifolio trades\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconsole.log( await wikifolio.trades({pageSize: 100, page: 1}) )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 4. Fetch wikifolio index history (chart)\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconsole.log( await wikifolio.history() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 5. Fetch portfolio items of a wikifolio\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconsole.log( await wikifolio.portfolio() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 6. Search wikifolios\n\n```ts\nconst wikifolios = await api.search({query: 'Supervisor'})\nconsole.log( wikifolios )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 7. Unwatch all wikifolios on the watchlist\n\n```ts\nconst watchlist = await api.watchlist()\nfor(const wikifolio of watchlist){\n    await wikifolio.watchlist(false)\n}\n```\n\n![divider](./assets/divider.small.png)\n\n#### 8. Get trader info\n\n```ts\nconst user = api.user('riennevaplus')\nconsole.log( await user.details() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 9. Get wikifolios of a trader\n\n```ts\nconst user = api.user('riennevaplus')\nconsole.log( await user.wikifolios() )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 10. Place a limit order\n\nThere's a similar `sell()` method.\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconst order = await wikifolio.buy({\n    amount: 1,\n    limitPrice: 220,\n    orderType: \"limit\",\n    underlyingIsin: \"DE000LS9NMQ9\",\n    expiresAt: \"2020-07-29T00:00:00.000Z\"\n})\n```\nNote: When `orderType` is set to `quote` the first returned quote will be accepted.\n\n![divider](./assets/divider.small.png)\n\n#### 11. Update an order\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconst order = wikifolio.order('8b4da005-6750-4b4c-9dff-0364d3e07be0')\nconsole.log( await order.submit({limitPrice: 100}) )\n```\n\n![divider](./assets/divider.small.png)\n\n#### 12. List \u0026 remove wikifolio orders\n\n```ts\nconst wikifolio = api.wikifolio('wfobserver')\nconst orders = await wikifolio.orders({pageSize: 25, page: 0})\n\nfor(const order of orders){\n    console.log( await order.remove() )\n}\n```\n\n![divider](./assets/divider.png)\n\n### 👷 Todos\n- Improve documentation\n- Implement wikifolio sustainability\n\n![divider](./assets/divider.png)\n\n### 🌻 Contributors\n* [RienNeVaPlus](https://github.com/riennevaplus)\n* [jekru](https://github.com/jekru)\n* You?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friennevaplus%2Fwikifolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friennevaplus%2Fwikifolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friennevaplus%2Fwikifolio/lists"}