Friday, August 14, 2015

How to use the Eve Online API

Eve
In [1]:
#pip install eveapi
import eveapi
In [2]:
#These are account / character specific.  You need to activate an API with
#the relevant permissions for this to work.  
YOUR_KEYID = 4598442
YOUR_VCODE = "RsMTXAayByfitNWtOiOGdwRhSoJnd55f1CeURpUMZIwYgr8JZGkslqmxzrBXeHsi"
charID = '799404375'
In [3]:
api = eveapi.EVEAPIConnection()
cachedApi = eveapi.EVEAPIConnection()
me = cachedApi.auth(keyID=YOUR_KEYID, vCode=YOUR_VCODE).character(charID)
wallet = me.WalletTransactions()
walletTx = wallet.transactions
contracts = me.contracts()
contractTx = contracts.contractList
In [4]:
#List most recent transactions
for i in walletTx[:10]:
    print ' - '.join([i.transactionType, i.typeName, str(i.quantity), str(i.price), i.stationName])
sell - Victorieux Luxury Yacht - 1 - 90000000.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
sell - Paladin - 1 - 950000000.0 - Amarr VIII (Oris) - Emperor Family Academy
sell - Liquid Ozone - 943000 - 468.95 - Amarr VIII (Oris) - Emperor Family Academy
sell - Liquid Ozone - 56000 - 485.0 - Amarr VIII (Oris) - Emperor Family Academy
sell - Liquid Ozone - 1000 - 485.0 - Amarr VIII (Oris) - Emperor Family Academy
buy - Executioner - 1 - 349997.94 - Amarr VIII (Oris) - Emperor Family Academy
buy - Inherent Implants 'Noble' Hull Upgrades HG-1006 - 1 - 400107042.77 - Amarr VIII (Oris) - Emperor Family Academy
sell - Paladin - 1 - 955729005.74 - Amarr VIII (Oris) - Emperor Family Academy
sell - Paladin - 1 - 955729008.0 - Amarr VIII (Oris) - Emperor Family Academy
sell - Helium Isotopes - 2748 - 704.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
In [5]:
def profits(item):
    print item
    cost, proceeds, quantity, taxes = 0,0,0,0
    for i in walletTx:
        if i.typeName == item:
            if i.transactionType == 'buy':
                quantity = quantity + i.quantity
                cost = cost + i.quantity * i.price
            if i.transactionType =='sell':
                proceeds = proceeds + i.quantity * i.price
                quantity = quantity - i.quantity
                taxes  = taxes + i.quantity * i.price * 0.009 #this was my net transaction rate.
            print ' - '.join([i.transactionType, i.typeName, str(i.quantity), str(i.price), i.stationName])
    print "Proceeds = {:,}".format(proceeds)
    print "Cost = {:,}".format(cost)
    print "Taxes = {:,}".format(taxes)
    print "Profit = {:,}".format(proceeds-cost-taxes)
    print "Remaining Quantity = {:,}".format(quantity) 
    print 

#Change items you want to get profits for here.
items = ['Liquid Ozone', 'Paladin']
for item in items:
    profits(item)
Liquid Ozone
sell - Liquid Ozone - 943000 - 468.95 - Amarr VIII (Oris) - Emperor Family Academy
sell - Liquid Ozone - 56000 - 485.0 - Amarr VIII (Oris) - Emperor Family Academy
sell - Liquid Ozone - 1000 - 485.0 - Amarr VIII (Oris) - Emperor Family Academy
buy - Liquid Ozone - 328502 - 455.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Liquid Ozone - 671498 - 455.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
Proceeds = 469,864,850.0
Cost = 455,000,000.0
Taxes = 4,228,783.65
Profit = 10,636,066.35
Remaining Quantity = 0

Paladin
sell - Paladin - 1 - 950000000.0 - Amarr VIII (Oris) - Emperor Family Academy
sell - Paladin - 1 - 955729005.74 - Amarr VIII (Oris) - Emperor Family Academy
sell - Paladin - 1 - 955729008.0 - Amarr VIII (Oris) - Emperor Family Academy
buy - Paladin - 1 - 944044443.19 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044443.18 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044141.07 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044444.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044444.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044444.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044344.0 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 944044343.2 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
buy - Paladin - 1 - 969999999.37 - Jita IV - Moon 4 - Caldari Navy Assembly Plant
Proceeds = 2,861,458,013.74
Cost = 8,522,355,046.01
Taxes = 25,753,122.1237
Profit = -5,686,650,154.39
Remaining Quantity = 6

In [6]:
#List outstanding contracts
for i, v in enumerate(contractTx,1):
    if v.status =='Outstanding':
        print i, v.status, v.type, v.title, v.reward, v.price
1 Outstanding ItemExchange Fully Equipped Apocalypse 0.0 250000000.0
2 Outstanding ItemExchange Fully Equipped Curse 0.0 200000000.0
3 Outstanding ItemExchange Fully Equipped Apocalypse 0.0 250000000.0
4 Outstanding ItemExchange Fitted and Rigged Pilgrim 0.0 220000000.0
5 Outstanding ItemExchange  0.0 2400000000.0
6 Outstanding Courier  5000000.0 0.0
7 Outstanding Courier  10000000.0 0.0
8 Outstanding Courier  30000000.0 0.0
9 Outstanding Courier  4000000.0 0.0
10 Outstanding Courier  1000000.0 0.0
11 Outstanding Courier  1000000.0 0.0
12 Outstanding Courier  1000000.0 0.0
13 Outstanding Courier  1000000.0 0.0
14 Outstanding ItemExchange  0.0 270000000.0
In [7]:
#List completed contracts
for i, v in enumerate(sorted(contractTx, key=lambda v:v.dateCompleted, reverse=True),1):
    if v.status =='Completed':
        print i, v.dateCompleted, v.status, v.type, v.title, v.reward, v.price
25 1439525988 Completed ItemExchange  0.0 270000000.0
26 1439523069 Completed Courier  1000000.0 0.0
27 1439516725 Completed ItemExchange  0.0 80000000.0
28 1439509974 Completed Courier  500000.0 0.0
29 1439504165 Completed ItemExchange  0.0 60000000.0
30 1439471058 Completed ItemExchange  0.0 180000000.0
31 1439451798 Completed ItemExchange  0.0 175000000.0
32 1439428547 Completed Courier  1000000.0 0.0
33 1439421678 Completed Courier  3000000.0 0.0
34 1439405586 Completed Courier  15000000.0 0.0
35 1439359547 Completed Courier  1000000.0 0.0
37 1439329796 Completed ItemExchange  0.0 1250000000.0
38 1439319463 Completed ItemExchange  0.0 75000000.0
39 1439319454 Completed ItemExchange  0.0 74000000.0
40 1439319444 Completed ItemExchange  0.0 73000000.0
41 1439319431 Completed ItemExchange  0.0 72000000.0
42 1439275570 Completed Auction  0.0 70999999.0
43 1439275561 Completed Auction  0.0 40000000.0
44 1439275550 Completed Auction  0.0 10000000.0
45 1439273178 Completed ItemExchange  0.0 68000000.0
46 1439272709 Completed ItemExchange  0.0 70000000.0
47 1439272175 Completed ItemExchange  0.0 75000000.0
48 1439272163 Completed ItemExchange  0.0 75000000.0
49 1439272155 Completed ItemExchange  0.0 74000000.0
50 1438805665 Completed ItemExchange Fitted Apocolypse 0.0 250000000.0