Discussion External API Requirements Thread

Status
Thread Closed: Not open for further replies.

wolverine2710

Tutorial & Guide Writer
Excited by this :D I'd like to see the ability to send select information to the MFD's on the X52, say current target details like bounty, cargo manifest, faction etc - and for the game to set the LED colours based on fire group, landing gear, lights, silent running etc.

I don't think that would be too complicated, and it would both look great and be a lot of fun - and there's a lot of x52s out there to be happy with it :)

You might want to have a look at Trade Dangerous. Its trade routes can be displayed on the X52. Not sure if X52 or X52 PRO is supported - thought X52. TD is open source so you can have a look at how setting/controlling the X52 is done. FD is only supplying data with the (web)API - hopefully it has the info you need. You or someone else still has to create a program for it.

- - - - - Additional Content Posted / Auto Merge - - - - -

Hi FD

My only request is that if you're going to allow scraping of commander data (stats, not the Star Trek Android :D) then you make that an opt-in feature.

I have no objection if people wish to learn about other commanders, but only if there is consent.

Thanks

I have this feeling that like the iOS web-api only info about yourself is shown - can be requested. Its up to third party tools to use that info and distribute it (EDDN,TGC,EDDB). You have to install that tool yourself so by doing that you give consent.
 
Indeed and this is why we're happy for this to be a relatively open discussion of what people would like to be able to do at this stage. We'll then review and see what we should support and how we move forward.

Michael

One thing I'd like to see are information about the current player / ship for use on an aux display - i.e LCD screens on keyboard, or the X52 Pro and similar. Things like the right hand statistics pane, cargo load etc. Maybe even information about the current target (but then you move more into realtime which is something you'd pretty much have to support from the game itself rather than something you query every minute or what not). Even if it wasn't realtime, it would be nice to have.

- - - - - Additional Content Posted / Auto Merge - - - - -

You might want to have a look at Trade Dangerous. Its trade routes can be displayed on the X52. Not sure if X52 or X52 PRO is supported - thought X52. TD is open source so you can have a look at how setting/controlling the X52 is done. FD is only supplying data with the (web)API - hopefully it has the info you need. You or someone else still has to create a program for it.

X52 doesn't allow third party modifications to the display - this is a X52 Pro only feature.
 
Some things that I'd like to see:



  • Station
    • Station type (Outpost, orbis, etc.)
    • Station Owner/Faction
    • CMDR Docking logs for past hour (Allows people to check the traffic of systems to plan attacks/visit other players) (Bounty hunting)
    • Commodity buy/sell prices / demand.
    • Weapons/Ships/Modules available and their price.
    • Largest dockable shipsize.
  • System
    • Lookup by Name
    • Exploration status (not sure how the exploration is replicated to other players, but this might be usable)
    • Distance to other given system
    • Imports/exports
  • Pilot
    • Reputation status (For online pilot comparison/progression tracking)
    • Bounty/Fines (Online bounty hunting board?)
    • Current ship
    • Other ships and their locations (Asset tracking)
    • All same things from statistics panel

Another idea is that some API calls would need to be authenticated with your pilot first, so you'd get given an auth token / api key and then be able to access more methods which need to identify the calling pilot. Once they've identified the pilot they can provide things like remotely purchasing trade data for a system. This would obviously need to be linked to a pilot so the pilot would need to log in / get an authorization key that they'd then need to keep secret. But pilots can then request certain actions be taken remotely on their behalf and pay credits for it.

- - - - - Additional Content Posted / Auto Merge - - - - -

You might want to have a look at Trade Dangerous. Its trade routes can be displayed on the X52. Not sure if X52 or X52 PRO is supported - thought X52. TD is open source so you can have a look at how setting/controlling the X52 is done. FD is only supplying data with the (web)API - hopefully it has the info you need. You or someone else still has to create a program for it.

I'm pretty sure the base X52's screen can't be manipulated with third party stuff, but the PROs can.
 
I'd like the option of logging into my player account and get player-specific data on me.
For the hypothetical "Commander Assistant" app, I'd like certain features.

1: Player log. Data of visited systems, bounties claimed, player deaths and whether or not I have traded or outfittet my ship in that system.
-The C.A. app could then let me bookmark favourite systems, read the exploration data of them anywhere I wanted (as long as I had gotten or purchased it in-game) and save favourite systems with different tags like "federation", "clan", dangerous", "rare goods" etc.

2: Player's purchased trade data. Player location.
-The C.A. could then automate a list for all profitable trade goods within the range of one jump with the currently piloted ship, arranged by most profitable per ton. This is something the player can do while being docked, but clearly showing the expected profit, and by highest to lowest, can automate that "chore" for those who dislike the tediousness.

3: Friend list, and possibly system location for all friends.
Looking up where friends are, ranking them on the app from the closest system to the furthest. Same with player alliance member.
Option of just showing name of system with friends in it, the number of current friends in the system, and those ranked from closest to furthest.

4: List of fully explored systems and partially explored systems by the player.
The C.A. could show this in the convenient "explorer screen", along with other explorer data.

These are the ones I made on the fly.
Great thread.

I've been waiting for the android app for so long, and this is some much needed information on its status, and plans forward. Yay! :)
 

wolverine2710

Tutorial & Guide Writer
It won't hurt to look at what EVE has made available and what the players have done with it... ;D

Eve has EMDR which stands for EVE Market Data Relay. From their website: EVE Market Data Relay (EMDR) is a super scalable, highly available firehose of real-time market data. For those that wish to record price and history data as it comes in, EMDR will help you do so as efficiently and reliably as possible. EMDR’s data feed is open to the public, and is developed as an open source project.
Note: It can handle more then 1 Million market data a day. A nice and simple tool which visualizes data send to EMDR is EMDR map.

6+ Months back commander Andreas built EMDN (Elite Market Dump Network). Its sole source of data was MarketDump. Also by Andreas. It relied on scraping the ED program for data. After FD changed the data access policy it was verboten and Andreas shutdown EMDN.

Two months back a commander suggested to revive EMDN and called it EDDN - Elite Dangerous Data Network. Commander JamesreMuscat saw the merits of it and created EDDN. A very friendly hosting company (an employee played the game and his boss also so that might have helped) offered the project free hosting - 20 Mbit up/down. Yesterday 450 commanders were connected to EDDN. EDDN is a relay and doesn't store anything. Hence if you want up to date data you have to stay connected to it. EliteOCR and RegulatedNoise are atm pumping data into the network. Work is ongoing by Maddavo to insert Trade Dangerous data into EDDN. Kfsone, Thrudd and Slopey are in wrt supporting EDDN in A future version of EDDN - no ETA's. Some trading tools already use the EDDN data. The big three: TD, BPC, Thrudd not yet. Someone suggested EMDR map in that thread and a commander liked the idea. Note: EDDN is a toddler atm - official status is Alpha. Atm there are quite a lot of commanders creating all kind of tools using the EDDN data. Some private, some public.

TLDR; EMDR in the form of EDDN is already implemented for ED.

 
Last edited:

wolverine2710

Tutorial & Guide Writer
One thing I'd like to see are information about the current player / ship for use on an aux display - i.e LCD screens on keyboard, or the X52 Pro and similar. Things like the right hand statistics pane, cargo load etc. Maybe even information about the current target (but then you move more into realtime which is something you'd pretty much have to support from the game itself rather than something you query every minute or what not). Even if it wasn't realtime, it would be nice to have.

- - - - - Additional Content Posted / Auto Merge - - - - -



X52 doesn't allow third party modifications to the display - this is a X52 Pro only feature.

I stand corrected. Thanks for the clarification.
 
Hi
I am writing a short php mysqli web page that enables me to list what products (and associated prices)are available at the station I am visiting.
Now I am no whizz kid, but it seems obvious to me that replacing pencil and paper to record what I see in the market is simply obvious.


I would like to see a couple of things to make my task a little easier, they are:
An ability to 'dump' market info to a csv or text file, a file that I can parse to resolve the data I see on screen, such as Solar system name, Station name, commodity, sell price and buy price. That is all I need to enable me to recall what products I saw at a station I visited a few hours ago and thus, decide what freight to carry.
The second item I would ask for in the API is the current stars location, then using simple math I should be able to resolve distances between stars and better enable trade runs. Yes there is a map, but the solar system info could be dropped into the same text file. Finally, I would really like to see the station data available, industrial, refinery, distance to sun, dropped into the same text file would be simply brilliant.


I don't care if the text file overwrites any existing text file, or what type delimiter is used, though comma's and Semi-Colons would be great, with a new line for each 'new line' of data.

I will happily share my php if anyone has a real need of it.
to recap:

TLDR

Ability to drop a text or csv file onto a directory location containing grid ref of the sun, the solar system name, the station name, the products available at the station and their associated prices.
 
Imagine you set trading route on your companion app.
You send the data to your ship computer.
The data is displayed on the screen between your legs in the cockpit.

API would let you to display any data on the screen. Notes, galnet, rss, even a book for a long journey.

This would be a great use of the screen that doesn't do anything ATM.
 
Before I forget:

- System information for systems the player has discovered (planets, types, explored vs unexplored, planet info, temperature, etc.)
- System information for systems sold to Universal Cartographics, if purchased

This is interesting to compile which systems have been visited, and look up the earth-likes, metal-rich, waterworlds, etc. I've found or other players have found.

For example, remembering this system, let alone finding it again, would be really hard without screenshots:


20150114_112916.jpg


20150114_113007.jpg
 
This is really great news. Thanks for prioritizing the API like this. Hopefully this will mean you can work on other priority features and have the developer community build some of the basic stuff and offer tools etc... like for trade data logging.

Basic APIs/scenarios I think would be a good start:

- System data API - Searching, finding systems, getting information about them, position, jump distance and relationship between systems etc...
- Profile API - everything to do with your character, your Friends/Groups, Ships, credits etc...
- Trade API - data about trade prices in current system, looking up trade data from systems you have visited in the past <= this one is interesting as it will depend on if you want to remove the game dynamic of automatically knowing what prices are etc...

Then comes one i would LOVE for all those hackers out there with physical cockpit ambitions.

- Cockpit API - real time feed of data from the game on all the readings, lights, indicators and screens you have showing in the cockpit. This would allow folks to build out hardware panels and displays as part of their physical setup. Panels to show Eng, Sys and Wep levels for example.

Would be nice if the first three i mentioned were services on the net i could call vs. being a local API on the machine running the game. The Cockpit API would be ok to be just local.

Start simple with one or two REST/Json based services on the net, deliver them and watch what people do with them and then iterate and expand on them.

I work on this stuff/APIs for one of the largest cloud based services on the planet. Would be happy to help if I can.
 
Considering this thread is now 11 Pages long I'll just put it here, fully expecting this to have been already asked for :

Control and UI states, like gear up/down, lights on/off, opened tab on the left and right ui panels, ammo stores... This would really help with macros (be it for Voice Attack or other 3rd party control methods). If we could even have event triggers for state changes (via messages on some internal ports for example) it would be even grander. This would, for example, make it possible to substitute the onboard computer voice for an external one (Microsoft TTS engine or pre-recorded sfx output). Not that the in-game friendshifting voice isn't nice of course ;)
 
I'd also like to repeat the questions for Cockpit data. I'm going to build an Cockpit for ED too. I'd love to be able to display everything the current Cockpit does. Some way of interacting with the displays'd be nice, too. You don't want external requests into the system directly so no Docking request button. I understood that. An alternative could be sending all the data the Left/right Display is displaying ATM and providing input bindings that can interact with the displays while the in game HUD is not shifted to it. So i could provide some external display and control it without switching. Also it'd then be nice to be able to disable the in game Cockpit. Because i don't need it if i have built external ones (Yes I'd like to build everything the ED Cockpit has in some external way. Radar being the hardest part. Still thinking of Ideas there. Maybe this will be my Mobile Phone :) the rest is clear in my head. Will take time but that's okay.)

Also could the forum mods please disable the E:D Smiley? :)
 
What I'd really like is real time ship telemetry/status.

But all sorts of things could tap into this - rumble sub-woofer for when you're hit; hardware ship status lights; remloc mask falling out of ceiling when your canopy is breached; full simulator integration. The list is endless.

Similar to my request - THIS IS REALLY NEEDED!!!!!!
 
Client API
-ship status(like gear and docking requests)
-bookmarks (hope they will come:D )

Server API
-Market data
-Faction status
-group/guild/corp roster(if implemented)
-galnet


fly safe :)
 
Trade Manager

Because we were asked what we want to do and what we need, here a actual project I'm working on and the needs I have.

Short introduction: I'm (like 100 others) working on a market app, where you can save all collected price data and compare it later to find a good routes or just search where to buy stuff you need for a mission. It is a web app and supposed to run on a tablet or other computer. Also I try to keep it simple so no programs beside the browser are needed. So I need a WebAPI where I can send a request per http and get a response in a plain format, preferred JSON because here you can get (data) objects. XML gives IMO not much more benefits but makes the response much bigger. CSV on the other hand might save a bit space but you lose also some advantages.

For this example I just assume an object as response divided in three categories.
  • public - this data is always available/for every commander the same e.g. basic system information like public.system.name = "Sol" or public.system.pos = [0,0,0]
  • global - all data that you/your commander can access every time. Here you have all infos about your commander and also the detailed infos about the system you are currently in. E.g. global.system.station[0].name = "Outpost Alpha" (you have to be in the system but it might be also on public.system if it is well known system) or global.commander.balance = 1000 also global.commander.status = "out of the world"|"interstellar travel"|"in space"|"docked" and global.commander.position = "unknown"|(heading to)"Sol"|"Sol"|"Outpost Alpha"(or "Sol" still)
  • local - informations about the location you are at (conflict cone, extraction side, station ...) E.g. local.name = "Outpost Alpha" or local.marketData = [{goodID:42,goodName="Gold",buy=10000,sell=9999,...},{...}] sou you can also get local.marketData.goodName["Gold"].buy = 10000. A note here, maybe there can also be a request parameter for the language so the strings will have the selected language.

Ok, now we have a dummy-base to work with and I can go on with the things I want to do with it.
The first thing I what to do is a basic set of goods that I need for the APP. This should maybe also a public resources so public.goods gives me all well known goods with there average price in the galaxy (not the rare and not the special USS but all other regardless of there legal state) Next step I need a API-Key from the user. I suggest that the user can create multiple keys for different purposes with different security levels. I probable wouldn't give a open-for-all-key to a random website. A note here, it would be nice to restrict the key to certain domain but I'll use AJAX for the request so I would need it without this restriction.
Now I can access the global and local values from the commander. At first I need the system where the commander is now. Something like global.commander.position should give me the system (maybe as object and not as string like above) from that I might get the surrounding system with public.sector.systems so there can be a way to calculate the distances to other systems or even give a little help to find a system that might be interesting to check. Also i need the data for all stations in the system here informations about the type, fraction, size and maybe distance to sun important. Again to check in advance what station should be checked.
As soon as the commander has docked he can click "station update" and all market data will be imported. I have then (the long way) to check if global.commander.status is "docked" and local.type is "station" or "outpost" then I can get local.name and local.marketData. The lazy way would be just get the local data and hope that the API gives an error or just an empty response on the other hand the local data could be cached so I always get the last local data.

This would be my needs for now but I have already more plans. Next there will be a check for missions on the board. If I have to much time the fancy way that already plan a complete trip with were to buy the goods what small mission lies on the way and what missions are already in progress and can be combined the the missions on the board. Here I would also leave the readonly path and would like to activate and give in missions also buy and sell stuff. Also on the todo list is a miner add on where interesting extraction points can be found and managed/listed in the app but here we get already the downside of the API. When I can collect system data, and this data might even be in the public resource, then it is easy to scan 100ly radius for any metallic ring what normally would cost days on the galactic map.

I hope this helps to figure out what the API will be used for and what is needed. But be sure the needs will grow with every thing you'll give ;)
 
Another thought:

Current Mission Data (basically the Transaction Log and details for each mission). In a form that can be plugged into a trade calculator like Thrudd's so that it calculates the optimum profit to be gained from the order the missions are fulfilled in. Taking into account (already available, albeit manually entered) market information it would calculate the optimum trades between your starting station and a station that could fulfill a mission requirement. Calculate trades for any spare cargo space, and provide information about what you're giving to who, where, and what you're selling on the market. For example:

I have five missions:
  1. 2 Food Carts and 2 Bertrandite to Kappa Fornacis - Harvestport - 3K and 5K
  2. 4 Wine, 3 Indite, and 5 Coffee to LTT 1349 - Lundwall City - 8K, 12K, and 35K

I have 8 cargo space and I'm at Bandizel - Hahn Orbital.

I worked this out by hand pretty much with Thrudd's help:

Buy Food Cartriges, Bertrandite and Indite at Bandizel, ship them to Kappa Fornacis. Complete the Kappa Fornacis missions and buy Coffee.
Fly to LTT 1349 and complete the Indite and Coffee missions, then load up on Land Enrichment and head back to Kappa for the Wine. Sell the Land Enrichment Tech at Kappa, buy Wine and Animal Meat, Fly back to LTT 1349 and hand over the wine, selling the Meat on the market.

This doesn't require live market data API access, would be nice but it would work quite well with what Thrudd's tool already has as long as the data is reasonably fresh. It would also be nice if it automatically updated the optimum route if you happen to pick up additional missions (like I did in the above example IRL, got quite complicated)

The problem this solves is mainly labour saving. Allowing me more time flying in space rather than srcibbling notes on paper. It's the flying I'm here for after all ;D

In a fluff sense, there is no reason that we, as pilots in fairly high tech ships, would not have access to that kind of computational assistance (along with trade transaction logs, navigation logs etc etc). I would have thought that if there is not a particular, game-breaking, reason for us not to have the information in the context of the game universe, then there is not really a good reason for it not to be in the API.
 
What a good idea!

Why not start simple - just do a basic where am I, where am I going, what are the prices sort of thing.

Get it out quickly and then we can develop from there!

:)
 
Last edited:
Status
Thread Closed: Not open for further replies.
Back
Top Bottom