
Research
/Security News
DuckDB npm Account Compromised in Continuing Supply Chain Attack
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
avanza-mobile-client
Advanced tools
Avanza Mobile Client
npm install avanza-mobile-client --save
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
No real documentation is currently available, only some examples of how to use the module.
function login() {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
var credentials = {username: process.env.AVANZA_USERNAME, password:process.env.AVANZA_PASSWORD};
avanza.login(credentials).then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"authenticationSession": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"customerId": "123456",
"username": "user123",
"securityToken": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"pushSubscriptionId": "XXXXXXXXXXXXXXXXXXXXXXXXX"
}
*/
})
.catch(function(error) {
console.log(error);
});
}
function loginWithBankID() {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login({ssid:'XXXXXX-XXXX'}).then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"authenticationSession": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"customerId": "123456",
"username": "user123",
"securityToken": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"pushSubscriptionId": "XXXXXXXXXXXXXXXXXXXXXXXXX"
}
*/
})
.catch(function(error) {
console.log(error);
});
}
function getOverview() {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
// If login() is called without parameters,
// process.env.AVANZA_USERNAME and process.env.AVANZA_PASSWORD
// are used as credentials...
avanza.login().then(function() {
return avanza.get('/_mobile/account/overview');
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"accounts": [
{
"accountType": "AktieFondkonto",
"interestRate": 0,
"depositable": true,
"active": true,
"performancePercent": 12345.67,
"totalProfit": 12345.67,
"attorney": false,
"accountId": "12345",
"tradable": true,
"totalBalance": 12345.67,
"accountPartlyOwned": false,
"totalBalanceDue": 0,
"ownCapital": 12345.67,
"buyingPower": 12345.67,
"totalProfitPercent": 12345.67,
"performance": 12345.67,
"name": "Depå"
}
],
"numberOfOrders": 0,
"numberOfDeals": 0,
"totalBuyingPower": 12345.67,
"totalOwnCapital": 12345.67,
"totalPerformancePercent": 12.34,
"totalPerformance": 12345.67,
"numberOfTransfers": 0,
"numberOfIntradayTransfers": 0,
"totalBalance": 12345.67
}
*/
})
.catch(function(error) {
console.log(error);
});
}
function subscribe(id = '5364' /* Hennes & Mauritz */) {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.socket.open();
})
.then(function() {
avanza.socket.subscribe('quotes', id);
avanza.socket.on('quotes', function(data) {
console.log('data:', JSON.stringify(data, null, ' '));
/*
data: {
"orderbookId": "5364",
"buyPrice": 210.6,
"sellPrice": 210.7,
"spread": 0.05,
"closingPrice": 211.8,
"highestPrice": 211,
"lowestPrice": 209.4,
"lastPrice": 210.6,
"change": -1.2,
"changePercent": -0.57,
"lastUpdated": 1503041571000,
"volumeWeightedAveragePrice": 210.14,
"totalVolumeTraded": 548045,
"totalValueTraded": 115163497.9,
"changePercentNumber": -0.57,
"scale": null,
"updated": 1503041571000,
"updatedDisplay": "09:32"
}
*/
});
return new Promise(function(resolve, reject) {
setTimeout(resolve, 60000);
});
})
.then(function() {
avanza.socket.close();
})
.catch(function(error) {
console.log(error);
});
}
function getAccounts() {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.get({
path: '/_mobile/account/list',
query: {onlyTradable:false}
});
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: [
{
"totalBalance": 12345.67,
"ownCapital": 12345.67,
"buyingPower": 12345.67,
"name": "Depå",
"id": "1234567",
"type": "AktieFondkonto"
}
]
*/
})
.catch(function(error) {
console.log(error);
});
}
function search(text = 'Mauritz') {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.get({
path: '/_mobile/market/search',
query: {limit:10, query:text}
});
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"totalNumberOfHits": 1,
"hits": [
{
"instrumentType": "STOCK",
"numberOfHits": 1,
"topHits": [
{
"currency": "SEK",
"lastPrice": 211.8,
"changePercent": -1.3,
"flagCode": "SE",
"tradable": true,
"tickerSymbol": "HM B",
"name": "Hennes & Mauritz B",
"id": "5364"
}
]
}
]
}
*/
})
.catch(function(error) {
console.log(error);
});
}
function getWatchLists() {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.get('/_mobile/usercontent/watchlist');
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: [
{
"orderbooks": [
"455636"
],
"editable": true,
"name": "Aktier",
"id": "XXXXXX"
},
{
"orderbooks": [
"1933",
"157699"
],
"editable": true,
"name": "Fonder",
"id": "XXXXXX"
},
{
"orderbooks": [
"19002",
"18984",
"18997",
"155541"
],
"editable": true,
"name": "Index",
"id": "XXXXXX"
},
{
"orderbooks": [
"18998",
"19000"
],
"editable": true,
"name": "Valutor",
"id": "XXXXXX"
}
]
*/
})
.catch(function(error) {
console.log(error);
});
}
function getMarketIndex(id = '19002') {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.get({
path: '/_mobile/market/index/:id',
params: {id:id}
});
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"priceThreeMonthsAgo": 1628.37,
"priceOneWeekAgo": 1554.75,
"priceOneMonthAgo": 1639.33,
"priceSixMonthsAgo": 1570.59,
"priceAtStartOfYear": 1517.2,
"priceOneYearAgo": 1392.05,
"priceThreeYearsAgo": 1352.98,
"priceFiveYearsAgo": 1091.46,
"numberOfPriceAlerts": 0,
"pushPermitted": true,
"currency": "SEK",
"description": "Index över de trettio mest omsatta aktierna på Stockholmsbörsen.",
"flagCode": "SE",
"quoteUpdated": "2017-08-17T17:30:11.349+0200",
"title": "OMX Stockholm 30 - Stockholmsbörsen",
"highestPrice": 1552.5,
"lowestPrice": 1538.72,
"lastPrice": 1540.09,
"lastPriceUpdated": "2017-08-17T17:30:11.349+0200",
"change": -12.07,
"changePercent": -0.78,
"name": "OMX Stockholm 30",
"id": "19002"
}
*/
})
.catch(function(error) {
console.log(error);
});
}
function getOrder(accountId = 'your-account-id', orderbookId = '5364') {
var Avanza = require('avanza-mobile-client');
var avanza = new Avanza();
avanza.login().then(function() {
return avanza.get({
path: '/_mobile/order',
query: {accountId:accountId, orderbookId:orderbookId}
});
})
.then(function(reply) {
console.log('reply:', JSON.stringify(reply, null, ' '));
/*
reply: {
"customer": {
"showCourtageClassInfoOnOrderPage": false,
"courtageClass": "XXXX"
},
"account": {
"type": "AktieFondkonto",
"totalBalance": 12345.67,
"buyingPower": 12345.67,
"name": "Depå",
"id": "1234567"
},
"orderbook": {
"lastPrice": 211.8,
"lastPriceUpdated": "2017-08-17T17:29:32.000+0200",
"change": -2.8,
"changePercent": -1.3,
"totalVolumeTraded": 3551786,
"totalValueTraded": 754374744.9,
"exchangeRate": 1,
"currency": "SEK",
"positionVolume": 0,
"flagCode": "SE",
"tradable": true,
"tickerSymbol": "HM B",
"tradingUnit": 1,
"volumeFactor": 1,
"name": "Hennes & Mauritz B",
"id": "5364",
"type": "STOCK"
},
"firstTradableDate": "2017-08-18",
"lastTradableDate": "2017-11-15",
"untradableDates": [],
"orderDepthLevels": [],
"orderDepthReceivedTime": "2017-08-17T17:29:32.395+0200",
"latestTrades": [
{
"cancelled": false,
"buyer": "AVA",
"matchedOnMarket": true,
"price": 211.8,
"volume": 500,
"dealTime": "2017-08-17T17:29:32.000+0200"
},
{
"cancelled": false,
"buyer": "AVA",
"matchedOnMarket": true,
"price": 211.8,
"volume": 200,
"dealTime": "2017-08-17T17:29:32.000+0200"
},
{
"cancelled": false,
"buyer": "NON",
"seller": "SWB",
"matchedOnMarket": true,
"price": 211.8,
"volume": 173,
"dealTime": "2017-08-17T17:24:45.000+0200"
}
],
"marketTrades": true,
"hasShortSellKnowledge": true,
"hasInstrumentKnowledge": true,
"tickSizeRules": [
{
"minPrice": 0,
"maxPrice": 0.4999,
"tickSize": 0.0001
},
{
"minPrice": 0.5,
"maxPrice": 0.9995,
"tickSize": 0.0005
}
]
}
*/
})
.catch(function(error) {
console.log(error);
});
}
FAQs
Avanza Mobile Client
We found that avanza-mobile-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.