Inara API

More about Inara API is on the API page, general dev guidelines are here and more detailed documentation about the events and data format here.

Just a note for tool authors using Inara API - please ensure your apps are doing  TWO requests per minute AT MAXIMUM. As I have discovered, many users are using multiple apps at once (nothing wrong with that), but are also updating their profiles from all of the applications at once, which is causing quite serious overhead. For such reason, I have needed to make API requests limits much tighter. For bots and other similar non-demanding apps are requests rates set same as before. If do you need another requests rate limit, please send me a PM.

Inara API update for Odyssey:
  • The header property isDeveloped was renamed to less confusing isBeingDeveloped. You don't need to change anything on your end though, the old property will still work.
  • A new event addCommanderTravelLand for commanders landing on the celestial body was added (should be triggered at journal's Touchdown, DropShipDeploy and similar).
  • The events addCommanderTravelCarrierJump, addCommanderTravelDock, addCommanderTravelFSDJump and setCommanderTravelLocation now contain optional properties for the star system coordinates, celestial body and celestial body coordinates. It's not required to set, it may however help to further precise commander's location when the star system is not in the database, etc.
  • The events addCommanderTravelDock, addCommanderTravelFSDJump and addCommanderTravelLand are now having boolean properties isTaxiShuttle and isTaxiDropship for travelling with Apex or Frontline Solutions ships.
  • New events setCommanderInventory, resetCommanderInventory, setCommanderInventoryItem, addCommanderInventoryItem and delCommanderInventoryItem added. Those are supposed for handling the new Odyssey events like ShipLockerMaterials and similar, you can however use it also for the existing engineering materials or ship cargo instead of the existing dedicated events (but you do not need to, they are not going anywhere).
  • New events setCommanderSuitLoadout, updateCommanderSuitLoadout and delCommanderSuitLoadout for the suit loadouts added.
11 Aug 2021, 10:12am
Artie

There were no combat bonds in the journal's Statistics event at the time of the latest update/journal import. But, something should appear there at the next sync, as I see there is some more recent Statistics event in the journal.


Works!! Thx! :-)
22 Sep 2021, 9:39pm
Dear Inara maintainers,

Inara is displaying the wrong priorities for my ship modules: What should be priority 2 is showing as priority 1, what should be 5 is showing as 4, and so on.

Frontier uses 0-based priority values, as seen in their documentation examples, and verified by looking at the game-generated journal files and ModulesInfo.json file. A module that displays priority 1 in-game is represented as priority 0 in the data files.

From a quick glance, EDMarketConnector (which I use to update Inara) seems to be passing Frontier's priority values untouched when it pushes data to Inara.

The Inara API's setCommanderShipLoadout example input doesn't make it clear whether 0-based or 1-based values are expected. In light of that, following Frontier's 0-based convention seems reasonable, so I don't think EDMarketConnector is to blame here.

Could someone at Inara please fix this bug? Please note that it might just be a display bug, or it might also affect the Export to Coriolis / EDSY features; I haven't checked those.

(Or, in the unlikely event that this is not a bug and Inara is deliberately diverging from Frontier's module priority numbering scheme, then could someone update the API documentation to clearly state that?)
22 Sep 2021, 11:12pm
Ah, thanks for reporting. Yeah, it was a display bug, it should be now correct and on par with the in-game priorities.
22 Sep 2021, 11:21pm
ArtieYeah, it was a display bug, it should be now correct and on par with the in-game priorities.


Thanks. Can you please also check the coriolis exports? I just did one, and some of the exported priorities are wrong.
23 Sep 2021, 1:05am
TabrynThanks. Can you please also check the coriolis exports? I just did one, and some of the exported priorities are wrong.

Which ship and modules exactly and what is in the journal Loadout event for that ship? I am doing no alterations to the numbers there (it's stored in the database as it came in), so better to double check the source first, to be sure.
23 Sep 2021, 3:01am
It's a Diamondback Explorer. The multi-cannon is at priority 1 in the journal, and correctly shows up at priority 2 on Inara. However, when I click Export to Coriolis at the bottom of Inara's loadout page, Coriolis shows it at priority 5. The power distributor, thrusters, sensors, and heat sink launcher priorities are also exported incorrectly, showing up as 2 instead of 1. There may be more, but I stopped looking at that point.

{
"timestamp": "2021-09-23T02:51:18Z",
"event": "Loadout",
"Ship": "diamondbackxl",
"ShipID": 5,
"ShipName": "MAGGIE",
"ShipIdent": "TA-DE1",
"HullValue": 1373307,
"ModulesValue": 4539202,
"HullHealth": 1.000000,
"UnladenMass": 320.899994,
"CargoCapacity": 24,
"MaxJumpRange": 66.817261,
"FuelCapacity": {
"Main": 32.000000,
"Reserve": 0.520000
},
"Rebuy": 295628,
"Modules": [{
"Slot": "ShipCockpit",
"Item": "diamondbackxl_cockpit",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "CargoHatch",
"Item": "modularcargobaydoor",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "MediumHardpoint1",
"Item": "hpt_multicannon_gimbal_medium",
"On": true,
"Priority": 1,
"AmmoInClip": 90,
"AmmoInHopper": 2100,
"Health": 1.000000
}, {
"Slot": "MediumHardpoint2",
"Item": "hpt_beamlaser_fixed_medium",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "TinyHardpoint1",
"Item": "hpt_heatsinklauncher_turret_tiny",
"On": true,
"Priority": 0,
"AmmoInClip": 1,
"AmmoInHopper": 2,
"Health": 1.000000
}, {
"Slot": "TinyHardpoint3",
"Item": "hpt_cloudscanner_size0_class3",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "TinyHardpoint4",
"Item": "hpt_chafflauncher_tiny",
"On": true,
"Priority": 0,
"AmmoInClip": 1,
"AmmoInHopper": 10,
"Health": 1.000000
}, {
"Slot": "Armour",
"Item": "diamondbackxl_armour_grade1",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "PowerPlant",
"Item": "int_powerplant_size4_class5",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "MainEngines",
"Item": "int_engine_size4_class2",
"On": true,
"Priority": 0,
"Health": 1.000000
}, {
"Slot": "FrameShiftDrive",
"Item": "int_hyperdrive_size5_class5",
"On": true,
"Priority": 1,
"Health": 1.000000,
"Engineering": {
"Engineer": "Elvira Martuuk",
"EngineerID": 300160,
"BlueprintID": 128673694,
"BlueprintName": "FSD_LongRange",
"Level": 5,
"Quality": 1.000000,
"ExperimentalEffect": "special_fsd_heavy",
"ExperimentalEffect_Localised": "Mass Manager",
"Modifiers": [{
"Label": "Mass",
"Value": 26.000000,
"OriginalValue": 20.000000,
"LessIsGood": 1
}, {
"Label": "Integrity",
"Value": 77.279999,
"OriginalValue": 120.000000,
"LessIsGood": 0
}, {
"Label": "PowerDraw",
"Value": 0.690000,
"OriginalValue": 0.600000,
"LessIsGood": 1
}, {
"Label": "BootTime",
"Value": 2.000000,
"OriginalValue": 10.000000,
"LessIsGood": 1
}, {
"Label": "FSDOptimalMass",
"Value": 1856.399902,
"OriginalValue": 1050.000000,
"LessIsGood": 0
}, {
"Label": "FSDHeatRate",
"Value": 32.400002,
"OriginalValue": 27.000000,
"LessIsGood": 1
}]
}
}, {
"Slot": "LifeSupport",
"Item": "int_lifesupport_size3_class2",
"On": true,
"Priority": 0,
"Health": 1.000000
}, {
"Slot": "PowerDistributor",
"Item": "int_powerdistributor_size3_class2",
"On": true,
"Priority": 0,
"Health": 1.000000
}, {
"Slot": "Radar",
"Item": "int_sensors_size3_class2",
"On": true,
"Priority": 0,
"Health": 1.000000
}, {
"Slot": "FuelTank",
"Item": "int_fueltank_size5_class3",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "Decal1",
"Item": "decal_explorer_pathfinder",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "Slot01_Size4",
"Item": "int_fuelscoop_size4_class5",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "Slot02_Size4",
"Item": "int_cargorack_size4_class1",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "Slot03_Size3",
"Item": "int_cargorack_size3_class1",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "Slot04_Size3",
"Item": "int_shieldgenerator_size3_class2",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "Slot05_Size2",
"Item": "int_detailedsurfacescanner_tiny",
"On": true,
"Priority": 0,
"Health": 1.000000
}, {
"Slot": "Slot06_Size2",
"Item": "int_buggybay_size2_class2",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "Slot07_Size1",
"Item": "int_supercruiseassist",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "Slot08_Size1",
"Item": "int_dockingcomputer_advanced",
"On": true,
"Priority": 4,
"Health": 1.000000
}, {
"Slot": "PlanetaryApproachSuite",
"Item": "int_planetapproachsuite",
"On": true,
"Priority": 1,
"Health": 1.000000
}, {
"Slot": "VesselVoice",
"Item": "voicepack_verity",
"On": true,
"Priority": 1,
"Health": 1.000000
}]
}


Post edited/moved by: Artie, 23 Sep 2021, 8:41am
23 Sep 2021, 8:44am
Ah, then it's some Coriolis thing/problem that worth to be reported on their github. You can see the raw data exported by clicking the "export loadout" button there and the priorities are alright in there.
23 Sep 2021, 8:51am
ArtieAh, then it's some Coriolis thing/problem that worth to be reported on their github.

That doesn't explain why Coriolis shows the correct values when I use the export link generated by EDmarketConnector. If it was a Coriolis problem, I would expect the values to be wrong regardless of who did the export.

ArtieYou can see the raw data exported by clicking the "export loadout" button there and the priorities are alright in there.

I just checked. Nope, the priorities for the power distributor, thrusters, sensors, and heat sink launcher are missing entirely from the JSON generated by Inara's Export Loadout.
23 Sep 2021, 9:19am
Yes, that assumes a default priority (value: 0). I can include the zeroes there, it won't however change the problem like the multi-cannons being at priority 5, although it's exported with a correct priority value. The Coriolis is using different importers for each format I guess, so there may be some problem with their parser for SLEF format. Better to have it reported to them.
23 Sep 2021, 8:49pm
ArtieCoriolis is using different importers for each format I guess, so there may be some problem with their parser for SLEF format.


Are you saying that Inara is somehow exporting to Coriolis using a different format than EDMarketConnector does? Because both look to me like they're just generating a link that starts with https://coriolis.io/import?data= followed by similar-looking data. (I don't recognize the encoding; it doesn't look like base64.) Perhaps there are two different formats encoded within that data?
23 Sep 2021, 11:48pm
Yep, a slightly different format (more info here), it's exactly what you see in the "Export loadout" window, just encoded and sent to Coriolis.
01 Oct 2021, 8:58pm
I'm having a problem with the api SSL cert failing verification since Sept 30 15:29 GMT. Postman on Windows reports SSL Error: Certificate has expired and my Android app is throwing exceptions with Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED.

This is probably releated to a Let's Encrypt root certificate expiring yesterday, I saw my first error report 90 minutes later.

From what I've read the server may need a push to use the correct cert chain, more details here: https://docs.certifytheweb.com/docs/kb/kb-202109-letsencrypt/

Obviously the website is fine, this just is just affecting the api.
01 Oct 2021, 10:24pm
Hello, yes, this is related to the Let's Encrypt's DST Root CA X3 root certificate expiry and I am not planning to add a legacy support, as there is almost nobody using the incompatible devices. Please check the compatibility page here and update your device when necessary.
09 Oct 2021, 12:55pm
Early notice: at some point in the future the property commanderAssets in the setCommanderCredits event will be required to make credits updates via Inara API. The overall assets value can be taken from the journal's Statistics event (Current_Wealth property) at the session start, so please adjust your apps accordingly.
10 Oct 2021, 12:36pm
Subject (tl;dr): commodity sell/buy data. What do the colours[sic]*, white, blue and orange mean?

I searched topics carefully and could not find easily where to post this and also I couldn’t find the answer to my question. In, e.g. Inara—>[cmdr]—>My Fleet—>My Fleet Carrier—>Market**, sell prices are different colours. White, blue or orange. I understand that white is average, blue is better than average and orange is great, give me some. But how are the colours determined? Specifically, above what percentage is blue and orange triggered?

07 commanders
* I’m British, and for me, colours is the correct spelling!
** the colours are also displayed in the sell/buy columns of any station market

Post a reply

You must be signed in to post here.
Inara API is... well... see sticky post for the details.