These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

EVE API and Public CREST discussion

First post First post First post
Author
Quesa
Caldari Provisions
Caldari State
#741 - 2015-05-23 22:49:21 UTC  |  Edited by: Quesa
The CREST endpoint:
http://public-crest.eveonline.com/market/prices
Is that a universe wide average or is it for a specific region/station?

Wiki states:

Quote:
Returns the list of trade-able types and their average market price, as shown in the inventory UI in the EVE client. Also includes an adjusted market price which is used in industry calculations.


I'm assuming this means it's the same price as what we get when we hover over items in our hanger but where and how this data is calculated isn't clear to me.
Kali Izia
GoomWaffe
#742 - 2015-05-24 04:56:46 UTC
Quesa wrote:
The CREST endpoint:
http://public-crest.eveonline.com/market/prices
Is that a universe wide average or is it for a specific region/station?

Wiki states:

Quote:
Returns the list of trade-able types and their average market price, as shown in the inventory UI in the EVE client. Also includes an adjusted market price which is used in industry calculations.


I'm assuming this means it's the same price as what we get when we hover over items in our hanger but where and how this data is calculated isn't clear to me.

It's universe wide. If I recall correctly it's a 90 day moving average that gets updated every week or two.
Mithlug Ibruin
Native Freshfood
Minmatar Republic
#743 - 2015-05-26 17:26:55 UTC
Can I pull prices from contract with this? Not my own but everyone elses. To get an understanding of the price situation for only contracts and not regional market like eve-central.
Jack Tronic
borkedLabs
#744 - 2015-05-30 05:05:18 UTC  |  Edited by: Jack Tronic
Jack Tronic wrote:
Verite Rendition wrote:
Hey FoxFour, did you guys make a change to the API servers on the 20th, around 14:00?

Wollari ended up having to tweak DOTLAN after he started getting SSL3_GET_RECORD:wrong version number errors. Not really a huge deal, but just checking in since nothing was announced.


Speaking of SSL issues.

FoxFour, any reason why the api server only supports TLS 1.0 and nothing newer?

https://www.ssllabs.com/ssltest/analyze.html?d=api.eveonline.com

Though that seems to be something all the eveonline.com domains do.
https://www.ssllabs.com/ssltest/analyze.html?d=eveonline.com&s=87.237.39.180&latest

There's also the fact all the browsers are marking CCP's certificate as deprecated due to using SHA1 but that's not an API issue ;)


Looks like someone at CCP finally fixed the SSL configurations and certificates. Though someone forgot to reconfigure the EVE Gate server with the new certificate.
IHaveTenFingers
Lethal Dosage.
Violent Society
#745 - 2015-06-15 08:02:45 UTC
When querying /corp/Killlog.xml.aspx , The server returns status 000 when the kill log is exhausted. While this doesn't strictly break anything, it's a bit misleading and does not conform to RFC7231 (HTTP/1.1 Semantics and Content).

My recommendation is to use a 4xx error code. None of the pre-defined codes seem to fit, but the extensible nature of HTTP/1.1 allows a custom code to be used.

Apologies in advance if this is a duplicate. I searched around for this but couldn't find any prior discussion.
Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#746 - 2015-06-15 11:40:51 UTC
IHaveTenFingers wrote:
When querying /corp/Killlog.xml.aspx , The server returns status 000 when the kill log is exhausted. While this doesn't strictly break anything, it's a bit misleading and does not conform to RFC7231 (HTTP/1.1 Semantics and Content).

My recommendation is to use a 4xx error code. None of the pre-defined codes seem to fit, but the extensible nature of HTTP/1.1 allows a custom code to be used.

Apologies in advance if this is a duplicate. I searched around for this but couldn't find any prior discussion.



I'd suggest using KillMails, rather than killlog. it doesn't exhaust.

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Enrique d'Ancourt
The Scope
Gallente Federation
#747 - 2015-06-18 12:01:28 UTC
Xatinni wrote:
Are the PI endpoints updating correctly, have queried char/PlanetaryPins for a particular Char/Planet a few times over the last 24 hrs and Storage facility/Launch pad storage content are not being reflected/updated correctly

e.g. just viewed in-game and ran query
Lava Storage Facility currently shows in-game
Heavy Metals 32242units
Non-CS Crystals 28847units

but API call for the same Planet only contains a single Lava Storage Facility Pin entry with no content

pinID="1017983213366" typeID="2558" typeName="Lava Storage Facility" schematicID="0" lastLaunchTime="0001-01-01 00:00:00" cycleTime="0" quantityPerCycle="0" installTime="0001-01-01 00:00:00" expiryTime="0001-01-01 00:00:00" contentTypeID="0" contentTypeName="" contentQuantity="0" longitude="-5.35745290249" latitude="0.804586255394"

and
Same Planet - Launchpad in-game
Consumer Electronics 2030Units, but API shows 1405Units

pinID="1017983213367" typeID="2555" typeName="Lava Launchpad" schematicID="0" lastLaunchTime="0001-01-01 00:00:00" cycleTime="0" quantityPerCycle="0" installTime="0001-01-01 00:00:00" expiryTime="0001-01-01 00:00:00" contentTypeID="9836" contentTypeName="Consumer Electronics" contentQuantity="1405" longitude="-5.35231085139" latitude="0.781565901368"

Have screenshots and saved API queries results if a support ticket is required

Have doubled checked CharacterID and planetID to ensure Im comparing Visual in-game and API call correctly


Hi,
After reading all of this thread (please ISDs, cut out the non-topic whining of the wormhole pvp please!), I can tell you that PI only updates when you press "submit" in-game in the planet view. Luckily the method for calculating resources gained by extractors are also in this pastebin note:

PasteBin Calculation

And in this thread:

Industry calculations

CCP FoxFour does an awsome job. Sadly, the gems in this thread are hidden by a sheer volume of similar posts, many of which are due to the sparse documentation available ( that's a big fat HINT!)
Sentenced 1989
#748 - 2015-07-08 14:38:27 UTC  |  Edited by: Sentenced 1989
Edit:

Nevermind, since 2-3 days ago you can't use HTTP anymore, so changed public-crest link to HTTPS and now it's working.
Pic'n dor
Sebiestor Tribe
Minmatar Republic
#749 - 2015-07-29 23:59:10 UTC
o/
I don't know what is api server load these time but can a cache time reduction be done ?
Some queries like asset got really long cache and some of us would benefit from more up to date data in our tools.
A length related to average player session duration would be much more convenient than 6 hours or more.

This was already posted in page 1but i did'nt find any answer to that particular subject.

Thx

Pic

COUCOU TOUCHE TOUCHE

Dragonaire
Here there be Dragons
#750 - 2015-08-01 15:03:03 UTC
Pic'n dor - AssetList use to be like 24 hours so as CCP feels they can they reduce the cache times they use but they have to balance the API cache time against causing excess load to the DB servers that would effect game play. As they continue to offload more of the basically static data from DB tables into the YAML files you see in the SDE etc it should be possible for more of the times to come down as least I'm hope so Smile

Finds camping stations from the inside much easier. Designer of Yapeal for the Eve API. Check out the Yapeal PHP API Library thread.

Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#751 - 2015-08-01 18:10:46 UTC
A little explanation on cache timers, which might not be obvious:

The XML api interacts directly with the database behind Tranquillity.

However, this database isn't entirely up to data. The real source of truth is the nodes which run the solar systems. These, periodically, flush data back down to the database. This is a performance thing.

So you won't be able to reduce the cache timers below a certain point, as you won't pick up every change anyway.

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Llujoa
Hobgoblin Industries
#752 - 2015-09-04 12:22:36 UTC
So I want to write a little tool to keep track of storyline missions.
My knowledge of the api is still quite limited but it seems to me the current api does not support the needed functionality.
I think all I need would be the standings transaction log for all the agents and search my way from there.

I saw in another thread that at least one other person would love to get standings transaction logs.

I know that nowadays standing is not worth much, but there are still people that care. (me)
Any chance to get this done?
A missions log would be even better but to my knowledge this is not even accessible with the eve client.
Ydnari
Estrale Frontiers
#753 - 2015-09-04 16:04:13 UTC
Can you infer it from the wallet journal, agent mission reward reftype? From that you can get the agent, look up its faction and keep track from there. Also you can distinguish between normal and storyline agents so you can see where to start the 16 count from.

Doesn't cover everything though but can track how many missions and how many to go until a storyline.

--

Quesa
Caldari Provisions
Caldari State
#754 - 2015-09-05 22:50:19 UTC  |  Edited by: Quesa
Just checkin in here, any news on progress?


AND while I'm here. I have found that the CorporationSheet.xml does not contain when the corp joined its current alliance. The only place I have found this info is in the CharacterInfo.xml endpoint. This is a bit confusing to me and I hope it's an oversight and seems like it would increase the joins in a DB - although that assumes the join date would be on a corporations table.

One small improvement I would like to see on any sheet providing corporation or alliance name is the ticker for those entities. The corp/alli names are found in many places but not the ticker meaning that anyone that needs info on a character and its affiliations needs to not only call the CharacterInfo/CharacterAffiliation but the CorporationSheet AND the AlliancesList (which is rather large).
Cor'len
Doomheim
#755 - 2015-09-07 18:39:30 UTC  |  Edited by: Cor'len
Enrique d'Ancourt wrote:

Hi,
After reading all of this thread (please ISDs, cut out the non-topic whining of the wormhole pvp please!), I can tell you that PI only updates when you press "submit" in-game in the planet view. Luckily the method for calculating resources gained by extractors are also in this pastebin note:

PasteBin Calculation

And in this thread:

Industry calculations

CCP FoxFour does an awsome job. Sadly, the gems in this thread are hidden by a sheer volume of similar posts, many of which are due to the sparse documentation available ( that's a big fat HINT!)


Totally late, but please use the code in the Industry Calculations wiki link. They're more correct - the pastebin code has a rounding issue.

Source: I wrote both sets of code, as it happens.

(Edit: Also, if you have questions about PI math in general, shoot me an evemail and I'll help you out.)
Quesa
Caldari Provisions
Caldari State
#756 - 2015-09-11 19:23:04 UTC  |  Edited by: Quesa
I just notice that if I attempt to query a CorporationSheet with a bad ID, I get back an HTTP Status Code 500, which is supposed to denote an internal server error.

However, there is a response sent back for:
https://api.eveonline.com/corp/CorporationSheet.xml.aspx?corporationID=0

which is:
http://i.imgur.com/SYsWXhq.png

My understanding of this HTTP Status Code 500 means that there was an actual server software or hardware malfunction. W3.org definition of 500: "The server encountered an unexpected condition which prevented it from fulfilling the request."

If the resource isn't found then wouldn't it be more appropriate to return a 404?
Cor'len
Doomheim
#757 - 2015-09-23 11:41:03 UTC
Was poking the AssetList API and noticed that only laser POS turrets list their contents? Projectile and hybrid turrets don't, at least.

Should I file a bug report? ISTR this was mentioned before, but a quick google didn't get me any results.
GODS H4ND
Imperial Shipment
Amarr Empire
#758 - 2015-09-24 21:43:15 UTC  |  Edited by: GODS H4ND
CCP FoxFour wrote:
So work on the blueprints endpoint finally progressed today so a quick update:

I hope to have it on Sisi next week and TQ the week after, no promises though.

The cache time on it will be 24 hours.

Here is a sample row:

row itemID="1000000012172" locationID="60014929" typeID="23058" typeName="Dragonfly Blueprint" flagID="4" quantity="32" timeEfficiency="0" materialEfficiency="0" runs="-1"

locationID is the actual item location, in this case a Polaris station. The flagID is then where in that item it is. So 4 is my personal hanger. If it was owned by a corp then flagID would be the hanger division. Similarly if it's located in a POS structure that will be the hanger division.

So determining a blueprints location is a combination of the ownerID (which you should know based on your request), the locationID, and the flagID.

The endpoint will require CEO or directorship as there is no easy way for me to filter the results based on your characters roles.

I do want to mention that there is the possibility we will pull this endpoint and not release it if performance is really ****, but we will see.

The maximum results returned will be 200k which is far better than the 30k max of the client industry window.

The endpoint is restricted to the asset list access mask.

Thats all for now.



What happened with this?

How can I pull a list of all my prints with me/pe?

Anyone guide me on a simple method?



Ah got it, now how do I get this data in google docs?
Zarek RedHill
Deep Core Mining Inc.
Caldari State
#759 - 2015-09-25 18:27:54 UTC
Idea: Ability to query publicly available contracts, the programmatic equivalent of the in-game Contracts-->Available Contracts tab.

For buy/sell contracts:
- inputs: textual search, Location, Contract Type, Item Category, option to exclude multiple-item contracts, option for "exact match", optional min/max prices, Security Filters (H/L/N), optional issuer filter, Availability (public/alliance/corp)
- output: pretty much the same as the char/Contracts format for buy/sell contracts

For Courier contracts:
- inputs: Pickup and Drop-off Location (Station/System/Region/All), Reward min/max, Collateral min/max, Security Filters (H/L/N), optional issuer filter, Availability (public/alliance/corp)
- output: pretty much the same as the char/Contracts format for courier contracts

Regards,
-Z
Quesa
Caldari Provisions
Caldari State
#760 - 2015-10-10 10:15:50 UTC  |  Edited by: Quesa
On the topic of cacheing the paged, static data responses, I'm not sure why you cannot cache each type and then combine multiple cached items into one response. For instance, tables like solar systems, regions, and types are static for each db version which only changes during patches. Why not cache each one of those entries then allow someone to query info for a single or array of IDs:

/solarsystem/?systemID=1234 
or
/solarsystem/?systemID=1234,1235,1236.


That way, you're never touching the DB layer. Furthermore, could that system not be used in your cacheing? If someone queries character info for a single character, that data is cached for an hour and returned to anyone else requesting that data whether it be for a single query:


?characterID=1234
or as part of a larger query
?characterID=1234,1234,1235


Quote:
Actually this isn't inconsistent at all. Technically if we follow the design pattern /market/10000002/orders/buy/ should return all market buy orders for the region regardless of type. The type parameter is a filter. /market/regionID/orders/buy/orderID is the next step in the URI. /market/regionID/orders/buy/ is also where the post request goes for creating a new buy order. /market/regionID/orders/buy/ is a collection or buy orders, and following RESTful design should, and does just not exposed to third-party devs yet, a way of viewing an individual item from that collection. The parameters should then filter, which is what we have in the above design. The only questionable part of that is the region ID being part of the URI and not a parameter, but that's because of the way our backend works. the market is divided into regions and must be viewed per region, it's not an optional parameter. Again, type should really be optional... that might be the inconsistent part.


I have yet to run across any other REST service that uses that formatting. It's awkward as you're using IDs everywhere else. Is this somehow more efficient on your end? In the example used, not only is regionID a filter but so is buy so what makes the version using a URI as a parameter more RESTful or adherent to design specifications than:


/market/{ regionID }/orders/buy/{ typeID }
or
/market/{ regionID }/orders/buy/?typeID={ typeID },{ typeID }


The above doesn't seem to run against the design specs and has the added benefit of being far more readable, which is one of the major tenants of a RESTful service.