Inara API
Data format
Inara API requires JSON data as an input (uncompressed) and returns also JSON as the output. Both consists from 'header' (user/app identification) and 'events' (main part) blocks. The data returned are always in the order as they were sent, doesn't matter the timestamps. If there are no data returned, something went wrong and you should try to send the request again after some time (please set reasonable timeouts and retry rates, there is no point to spam retry requests each second as Inara may be currently temporarily down for maintenance and similar).See more details, data format examples and properties below.
Input properties
Properties marked as red are required.
Output properties
Property name | Property type | Description |
---|---|---|
appName | string | Name of the application used |
appVersion | string | Version of the application (like: '1.2.4', please keep this standard versioning format as there may be a version control in effect) |
isBeingDeveloped | boolean | If you are developing the application and/or testing new updates, please set this as 'true'. This setting will skip the updates for global events like setCommunityGoal, which may otherwise cause the problems with your test data. Please note that newly accepted applications in development has this set by default on server side, but don't rely on it and set it on your side, too. |
APIkey | string | User's personal API key (set by user) or generic application key (for general read-only events) |
commanderName | string | In-game CMDR name of user (not set by user, get this from journals or cAPI to ensure it is a correct in-game name to avoid future problems). It is recommended to be always set when no generic API key is used (otherwise some events may not work). |
commanderFrontierID | string | Commander's unique Frontier ID (is provided by journals since 3.3) in a format: 'F123456' or '123456'. When not known, set nothing. |
Output properties
Property name | Property type | Description |
---|---|---|
eventStatus | integer | Event status code (see eventStatus codes). |
eventStatusText | string | Textual explanation of status on errors and warnings. It is returned just on error states. |
eventData | mixed | Returned basic user identification like Inara user ID and Inara user name, when no generic API key was used and the authorization was successful. |
Input properties
Properties marked as red are required.
Output properties
Property name | Property type | Description |
---|---|---|
eventName | string | Name of the event/method |
eventTimestamp | string | Date and time in ISO 8601 format (like: 2017-05-02T17:30:49Z). Always use a correct date and time related to the event (from the journals), for example when commander achieved a new rank, when was ship bought and so on. If there is no date/time directly related to the event, just use the actual time. The date/time provided shouldn't be older than 30 days. |
eventCustomID | integer | Optional custom event ID by your choice, used for the output (like: 1234) |
eventData | mixed | Required event properties/data. See more details about individual event properties in the events documentation. |
Output properties
Property name | Property type | Description |
---|---|---|
eventCustomID | integer | Your event custom identifier, when set in the request. May help you to better pair your requests with results. |
eventStatus | integer | Event status code (see eventStatus codes). |
eventStatusText | string | Textual explanation of the status code on errors and warnings. It is returned just on error states. |
eventData | mixed | Returned data based on the event (if any). See events documentation for the details. |
{ "header": { "appName": "MyInaraApp", "appVersion": "1.01", "isBeingDeveloped": true, "APIkey": "fdg58sdf48gf8asd1", "commanderName": "Artie", "commanderFrontierID": "F123456" }, "events": [ { "eventName": "getCommanderProfile", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "searchName": "artie" } }, { "eventName": "getCommanderProfile", "eventTimestamp": "2017-05-02T17:30:50Z", "eventCustomID": 1234, "eventData": { "searchName": "RumburakCoNeniOdArabely" } } ] }
{ "header": { "eventStatus": 200, "eventData": { "userID": 1, "userName": "Artie" } }, "events": [ { "eventStatus": 200, "eventData": { "userID": 1, "userName": "Artie", "ranks": { "combat": 8, "trade": 7, "exploration": 6 } } }, { "eventCustomID": 1234, "eventStatus": 204, "eventStatusText": "No results found." } ] }
- 200 - OK
- 202 - Warning (everything is OK, but there may be multiple results for the input properties, etc.)
- 204 - 'Soft' error (everything was formally OK, but there are no results for the properties set, etc.)
- 400 - Error (you probably did something wrong, there are properties missing, etc. The event was skipped or whole batch cancelled on failed authorization.)
API Events
Commander's profile and misc
addCommanderFriend
Adds a friend request to the target commander on Inara. The request may not be performed when such commander is not found under his/her in-game name.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
commanderName | string | In-game name of the target commander. |
gamePlatform | string | Target commander's game platform, values are: ['pc', 'xbox', 'ps4']. May serve as an override to the global platform settings in the future. |
{ "eventName": "addCommanderFriend", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "commanderName": "Rumbakoule", "gamePlatform": "xbox" } },
{ "eventStatus": 200 }
delCommanderFriend
Removes a target commander from the friends list on Inara. The request may not be performed when such commander is not found under his/her in-game name.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
commanderName | string | In-game name of the target commander. |
gamePlatform | string | Target commander's game platform, values are: ['pc', 'xbox', 'ps4']. May serve as an override to the global platform settings in the future. |
{ "eventName": "delCommanderFriend", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "commanderName": "Rumbakoule", "gamePlatform": "xbox" } },
{ "eventStatus": 200 }
getCommanderProfile
Returns basic information about commander from Inara like ranks, squadron, etc.
This event can be used with the generic API key.
Properties marked as red are required.
This event can be used with the generic API key.
Property name | Property type | Description |
---|---|---|
searchName | string | Commander's name. The input name provided is used for the exact match search against the in-game commander names. If no record found, it is then used as a search string in the Inara user names and if the name doesn't match exactly, the first result of the search is returned. If there is no input name provided and personal API key is used, the profile of the current user is returned. |
Note: The 'commanderName' in the output is returned just when the 'searchName' and commander's in-game name exactly match (and is known). When there is no exact match, other possible names are returned in the 'otherNamesFound' list (up to 20 records).
{ "eventCustomID": 13458, "eventName": "getCommanderProfile", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "searchName": "artie" } }
{ "eventCustomID": 13458, "eventStatus": 200, "eventData": { "userID": 1, "userName": "Artie", "commanderName": "Artie", "commanderRanksPilot": [ { "rankName": "combat", "rankValue": 7, "rankProgress": 0.40000000000000002 }, { "rankName": "trade", "rankValue": 8, "rankProgress": 1 }, { "rankName": "exploration", "rankValue": 6, "rankProgress": 0.11 }, { "rankName": "cqc", "rankValue": 2, "rankProgress": 0.089999999999999997 }, { "rankName": "empire", "rankValue": 12, "rankProgress": 0.17000000000000001 }, { "rankName": "federation", "rankValue": 11, "rankProgress": 0.65000000000000002 } ], "preferredAllegianceName": "Independent", "preferredPowerName": "Felicia Winters", "commanderMainShip": { "shipType": "federation_corvette", "shipName": "Spectre", "shipIdent": "X-0QAR", "shipRole": "" }, "commanderSquadron": { "SquadronID": 5, "SquadronName": "Inara Test Wing", "SquadronMembersCount": 8, "SquadronMemberRank": "Squadron commander", "inaraURL": "https:\/\/inara.cz\/squadron\/5\/" }, "preferredGameRole": "Freelancer", "avatarImageURL": "https:\/\/inara.cz\/data\/users\/0\/1x1548.jpg", "inaraURL": "https:\/\/inara.cz\/cmdr\/1\/", "otherNamesFound": [ "Artiex2", "Artieblahblah" ] } }
Commander's credits, assets and permits
addCommanderPermit
Adds star system permit for the commander. You do not need to handle permits granted for the Pilots Federation or Navy rank promotion, but you should handle any other ways (like mission rewards).
Warning: The permits list is not implemented on Inara yet (will be available fairly soon), but you can handle this in advance.
Properties marked as red are required.
Warning: The permits list is not implemented on Inara yet (will be available fairly soon), but you can handle this in advance.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem for which is the permit granted. |
{ "eventName": "addCommanderPermit", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "starsystemName": "Alioth" } }
{ "eventStatus": 200 }
setCommanderCredits
Sets current credits, assets and loans and a record is added to the credits log (if the credits/assets value differs).
Warning: Do NOT set credits/assets unless you are absolutely sure they are correct. The journals currently doesn't contain crew wage cuts, so credit gains are very probably off for most of the players. Also, please, do not send each minor credits change, as it will spam player's credits log with unusable data and they won't be most likely very happy about it. It may be good to set credits just on the session start, session end and on the big changes or in hourly intervals.
There may be some separate transaction log for every minor credits change introduced later, which won't mess player's main credits log.
Properties marked as red are required.
Warning: Do NOT set credits/assets unless you are absolutely sure they are correct. The journals currently doesn't contain crew wage cuts, so credit gains are very probably off for most of the players. Also, please, do not send each minor credits change, as it will spam player's credits log with unusable data and they won't be most likely very happy about it. It may be good to set credits just on the session start, session end and on the big changes or in hourly intervals.
There may be some separate transaction log for every minor credits change introduced later, which won't mess player's main credits log.
Property name | Property type | Description |
---|---|---|
commanderCredits | integer | Commander's actual credits. |
commanderAssets | integer | Actual current assets value. When no assets value provided, assets value is calculated (based on Inara data). |
commanderLoan | integer | Commander's actual loans (if any). When no loan value provided, it will be set to zero. |
{ "eventName": "setCommanderCredits", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "commanderCredits": 800, "commanderAssets": 2400, "commanderLoan": 100 } },
{ "eventStatus": 200 }
Commander's ranks, reputation and stats
setCommanderGameStatistics
Sets commander's in-game statistics. Please note that the statistics are always overridden as a whole, so any partial updates will cause erasing of the rest.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
[array] | mixed | To make things simple, the input array structure and properties are exactly as provided by the journals, so you may just pass it to API. See input JSON example for the details. |
{ "eventName": "setCommanderGameStatistics", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": { "Bank_Account": { "Current_Wealth": 1560432, "Spent_On_Ships": 480000, "Spent_On_Outfitting": 200000, "Spent_On_Repairs": 5600, "Spent_On_Fuel": 340, "Spent_On_Ammo_Consumables": 10, "Insurance_Claims": 0, "Spent_On_Insurance": 0 }, "Combat": { "Bounties_Claimed": 5, "Bounty_Hunting_Profit": 8400, "Combat_Bonds": 0, "Combat_Bond_Profits": 0, "Assassinations": 1, "Assassination_Profits": 25000, "Highest_Single_Reward": 12400, "Skimmers_Killed": 0 } // .... and so on } }
{ "eventStatus": 200 }
setCommanderRankEngineer
Sets rank progress with the individual Engineer. If there is a newer value already stored (compared by timestamp), the update is ignored.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
engineerName | string | Engineer name as is in the journals |
rankStage | string | Rank stage name as is in the journals, possible values are: ['Invited', 'Acquainted', 'Unlocked', 'Barred'] |
rankValue | integer | Rank value when the engineer is unlocked (range [1..5]) |
Note: 'rankStage' and 'rankValue' properties aren't required, but there should be at least one property set. When the 'rankValue' is set, engineer will be in a stage 'Unlocked', doesn't matter what was set.
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
{ "eventName": "setCommanderRankEngineer", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "engineerName": "Elvira Martuuk", "rankStage": "Unlocked", "rankValue": 4 } } You can also set multiple engineers at once: { "eventName": "setCommanderRankEngineer", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": [ { "engineerName": "Elvira Martuuk", "rankStage": "Unlocked", "rankValue": 4 }, { "engineerName": "Liz Ryder", "rankStage": "Unlocked", "rankValue": 2 } ] }
{ "eventStatus": 200 }
setCommanderRankPilot
Sets commander Elite and Navy ranks. You can set just rank or its progress or both at once. If there is a newer value already stored (compared by timestamp), the update is ignored. Possible star system permits tied to ranks are awarded to the commander automatically.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
rankName | string | Pilots federation/Navy rank name as are in the journals (["combat", "trade", "explore", "cqc", "soldier", "exobiologist", "federation", "empire"]) |
rankValue | integer | Rank value (range [0..13] for Pilots federation ranks, range [0..14] for Navy ranks) |
rankProgress | float | Rank progress (range: [0..1], which corresponds to 0% - 100%) |
Note: 'rankValue' and 'rankProgress' properties aren't required, but there should be at least one property set.
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
{ "eventName": "setCommanderRankPilot", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "rankName": "combat", "rankValue": 3, "rankProgress": 0.42 } } You can also set multiple ranks at once: { "eventName": "setCommanderRankPilot", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": [ { "rankName": "combat", "rankValue": 3, "rankProgress": 0.42 }, { "rankName": "trade", "rankValue": 2, "rankProgress": 0.31 }, { "rankName": "explore", "rankValue": 5, "rankProgress": 0.67 } ] }
{ "eventStatus": 200 }
setCommanderRankPower
Sets commander pledged power rank, related to Powerplay. If there is a newer value already stored (compared by timestamp), the update is ignored.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
powerName | string | Name of a power |
rankValue | integer | Power rank value. When player is leaving a power, just set a rankValue [-1] for this power. When player is defecting to another power, just set a rankValue for the new power as usual. There is no need to erase a rank of the previous power first, it is made automatically. |
meritsValue | integer | Merits value for the pledged Power. |
{ "eventName": "setCommanderRankPower", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "powerName": "Felicia Winters", "rankValue": 2, "meritsValue": 1452, } }
{ "eventStatus": 200 }
setCommanderReputationMajorFaction
Sets commander's reputation with the major factions like Federation, Empire, etc.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
majorfactionName | string | Major faction name as is in the journals ("federation", "empire"], ...) |
majorfactionReputation | float | Reputation progress in a range: [-1..1], which corresponds to a reputation range from -100% (hostile) to 100% (allied). |
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
{ "eventName": "setCommanderReputationMajorFaction", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "majorfactionName": "empire", "majorfactionReputation": 0.84 } } You can also set multiple faction reputations at once: { "eventName": "setCommanderReputationMajorFaction", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": [ { "majorfactionName": "empire", "majorfactionReputation": 0.84 }, { "majorfactionName": "federation", "majorfactionReputation": 0.36 } ] }
{ "eventStatus": 200 }
setCommanderReputationMinorFaction
Sets commander's reputation with the minor faction. The values can be found in journal's FSDJump and Location events, as a MyReputation property.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
minorfactionName | string | Minor faction name as is in the journals |
minorfactionReputation | float | Reputation progress in a range: [-1..1], which corresponds to a reputation range from -100% (hostile) to 100% (allied). |
You can use an array of parameters to set multiple items at once. See input JSON example for more details.
{ "eventName": "setCommanderReputationMinorFaction", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": { "minorfactionName": "Inara Nexus", "minorfactionReputation": 0.76 } } You can also set multiple faction reputations at once: { "eventName": "setCommanderReputationMinorFaction", "eventTimestamp": "2017-05-02T17:30:49Z", "eventData": [ { "minorfactionName": "Inara Nexus", "minorfactionReputation": 0.76 }, { "minorfactionName": "Inara Independents", "minorfactionReputation": 0.24 } ] }
{ "eventStatus": 200 }
Commander's inventory - general
addCommanderInventoryItem
Adds a specified count of the individual item to the commander's inventory.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
itemType | string | A type of the item as defined by Frontier: 'Encoded', 'Raw', 'Manufactured', 'Item', 'Items', 'Component', 'Components', 'Data', 'Consumable', 'Consumables'. On top of that you can use a type 'Material' instead of Encoded, Raw and Manufactured and 'Commodity' for the commodities in the ships's cargo hold. |
itemLocation | string | A location of the item, currently just 'ShipLocker'. When the property is not set, the 'ShipLocker' is assumed. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "addCommanderInventoryItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "conductivefabrics", "itemCount": 3, "itemType": "Commodity", "isStolen": true } }
{ "eventStatus": 200 }
delCommanderInventoryItem
Removes a specified count of the individual item from the commander's inventory.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
itemType | string | A type of the item as defined by Frontier: 'Encoded', 'Raw', 'Manufactured', 'Item', 'Items', 'Component', 'Components', 'Data', 'Consumable', 'Consumables'. On top of that you can use a type 'Material' instead of Encoded, Raw and Manufactured and 'Commodity' for the commodities in the ships's cargo hold. |
itemLocation | string | A location of the item, currently just 'ShipLocker'. When the property is not set, the 'ShipLocker' is assumed. |
isStolen | boolean | Whether the item was stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item was related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "delCommanderInventoryItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "modularterminals", "itemCount": 4, "itemType": "Commodity", "missionGameID": 170577201 } }
{ "eventStatus": 200 }
resetCommanderInventory
Resets commander's inventory (materials, commodities in the ship, items in the ship locker, etc.) by the item type given. Please note that resetting 'Raw', 'Encoded' or 'Manufactured' will reset the entire materials inventory.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemType | string | A type of the item as defined by Frontier: 'Encoded', 'Raw', 'Manufactured', 'Item', 'Items', 'Component', 'Components', 'Data', 'Consumable', 'Consumables'. On top of that you can use a type 'Material' instead of Encoded, Raw and Manufactured and 'Commodity' for the commodities in the ships's cargo hold. |
itemLocation | string | A location of the item, currently just 'ShipLocker'. When the property is not set, the 'ShipLocker' is assumed. |
Similar to setCommanderInventory, you can reset multiple item types at once.
{ "eventName": "resetCommanderInventory", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": [ { "itemType": "Materials" }, { "itemType": "Item", "itemLocation": "ShipLocker" } ] }
{ "eventStatus": 200 }
setCommanderInventory
Sets commander's inventory (materials, commodities in the ship, items in the ship locker, etc.). This event will erase a whole inventory of the given type when at least one item of the same type is present. To be sure you always start with a "clean slate" for journal events like 'ShipLockerMaterials' when no materials present, call 'resetCommanderInventory' event before.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. The lower/upper cases doesn't matter. |
itemCount | integer | Count of items. |
itemType | string | A type of the item as defined by Frontier: 'Encoded', 'Raw', 'Manufactured', 'Item', 'Items', 'Component', 'Components', 'Data', 'Consumable', 'Consumables'. On top of that you can use a type 'Material' instead of Encoded, Raw and Manufactured and 'Commodity' for the commodities in the ships's cargo hold. |
itemLocation | string | A location of the item, currently just 'ShipLocker'. When the property is not set, the 'ShipLocker' is assumed. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
Please note that eventData items are separated in individual arrays, see the example input for the data format. You can also set the same item with different 'isStolen' or 'isMissionItem' flags, as is in the example. You can also set multiple item types at once.
{ "eventName": "setCommanderInventory", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": [ { "itemName": "conductivefabrics", "itemCount": 1, "itemType": "Commodity" }, { "itemName": "suitschematic", "itemCount": 6, "itemType": "Item", "itemLocation": "ShipLocker" }, { "itemName": "cadmium", "itemCount": 24, "itemType": "Raw" }, { "itemName": "cobalt", "itemCount": 6, "itemType": "Commodity", "missionGameID": 170577201, "isStolen": true } ] }
{ "eventStatus": 200 }
setCommanderInventoryItem
Sets a specified count of the individual item in the commander's inventory. If no item is present in the inventory, it is added. When count is set to zero, the item is removed.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
itemType | string | A type of the item as defined by Frontier: 'Encoded', 'Raw', 'Manufactured', 'Item', 'Items', 'Component', 'Components', 'Data', 'Consumable', 'Consumables'. On top of that you can use a type 'Material' instead of Encoded, Raw and Manufactured and 'Commodity' for the commodities in the ships's cargo hold. |
itemLocation | string | A location of the item, currently just 'ShipLocker'. When the property is not set, the 'ShipLocker' is assumed. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "setCommanderInventoryItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "cobalt", "itemCount": 11, "itemType": "Commodity", "missionGameID": 170577201 } }
{ "eventStatus": 200 }
Commander's inventory - ship cargo & materials
addCommanderInventoryCargoItem
Adds a specified count of the individual item to the commander's cargo.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Properties marked as red are required.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "addCommanderInventoryCargoItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "conductivefabrics", "itemCount": 3, "isStolen": true } }
{ "eventStatus": 200 }
addCommanderInventoryMaterialsItem
Adds a specified count of the individual material to the commander's inventory.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Properties marked as red are required.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Property name | Property type | Description |
---|---|---|
itemName | string | A material/item name as is in the journals. |
itemCount | integer | Count of items. |
{ "eventName": "addCommanderInventoryMaterialsItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "nickel", "itemCount": 2 } }
{ "eventStatus": 200 }
delCommanderInventoryCargoItem
Removes a specified count of the individual item from the commander's cargo.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Properties marked as red are required.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
isStolen | boolean | Whether the item was stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item was related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "delCommanderInventoryCargoItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "modularterminals", "itemCount": 4, "missionGameID": 170577201 } }
{ "eventStatus": 200 }
delCommanderInventoryMaterialsItem
Removes a specified count of the individual material from the commander's inventory.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Properties marked as red are required.
Note: Don't forget to correctly remove/add cargo commodities or materials also on journal events like MiningRefined, ScientificResearch, SearchAndRescue, Synthesis, EngineerCraft, EngineerContribution, etc.
Property name | Property type | Description |
---|---|---|
itemName | string | A material/item name as is in the journals. |
itemCount | integer | Count of items. |
{ "eventName": "delCommanderInventoryMaterialsItem", "eventTimestamp": "2017-10-28T17:30:50Z", "eventData": { "itemName": "crystalshards", "itemCount": 2 } }
{ "eventStatus": 200 }
setCommanderInventoryCargo
Sets commander's cargo (commodities in the ship). This event will erase whole cargo and sets it anew. The limpets/drones are also counted as cargo, the passengers are not (well, except slaves ;) ).
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. The lower/upper cases doesn't matter. |
itemCount | integer | Count of items. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
Please note that eventData items are separated in individual arrays, see the example input for the data format. You can also set the same item with different 'isStolen' or 'isMissionItem' flags, as is in the example.
{ "eventName": "setCommanderInventoryCargo", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": [ { "itemName": "conductivefabrics", "itemCount": 1 }, { "itemName": "modularterminals", "itemCount": 6 }, { "itemName": "modularterminals", "itemCount": 2, "isStolen": true }, { "itemName": "cobalt", "itemCount": 6, "missionGameID": 170577201 } ] }
{ "eventStatus": 200 }
setCommanderInventoryCargoItem
Sets a specified count of the individual item in the commander's cargo. If no item is present in the cargo, it is added. When count is set to zero, the item is removed.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A commodity/item name as is in the journals. |
itemCount | integer | Count of items. |
isStolen | boolean | Whether is the item stolen or not. It is not used on Inara at this moment, but you can set it. |
missionGameID | integer | Set when the item is related to a (hauling/courier/etc.) mission (not the reward). It is not used on Inara at this moment, but you can set it. |
{ "eventName": "setCommanderInventoryCargoItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "cobalt", "itemCount": 11, "missionGameID": 170577201 } }
{ "eventStatus": 200 }
setCommanderInventoryMaterials
Sets commander's materials (components for crafting). This event will erase whole materials inventory and sets it anew.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName [in array] | string | A material/item name as is in the journals. |
itemCount [in array] | integer | Count of items. |
Please note that eventData items are separated in individual arrays, see the example input for the data format.
{ "eventName": "setCommanderInventoryMaterials", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": [ { "itemName": "phosphorus", "itemCount": 30 }, { "itemName": "nickel", "itemCount": 10 }, { "itemName": "crystalshards", "itemCount": 20 } ] }
{ "eventStatus": 200 }
setCommanderInventoryMaterialsItem
Sets a specified count of the individual material in the commander's inventory. If no material is present in the inventory, it is added. When count is set to zero, the material is removed.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A material/item name as is in the journals. The lower/upper cases doesn't matter. |
itemCount | integer | Count of items. |
{ "eventName": "setCommanderInventoryMaterialsItem", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "itemName": "crystalshards", "itemCount": 15 } }
{ "eventStatus": 200 }
Commander's storage
setCommanderStorageModules
Sets commander's stored modules. The storage content is always erased and set anew, so when no modules list is provided, the storage will be just emptied.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
itemName | string | A module name as is in the journals. |
itemValue | integer | A module value in credits. |
isHot | boolean | Set when the module is 'hot' (crime&punishment flag). |
starsystemName | string | Star system where the module is stored. |
stationName | string | Station where the module is stored. |
marketID | integer | The market ID of the station. When provided, it is used as a primary location identifier. But, please always provide also the starsystemName and stationName (when known) for a case the market ID won't be found. |
engineering | mixed | Set of module properties, when engineered (like blueprint name, modification level, etc.) |
Please note that eventData items are separated in individual arrays, see the example input for the data format. Some properties as 'experimentalEffect' may not be present in the journals at this moment.
The modules without location set are considered as in transit.
The modules without location set are considered as in transit.
{ "eventName": "setCommanderStorageModules", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": [ { "itemName": "$hpt_pulselaser_gimbal_large_name", "itemValue": 350640, "isHot": true, "starsystemName": "Sol", "stationName": "Abraham Lincoln", "marketID": 128016896, "engineering": { "blueprintName": "Weapon_Overcharged", "blueprintLevel": 4, "blueprintQuality": 0, "experimentalEffect": "special_incendiary_rounds" } }, { "itemName": "$int_cargorack_size7_class1_name", "itemValue": 12800, "isHot": false, "starsystemName": "Sol", "stationName": "Abraham Lincoln", "marketID": 128016896 }, { "itemName": "$int_dronecontrol_collection_size5_class5_name", "itemValue": 4500, "starsystemName": "Inara", "stationName": "Citi Gateway", "marketID": 3226573056 } ] }
{ "eventStatus": 200 }
Commander's fleet/ships
addCommanderShip
Adds a ship to the commander's fleet. A log record is added, the new ship bought is automatically set as current. The ship ID on Inara is returned.
Note: This event may handle multiple journal events or require multiple journal events. Also, it doesn't handle old ship selling or storing and credit changes, you should handle this separately. Please see Journal to JSON example for the details.
Properties marked as red are required.
Note: This event may handle multiple journal events or require multiple journal events. Also, it doesn't handle old ship selling or storing and credit changes, you should handle this separately. Please see Journal to JSON example for the details.
Property name | Property type | Description |
---|---|---|
shipType | string | Ship type/name as is in the journals/cAPI (like: 'sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
{ "eventName": "addCommanderShip", "eventTimestamp": "2017-10-28T17:39:30Z", "eventData": { "shipType": "Sidewinder", "shipGameID": 7 } }
{ "eventStatus": 200, "eventData": { "shipInaraID": 285788, "shipInaraURL": "https:\/\/inara.cz\/cmdr-fleet\/1\/285788\/" } }
Buying a new ship is made in two events in the journals (taken from the example in the Journal manual): { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardBuy", "ShipType":"hauler", "ShipPrice":46262, "StoreOldShip":"SideWinder", "StoreShipID":2 } { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardNew", "ShipType":"hauler", "ShipID":4 } These events translates to the following (the old ship is stored at the current commander's location, you should eventually also handle the credits/assets change and setting the ship's hull/modules value): { "eventName": "setCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "SideWinder", "shipGameID": 2, "starsystemName": "Sol", "stationName": "Abraham Lincoln" } }, { "eventName": "addCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "hauler", "shipGameID": 4 } }
The similar case, but when the old ship is sold: { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardBuy", "ShipType":"hauler", "ShipPrice":46262, "SellOldShip:":"SideWinder", "SellShipID":2, "SellPrice":35600 } { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardNew", "ShipType":"hauler", "ShipID":4 } It translates to the following (the old ship is sold/removed): { "eventName": "delCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "SideWinder", "shipGameID": 2 } }, { "eventName": "addCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "hauler", "shipGameID": 4 } }
delCommanderShip
Removes a ship from the commander's fleet. A log record is added.
Note: This event may handle multiple journal events or require multiple journal events. Also, it doesn't handle credit changes and you should handle this separately. Please see Journal to JSON example for the details.
Please note that the ship may not be removed when it was previously entered manually on Inara and has gameID missing (unless it was updated by 'setCommanderShip' before). It is just a measure to prevent wrong ship removal.
Properties marked as red are required.
Note: This event may handle multiple journal events or require multiple journal events. Also, it doesn't handle credit changes and you should handle this separately. Please see Journal to JSON example for the details.
Please note that the ship may not be removed when it was previously entered manually on Inara and has gameID missing (unless it was updated by 'setCommanderShip' before). It is just a measure to prevent wrong ship removal.
Property name | Property type | Description |
---|---|---|
shipType | string | Ship type/name as is in the journals/cAPI (like: 'sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
{ "eventName": "delCommanderShip", "eventTimestamp": "2017-10-28T17:42:20Z", "eventData": { "shipType": "Sidewinder", "shipGameID": 7 } }
{ "eventStatus": 200 }
Selling the old ship in the journals (taken from the example in the Journal manual): { "timestamp":"2016-07-21T15:12:19Z", "event":"ShipyardSell", "ShipType":"Adder", "SellShipID":6, "ShipPrice":79027, "System":"Eranin" } This event translates to the following (and you should eventually also handle the credits/assets change). This also apply for the journal event 'SellShipOnRebuy': { "eventName": "delCommanderShip", "eventTimestamp": "2016-07-21T15:12:19Z", "eventData": { "shipType": "Adder", "shipGameID": 6 } }
The ship selling also needs to be handled when the new ship is bought and the old one is sold: { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardBuy", "ShipType":"hauler", "ShipPrice":46262, "SellOldShip:":"SideWinder", "SellShipID":2, "SellPrice":35600 } { "timestamp":"2016-07-21T14:36:38Z", "event":"ShipyardNew", "ShipType":"hauler", "ShipID":4 } It translates to the following (the old ship is sold/removed): { "eventName": "delCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "SideWinder", "shipGameID": 2 } }, { "eventName": "addCommanderShip", "eventTimestamp": "2016-07-21T14:36:38Z", "eventData": { "shipType": "hauler", "shipGameID": 4 } }
The ship swapping where the old ship is sold is pretty similar: { "timestamp":"2016-07-21T14:36:06Z", "event":"ShipyardSwap", "ShipType":"sidewinder", "ShipID":10, "SellOldShip":"Asp", "SellShipID":2 } It is translated to the following: { "eventName": "delCommanderShip", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "Asp", "shipGameID": 2 } }, { "eventName": "setCommanderShip", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "sidewinder", "shipGameID": 10, "isCurrentShip": true } }
setCommanderShip
Sets the ship properties like name, ident, hull and modules value, etc. When no ship is found with the 'shipType' and 'shipGameID' set, it is automatically added to commander's fleet. The ship's configuration/loadout is handled by the separate event. The ship ID on Inara is returned as a result.
Note: This event may handle multiple journal events or require multiple journal events. Please see Journal to JSON example for the details.
Properties marked as red are required.
Note: This event may handle multiple journal events or require multiple journal events. Please see Journal to JSON example for the details.
Property name | Property type | Description |
---|---|---|
shipType | string | Ship type/name as is in the journals/cAPI (like: 'sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
shipName | string | Name of the ship. |
shipIdent | string | The ship identification (like: 'AF-47K'). |
shipRole | string | The custom ship role (like: 'Trading and mining ship'). |
isCurrentShip | boolean | When set the ship is identified as a ship that is currently flown by commander. It also resets 'current' status on any other ship. |
isMainShip | boolean | When set the ship is identified and commander's main/favorite ship. This flag is not related to journals/cAPI, it is purely Inara stuff. This also resets 'main' status on any other ship. |
isHot | boolean | Set when the ship is "hot" (crime&punishment flag, not when the ship is overheating). |
shipHullValue | integer | The value of 'barebone' ship, hull without any modules. Please note that this value may not be always present in the journals. |
shipMaxJumpRange | float | Ship's max FSD jump range. |
shipCargoCapacity | integer | Ship's cargo capacity (in units). |
shipModulesValue | integer | The value of all modules on the ship. Same as hull value, it may not be always present. |
shipRebuyCost | integer | The ship's rebuy cost. |
starsystemName | string | The name of the starsystem where is the ship docked (when not flown or in transfer). |
stationName | string | The name of the station where is the ship docked. |
marketID | integer | The market ID of the station. When provided, it is used as a primary location identifier. But, please always provide also the starsystemName and stationName (when known) for a case the market ID won't be found. |
Although most properties aren't required, there should be at least one of them set. The 'isCurrentShip' or 'isMainShip' flag set to 'false' does nothing, as another ship must be set as current/main and the flags are reset that way.
{ "eventName": "setCommanderShip", "eventTimestamp": "2017-10-28T17:40:20Z", "eventData": { "shipType": "Sidewinder", "shipGameID": 7, "shipName": "Goldie", "shipIdent": "OK-475", "isCurrentShip": true, "isMainShip": true, "isHot": false, "shipHullValue": 35000, "shipModulesValue": 126540, "shipRebuyCost": 15400, "shipMaxJumpRange": 6.54, "shipCargoCapacity": 4, "starsystemName": "Inara", "stationName": "Citi Gateway" } }
{ "eventStatus": 200, "eventData": { "shipInaraID": 285788, "shipInaraURL": "https:\/\/inara.cz\/cmdr-fleet\/1\/285788\/" } }
A common use is for a Loadout event or SetUserShipName events like the following (example from the Journal manual): { "timestamp":"2017-01-24T10:42:38Z", "event":"SetUserShipName", "Ship":"cobramkiii","ShipID":2, "UserShipName":"Enterprise", "UserShipId":"NCC 1701" } This event is translated to the following (just the name and ident is set): { "eventName": "setCommanderShip", "eventTimestamp": "2017-01-24T10:42:38Z", "eventData": { "shipType": "cobramkiii", "shipGameID": 2, "shipName": "Enterprise", "shipIdent": "NCC 1701" } }
Another case is the ship swapping in the journals: { "timestamp":"2016-07-21T14:36:06Z", "event":"ShipyardSwap", "ShipType":"sidewinder", "ShipID":10, "StoreOldShip":"Asp", "StoreShipID":2 } This event is translated to the following, where the old ship is docked and the new ship set as current. Be aware that ShipyardSwap also may sell the old ship instead of storing it. { "eventName": "setCommanderShip", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "Asp", "shipGameID": 2, "starsystemName": "Sol", "stationName": "Abraham Lincoln" } }, { "eventName": "setCommanderShip", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "sidewinder", "shipGameID": 10, "isCurrentShip": true } }
setCommanderShipLoadout
Sets the ship loadout/configuration, including modules modifications. When no shipLoadout is set, it just resets the ship configuration.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
shipType | string | Ship type/name as is in the journals/cAPI (like: 'sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
shipLoadout | mixed | The list of modules on the ship, including their engineering data. Please see the input JSON example for the details, the property names should be self-explanatory. |
The 'isHot' property for the individual modules should be set by their properties in the journal or derived from the ship status. It is not mandatory, but it is better to set it.
The blueprint modifier, experimental effect and damage type names are same as in the journals.
The blueprint modifier, experimental effect and damage type names are same as in the journals.
{ "eventName": "setCommanderShipLoadout", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": { "shipType": "Federation_Corvette", "shipGameID": 7, "shipLoadout": [ { "slotName": "HugeHardpoint2", "itemName": "Hpt_MultiCannon_Gimbal_Huge", "itemValue": 5102080, "itemHealth": 1, "isOn": true, "isHot": false, "itemPriority": 2, "itemAmmoClip": 69, "itemAmmoHopper": 2100, "engineering": { "blueprintName": "Weapon_Overcharged", "blueprintLevel": 5, "blueprintQuality": 0, "experimentalEffect": "special_incendiary_rounds", "modifiers": [ { "name": "Integrity", "value": 95.420494000000005, "originalValue": 80, "lessIsGood": false }, { "name": "PowerDraw", "value": 1.1693199999999999, "originalValue": 1.22, "lessIsGood": true }, { "name": "DamagePerSecond", "value": 31.719926999999998, "originalValue": 23.299664, "lessIsGood": false }, { "name": "Damage", "value": 4.9583250000000003, "originalValue": 3.46, "lessIsGood": false }, { "name": "DistributorDraw", "value": 0.53331300000000004, "originalValue": 0.37, "lessIsGood": true }, { "name": "ThermalLoad", "value": 1.53, "originalValue": 0.51000000000000001, "lessIsGood": true }, { "name": "RateOfFire", "value": 3.1986530000000002, "originalValue": 3.367003, "lessIsGood": false }, { "name": "AmmoClipSize", "value": 69, "originalValue": 90, "lessIsGood": false }, { "name": "DamageType", "value": "$Thermic;" } ] } }, { "slotName": "Slot02_Size7", "itemName": "Int_ShieldCellBank_Size7_Class5", "itemValue": 8272137, "itemHealth": 0.84999999999999998, "isOn": true, "isHot": false, "itemPriority": 2, "itemAmmoClip": 1, "itemAmmoHopper": 4 }, { "slotName": "Slot03_Size7", "itemName": "Int_CargoRack_Size7_Class1", "itemValue": 1001657, "itemHealth": 1, "isOn": true, "isHot": false, "itemPriority": 1 } ] } }
{ "eventStatus": 200 }
setCommanderShipTransfer
Sets the ship's dock or transfer location. Set this just when the ship is not flown (the ship's dock location is not used otherwise). The ship Inara ID is returned.
Note: This event may handle multiple journal events or require multiple journal events. Please see Journal to JSON example for the details.
Properties marked as red are required.
Note: This event may handle multiple journal events or require multiple journal events. Please see Journal to JSON example for the details.
Property name | Property type | Description |
---|---|---|
shipType | string | Ship type/name as is in the journals/cAPI (like: 'sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
starsystemName | string | The name of the starsystem where is the ship docked or transferred to. |
stationName | string | The name of the station where is the ship docked or transferred to. |
marketID | integer | The market ID of the station. When provided, it is used as a primary location identifier. But, please always provide also the starsystemName and stationName (when known) for a case the market ID won't be found. |
transferTime | integer | Time of the ship transfer in seconds, is set just when the ship is transferred. |
{ "eventName": "setCommanderShipTransfer", "eventTimestamp": "2017-10-28T17:40:20Z", "eventData": { "shipType": "Sidewinder", "shipGameID": 7, "starsystemName": "Sol", "stationName": "Abraham Lincoln", "transferTime": 643 } }
{ "eventStatus": 200, "eventData": { "shipInaraID": 285788, "shipInaraURL": "https:\/\/inara.cz\/cmdr-fleet\/1\/285788\/" } }
Typical use is a ship transfer like the following event (journal example): { "timestamp":"2016-07-21T15:19:49Z", "event":"ShipyardTransfer", "ShipType":"SideWinder", "ShipID":7, "System":"Eranin", "Distance":85.639145, "TransferPrice":580, "TransferTime":2262 } It is translated to the following, the starsystem and station name is commander's current location (not the 'System' from the journals). You can handle the credits change separately in another event. { "eventName": "setCommanderShipTransfer", "eventTimestamp": "2016-07-21T15:19:49Z", "eventData": { "shipType": "Sidewinder", "shipGameID": 7, "starsystemName": "Sol", "stationName": "Abraham Lincoln", "transferTime": 2262 } }
Another case is the ship swapping in the journals: { "timestamp":"2016-07-21T14:36:06Z", "event":"ShipyardSwap", "ShipType":"sidewinder", "ShipID":10, "StoreOldShip":"Asp", "StoreShipID":2 } This event is translated to the following, where the old ship is docked and the new ship set as current. You can eventually also use 'setCommanderShip' for that. Be aware that ShipyardSwap also may sell the old ship instead of storing it. { "eventName": "setCommanderShipTransfer", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "Asp", "shipGameID": 2, "starsystemName": "Sol", "stationName": "Abraham Lincoln" } }, { "eventName": "setCommanderShip", "eventTimestamp": "2016-07-21T14:36:06Z", "eventData": { "shipType": "sidewinder", "shipGameID": 10, "isCurrentShip": true } }
Commander's suit loadouts
delCommanderSuitLoadout
Deletes the entire suit loadout.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
loadoutGameID | integer | Loadout game ID as is in the journals/cAPI. |
{ "eventName": "delCommanderSuitLoadout", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": { "loadoutGameID": 4293000001 } }
{ "eventStatus": 200 }
setCommanderSuitLoadout
Sets the suit loadout/configuration, including modules, upgrades and modifications. Used for the journal event with the entire loadout known, like SuitLoadout or CreateSuitLoadout.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
loadoutGameID | integer | Loadout game ID as is in the journals/cAPI. |
loadoutName | string | Custom loadout name. |
suitGameID | integer | Suit game ID as is in the journals/cAPI. |
suitType | string | Suit identifier as is in the journals/cAPI. |
suitMods | mixed | The list of suit modifications. Please see the input JSON example for the details. |
suitLoadout | mixed | The list of weapons in the suit slots, including their class and mods. Once again, please see the input JSON example for the details, the property names should be self-explanatory. |
{ "eventName": "setCommanderSuitLoadout", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": { "loadoutGameID": 4293000004, "loadoutName": "Scavenging", "suitType": "utilitysuit_class3", "suitGameID": 1700315870155528, "suitMods": [ "suit_backpackcapacity" ], "suitLoadout": [ { "slotName": "PrimaryWeapon1", "itemName": "wpn_m_sniper_plasma_charged", "itemClass": 4, "itemGameID": 1700214103674125 }, { "slotName": "SecondaryWeapon", "itemName": "wpn_s_pistol_plasma_charged", "itemClass": 3, "itemGameID": 1700711099271164, "engineering": [ { "blueprintName": "scope" }, { "blueprintName": "weapon_stability" } ] } ] } }
{ "eventStatus": 200 }
updateCommanderSuitLoadout
updates the suit loadout/configuration, including modules, upgrades and modifications. Used for journal events like loadout renaming, weapons swapping in the loadout, etc.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
loadoutGameID | integer | Loadout game ID as is in the journals/cAPI. |
loadoutName | string | Custom loadout name. |
suitGameID | integer | Suit game ID as is in the journals/cAPI. |
suitType | string | Suit identifier as is in the journals/cAPI. |
suitMods | mixed | The list of suit modifications. Please see the input JSON example for the details. |
suitLoadout | mixed | The list of weapons in the suit slots, including their class and mods. Once again, please see the input JSON example for the details, the property names should be self-explanatory. |
{ "eventName": "updateCommanderSuitLoadout", "eventTimestamp": "2018-01-27T17:30:49Z", "eventData": { "loadoutGameID": 4293000001, "loadoutName": "My loadout new name" } }
{ "eventStatus": 200 }
Commander's flight log
addCommanderTravelCarrierJump
Adds 'CarrierJump' event to the flight log and sets commander's current location. The starsystem ID on Inara is returned in the result, when known.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Target star system name (where player just jumped to) |
starsystemCoords | array | Star system coords [X,Y,Z] |
stationName | string | Carrier (station) name. |
marketID | integer | The market ID of the carrier/station. |
jumpDistance | float | Distance travelled in this jump in Ly (light years). It's not currently known in the respective journal event, so do not set it. |
shipType | string | Ship type as is in the journals/cAPI (like: 'Sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
{ "eventName": "addCommanderTravelCarrierJump", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "starsystemName": "Kokatese", "stationName": "A12-B3C", "shipType": "Sidewinder", "shipGameID": 2 } }
{ "eventStatus": 200, "eventData": { "starsystemInaraID": 18210, "starsystemInaraURL": "https:\/\/inara.cz\/galaxy-starsystem\/18210\/" } }
addCommanderTravelDock
Adds 'Docked' event to the flight log and sets commander's current location. The starsystem ID and station ID on Inara is returned in the result, when known.
Warning: There is recommended to NOT set Dock on the session start (after the 'Location' event in the journal), as it may generate a ton of 'docked' events and mess commander's flight log. There should be a proper 'dock' event already recorded from the previous session.
Properties marked as red are required.
Warning: There is recommended to NOT set Dock on the session start (after the 'Location' event in the journal), as it may generate a ton of 'docked' events and mess commander's flight log. There should be a proper 'dock' event already recorded from the previous session.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Star system name |
starsystemCoords | array | Star system coords [X,Y,Z] |
stationName | string | Station name |
marketID | integer | The market ID of the station. When provided, it is used as a primary location identifier. But, please always provide also the starsystemName and stationName (when known) for a case the market ID won't be found. |
starsystemBodyName | string | Star system body name the commander is landed on |
starsystemBodyCoords | array | Star system body coords [LAT,LON] |
shipType | string | Ship type as is in the journals/cAPI (like: 'Sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
isTaxiShuttle | boolean | Set when commander is travelling with the Apex shuttle. |
isTaxiDropship | boolean | Set when commander is travelling with the Frontline Solutions ship. |
{ "eventName": "addCommanderTravelDock", "eventTimestamp": "2017-10-28T17:30:50Z", "eventData": { "starsystemName": "Kokatese", "stationName": "Koontz Enterprise", "shipType": "Sidewinder", "shipGameID": 2 } }
{ "eventStatus": 200, "eventData": { "starsystemInaraID": 18210, "starsystemInaraURL": "https:\/\/inara.cz\/galaxy-starsystem\/18210\/", "stationInaraID": 54894, "stationInaraURL": "https:\/\/inara.cz\/galaxy-station\/54894\/", "marketInaraURL": "https:\/\/inara.cz\/market\/18210\/54894\/" } }
addCommanderTravelFSDJump
Adds 'FSDJump' event to the flight log and sets commander's current location. The starsystem ID on Inara is returned in the result, when known.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Target star system name (where player just jumped to) |
starsystemCoords | array | Star system coords [X,Y,Z] |
jumpDistance | float | Distance travelled in this jump in Ly (light years) |
shipType | string | Ship type as is in the journals/cAPI (like: 'Sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
isTaxiShuttle | boolean | Set when commander is travelling with the Apex shuttle. |
isTaxiDropship | boolean | Set when commander is travelling with the Frontline Solutions ship. |
{ "eventName": "addCommanderTravelFSDJump", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "starsystemName": "Kokatese", "starsystemCoords": [66.938,-32.344,-34.969], "jumpDistance": 10.28, "shipType": "Sidewinder", "shipGameID": 2 } }
{ "eventStatus": 200, "eventData": { "starsystemInaraID": 18210, "starsystemInaraURL": "https:\/\/inara.cz\/galaxy-starsystem\/18210\/" } }
addCommanderTravelLand
Adds 'Landed' event to the flight log and sets commander's current location. The starsystem ID on Inara is returned in the result, when known. Should correspond to the journal's Touchdown, DropShipDeploy and similar.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Star system name |
starsystemCoords | array | Star system coords [X,Y,Z] |
starsystemBodyName | string | Star system body name the commander landed on |
starsystemBodyCoords | array | Star system body coords [LAT,LON] |
shipType | string | Ship type as is in the journals/cAPI (like: 'Sidewinder') |
shipGameID | integer | Ship game ID as is in the journals/cAPI. |
isTaxiShuttle | boolean | Set when commander is travelling with the Apex shuttle. |
isTaxiDropship | boolean | Set when commander is travelling with the Frontline Solutions ship. |
{ "eventName": "addCommanderTravelLand", "eventTimestamp": "2017-10-28T17:30:50Z", "eventData": { "starsystemName": "Kokatese", "starsystemBodyName": "Kokatese A1", "shipType": "Sidewinder", "shipGameID": 2 } }
{ "eventStatus": 200, "eventData": { "starsystemInaraID": 18210, "starsystemInaraURL": "https:\/\/inara.cz\/galaxy-starsystem\/18210\/" } }
setCommanderTravelLocation
Sets commander's current location, no record to flight log is added. The starsystem ID and station ID on Inara is returned in the result, when known.
Properties marked as red are required.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Star system name |
starsystemCoords | array | Star system coords [X,Y,Z] |
stationName | string | Station name, if commander is docked in there. |
marketID | integer | The market ID of the station. When provided, it is used as a primary location identifier. But, please always provide also the starsystemName and stationName (when known) for a case the market ID won't be found. |
starsystemBodyName | string | Star system body name the commander is landed on |
starsystemBodyCoords | array | Star system body coords [LAT,LON] |
{ "eventName": "setCommanderTravelLocation", "eventTimestamp": "2017-10-28T17:30:50Z", "eventData": { "starsystemName": "Inara", "starsystemCoords": [-93.813,39.719,-86.156], "stationName": "Citi Gateway", "starsystemBodyName": "Someplanet", "starsystemCoords": [7.187274,104.715157], } }
{ "eventStatus": 200, "eventData": { "starsystemInaraID": 9333, "starsystemInaraURL": "https:\/\/inara.cz\/galaxy-starsystem\/9333\/", "stationInaraID": 13299, "stationInaraURL": "https:\/\/inara.cz\/galaxy-station\/13299\/", "marketInaraURL": "https:\/\/inara.cz\/market\/9333\/13299\/" } }
Commander's mission log
addCommanderMission
Adds a mission to the commander's mission log.
Please note that any mission items (courier/hauling missions) and rewards are not handled by this event and aren't added/removed to/from commander's inventory. These needs to be handled separately with events like 'addCommanderInventoryCargoItem' as the respective properties in this event are purely for the mission details displaying.
Handling the cargo for courier (and similar) missions isn't probably necessary, as it may be complicated sometimes (see Journal to JSON example), but it is up to you.
Properties marked as red are required.
Please note that any mission items (courier/hauling missions) and rewards are not handled by this event and aren't added/removed to/from commander's inventory. These needs to be handled separately with events like 'addCommanderInventoryCargoItem' as the respective properties in this event are purely for the mission details displaying.
Handling the cargo for courier (and similar) missions isn't probably necessary, as it may be complicated sometimes (see Journal to JSON example), but it is up to you.
Property name | Property type | Description |
---|---|---|
missionName | string | Mission name/identifier as is in the journals (like: 'Mission_Massacre_Legal_Military'). |
missionGameID | string | Mission game ID from the journals. |
missionExpiry | timestamp | Mission expiry date and time in ISO 8601 format. |
influenceGain | string | Influence gain when mission is completed as is in the journals ('+' to '+++++'). |
reputationGain | string | Reputation gain when mission is completed, same format as the 'influenceGain'. |
starsystemNameOrigin | string | The starsystem name where the mission was accepted (this information needs to be based on commander's previously known location, for example from the 'Docked' journal event). |
stationNameOrigin | string | The station name where the mission was accepted. It needs to be gathered the same way as 'starsystemNameOrigin'. |
minorfactionNameOrigin | string | The minor faction name for which is the mission accepted. |
starsystemNameTarget | string | Destination star system name (if any). There is possible to send the multiple destinations string format as is in the journals like 'Brohman$MISSIONUTIL_MULTIPLE_FINAL_SEPARATOR;Reorte'. In these cases the first starsystem is used and the rest is stripped. |
stationNameTarget | string | Destination station name (if any). |
minorfactionNameTarget | string | Target minor faction name. |
commodityName | string | Commodity name as is in the journals (typically courier missions). |
commodityCount | integer | Commodity count. |
targetName | string | Target NPC name/identifier |
targetType | string | Target type/identifier as is in the journals (like: '$MissionUtil_FactionTag_Pirate;') |
killCount | integer | Kill count. |
passengerType | string | Passenger type as is in the journals (like: 'Tourists'). |
passengerCount | integer | Passenger count. |
passengerIsVIP | boolean | Set when passenger is VIP |
passengerIsWanted | boolean | Set when passenger is wanted. |
Although most of the event properties aren't required, there is recommended to set as much relevant properties as possible. Otherwise commander's mission log entries will be very brief or unusable.
{ "eventName": "addCommanderMission", "eventTimestamp": "2017-10-16T14:54:54Z", "eventData": { "missionName": "Mission_Massacre_Legal_Military", "missionGameID": 170577201, "missionExpiry": "2017-10-18T10:48:33Z", "influenceGain": "+++++", "reputationGain": "+++", "starsystemNameOrigin": "Inara", "stationNameOrigin": "Koontz Port", "minorfactionNameOrigin": "Inara Crimson Vision Network", "starsystemNameTarget": "HIP 15415", "stationNameTarget": "Bisson Landing", "minorfactionNameTarget": "Social Warnones Resistance", "targetType": "$MissionUtil_FactionTag_Pirate;", "killCount": 16 } }
{ "eventStatus": 200 }
The journal entry: { "timestamp":"2017-10-19T23:29:22Z", "event":"MissionAccepted", "Faction":"People's HIP 15415 League", "Name":"Mission_PassengerVIP", "Commodity":"$ConsumerTechnology_Name;", "Commodity_Localised":"Consumer Technology", "Count":2, "DestinationSystem":"Tougeir", "DestinationStation":"Janes Dock", "Expiry":"2017-07-20T01:06:32Z", "Influence":"+++", "Reputation":"+++++", "PassengerCount":6, "PassengerVIPs":true, "PassengerWanted":false, "PassengerType":"Tourist", "MissionID":173224636 } ...translates to input JSON the following way. Please note that there is commodityName and commodityCount, although it is a purely passenger mission. These commodities are a mission reward and are awarded upon the mission completion (see 'setCommanderMissionComplete' event for the details), but from some reason are also there. If do you want to handle the mission cargo, these cases needs to be properly handled as well. { "eventName": "addCommanderMission", "eventTimestamp": "2017-10-19T23:29:22Z", "eventData": { "missionName": "Mission_PassengerVIP", "missionGameID": 173224636, "missionExpiry": "2017-10-20T01:06:32Z", "influenceGain": "+++", "reputationGain": "+++++", "starsystemNameOrigin": "Inara", "stationNameOrigin": "Koontz Port", "minorfactionNameOrigin": "People's HIP 15415 League", "starsystemNameTarget": "Tougeir", "stationNameTarget": "Janes Dock", "commodityName": "$ConsumerTechnology_Name;", "commodityCount": 2, "passengerType": "Tourist", "passengerCount": 6, "passengerIsVIP": true } } Another journal entry: { "timestamp":"2017-10-16T14:54:54Z", "event":"MissionAccepted", "Faction":"Inara Crimson Vision Network", "Name":"Mission_Massacre_Legal_Military", "TargetType":"$MissionUtil_FactionTag_Pirate;", "TargetType_Localised":"Pirates", "TargetFaction":"Social Warnones Resistance", "KillCount":16, "DestinationSystem":"HIP 15415", "DestinationStation":"Bisson Landing", "Expiry":"2017-07-18T10:48:33Z", "Influence":"+++++", "Reputation":"+++", "MissionID":170577201 } ... is pretty straightforward and translates to: { "eventName": "addCommanderMission", "eventTimestamp": "2017-10-16T14:54:54Z", "eventData": { "missionName": "Mission_Massacre_Legal_Military", "missionGameID": 170577201, "missionExpiry": "2017-10-18T10:48:33Z", "influenceGain": "+++++", "reputationGain": "+++", "starsystemNameOrigin": "Inara", "stationNameOrigin": "Koontz Port", "minorfactionNameOrigin": "Inara Crimson Vision Network", "starsystemNameTarget": "HIP 15415", "stationNameTarget": "Bisson Landing", "minorfactionNameTarget": "Social Warnones Resistance", "targetType": "$MissionUtil_FactionTag_Pirate;", "killCount": 16 } }
setCommanderMissionAbandoned
Sets the mission as abandoned.
Please note that any mission items (courier/hauling missions) are not handled by this event and you will eventually need to remove the mission items from the commander's cargo and re-add them as stolen.
Properties marked as red are required.
Please note that any mission items (courier/hauling missions) are not handled by this event and you will eventually need to remove the mission items from the commander's cargo and re-add them as stolen.
Property name | Property type | Description |
---|---|---|
missionGameID | string | Mission game ID from the journals. |
{ "eventName": "setCommanderMissionAbandoned", "eventTimestamp": "2017-10-27T23:28:19Z", "eventData": { "missionGameID": 171735583 } }
{ "eventStatus": 200 }
setCommanderMissionCompleted
Sets the mission as completed.
Please note that any mission items (courier/hauling missions) and rewards are not handled by this event and are purely for the diplay purposes. You will eventually need to remove the mission items from the commander's cargo and also properly adjust credits, awarded commodities and permits to the commander in the separate events (setCommanderInventoryCargoItem, setCommanderCredits, etc.).
Properties marked as red are required.
Please note that any mission items (courier/hauling missions) and rewards are not handled by this event and are purely for the diplay purposes. You will eventually need to remove the mission items from the commander's cargo and also properly adjust credits, awarded commodities and permits to the commander in the separate events (setCommanderInventoryCargoItem, setCommanderCredits, etc.).
Property name | Property type | Description |
---|---|---|
missionGameID | string | Mission game ID from the journals. |
donationCredits | integer | Credits donated to fulfill the mission. |
rewardCredits | integer | Credits received as a reward. |
rewardPermits | array | Rewarded permits as array of starsystemNames, see input JSON example. |
rewardCommodities | array | Rewarded commodities as array of itemNames and itemCounts, see input JSON example. |
rewardMaterials | array | Rewarded materials/data as array of itemNames and itemCounts, see input JSON example. |
minorfactionEffects | array | Changes to minor faction influences and reputations, based on the mission reward selected. See input JSON example for more details. |
{ "eventName": "setCommanderMissionCompleted", "eventTimestamp": "2017-10-27T23:28:19Z", "eventData": { "missionGameID": 171735583, "rewardCredits": 12000, "rewardPermits": [ { "starsystemName": "Alioth" }, { "starsystemName": "Polaris" } ], "rewardCommodities": [ { "itemName": "NeofabricInsulation", "itemCount": 4 }, { "itemName": "Bromellite", "itemCount": 2 } ], "rewardMaterials": [ { "itemName": "Arsenic", "itemCount": 2 } ], "minorfactionEffects": [ { "minorfactionName": "Inara Nexus", "influenceGain": "++++", "reputationGain": "++" }, { "minorfactionName": "Inara Transport Inc", "influenceGain": "+++", "reputationGain": "+" } ] } }
{ "eventStatus": 200 }
setCommanderMissionFailed
Sets the mission as failed.
Please note that any mission items (courier/hauling missions) are not handled by this event and you will eventually need to remove the mission items from the commander's cargo and re-add them as stolen.
Properties marked as red are required.
Please note that any mission items (courier/hauling missions) are not handled by this event and you will eventually need to remove the mission items from the commander's cargo and re-add them as stolen.
Property name | Property type | Description |
---|---|---|
missionGameID | string | Mission game ID from the journals. |
{ "eventName": "setCommanderMissionFailed", "eventTimestamp": "2017-10-27T23:28:19Z", "eventData": { "missionGameID": 171735583 } }
{ "eventStatus": 200 }
Commander's combat log
addCommanderCombatDeath
Adds a 'death/died' record to commander's combat log.
Note: This event won't work without a 'commanderName' in the header set.
Properties marked as red are required.
Note: This event won't work without a 'commanderName' in the header set.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem where the incident happened. |
opponentName | string | Name of the killer (commander or NPC). |
wingOpponentNames | array | List of killer names, when the commander was killed by wing (see JSON input example for details). |
isPlayer | boolean | Set when you know the killer was player. If you don't know for sure, set nothing and Inara will try to decide who the killer was. As journals doesn't contain this flag in Died events, it may be easier to leave it simply to Inara. |
Although 'opponentName' and 'wingOpponentNames' are not required, there should be one of them set, depending if the commander was killed by single player/NPC or by wing. If no names are provided (the ship was destroyed by collision), the record is accepted but not added (it is not part of the combat).
Killed by NPC: { "eventName": "addCommanderCombatDeath", "eventTimestamp": "2017-10-28T17:31:20Z", "eventData": { "starsystemName": "Lave", "opponentName": "$ShipName_MilitaryFighter_Federation;" } } Killed by single player: { "eventName": "addCommanderCombatDeath", "eventTimestamp": "2017-10-28T17:31:50Z", "eventData": { "starsystemName": "Lave", "opponentName": "Cmdr Mydlivoj Tydlitat" } } Killed by wing of players: { "eventName": "addCommanderCombatDeath", "eventTimestamp": "2017-10-28T17:32:45Z", "eventData": { "starsystemName": "Lave", "wingOpponentNames": [ "Cmdr Narkoleptik", "Cmdr Almara Potrhla", "Cmdr Jason Vyvoneny" ] } }
{ "eventStatus": 200 }
addCommanderCombatInterdicted
Adds an 'interdicted' record to commander's combat log (when he was interdicted and didn't managed to escape).
Note: This event won't work without a 'commanderName' in the header set.
Properties marked as red are required.
Note: This event won't work without a 'commanderName' in the header set.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem where the interdiction happened. |
opponentName | string | Name of the interdictor (commander or NPC). If there is no 'Indertictor' property in the journal event, use just 'Power' or 'Faction' property instead. |
isPlayer | boolean | Set when you know the interdictor was player. The journal contains this flag in interdiction events, so you can use it. |
isSubmit | boolean | Set when commander submitted to the interdiction. |
{ "eventName": "addCommanderCombatInterdicted", "eventTimestamp": "2017-10-28T17:37:10Z", "eventData": { "starsystemName": "Lave", "opponentName": "White Rabbit Revenger", "isPlayer": true, "isSubmit": true } }
{ "eventStatus": 200 }
addCommanderCombatInterdiction
Adds an 'interdiction' record to commander's combat log (when he tried to interdict someone).
Note: This event won't work without a 'commanderName' in the header set.
Properties marked as red are required.
Note: This event won't work without a 'commanderName' in the header set.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem where the interdiction happened. |
opponentName | string | Name of the target (commander or NPC). If there is no 'Inderticted' property in the journal event, use just 'Power' or 'Faction' property instead. |
isPlayer | boolean | Set when you know the target was player. The journal contains this flag in interdiction events, so you can use it. |
isSuccess | boolean | Set when the interdiction was successful. |
{ "eventName": "addCommanderCombatInterdiction", "eventTimestamp": "2017-10-28T17:35:20Z", "eventData": { "starsystemName": "Lave", "opponentName": "Mad White Rabbit", "isPlayer": true, "isSuccess": true } }
{ "eventStatus": 200 }
addCommanderCombatInterdictionEscape
Adds an 'interdiction escaped' record to commander's combat log (when he was interdicted but managed to escape).
Note: This event won't work without a 'commanderName' in the header set.
Properties marked as red are required.
Note: This event won't work without a 'commanderName' in the header set.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem where the interdiction happened. |
opponentName | string | Name of the interdictor (commander or NPC). |
isPlayer | boolean | Set when you know the interdictor was player. The journal contains this flag in interdiction events, so you can use it. |
{ "eventName": "addCommanderCombatInterdictionEscape", "eventTimestamp": "2017-10-28T17:36:40Z", "eventData": { "starsystemName": "Lave", "opponentName": "White Rabbit Revenger", "isPlayer": true } }
{ "eventStatus": 200 }
addCommanderCombatKill
Adds a 'kill' record to commander's combat log (when he killed someone). Currently, it records just player/PvP kills, so ensure there are just PvP kills sent ('PVPKill' event in the journals).
Note: This event won't work without a 'commanderName' in the header set.
Properties marked as red are required.
Note: This event won't work without a 'commanderName' in the header set.
Property name | Property type | Description |
---|---|---|
starsystemName | string | Name of the starsystem where the kill happened. |
opponentName | string | Name of the victim (commander). |
{ "eventName": "addCommanderCombatKill", "eventTimestamp": "2017-10-28T17:38:20Z", "eventData": { "starsystemName": "Lave", "opponentName": "Cmdr White Rabbit Revenger" } }
{ "eventStatus": 200 }
Community goals
getCommunityGoalsRecent
Returns details of ongoing or recently finished community goals as are recorded on Inara.
This event can be used with the generic API key.
This event can be used with the generic API key.
No properties to set (but eventData is still required).
{ "eventName": "getCommunityGoalsRecent", "eventTimestamp": "2017-11-06T23:32:17+01:00", "eventData": [] }
{ "eventStatus": 200, "eventData": [ { "communitygoalName": "Operation Andronicus", "starsystemName": "Pleiades Sector IR-W d1-55", "stationName": "The Oracle", "goalExpiry": "2017-11-09T16:00:00+01:00", "tierReached": 4, "tierMax": 0, "contributorsNum": 408, "contributionsTotal": 2838230000, "isCompleted": false, "lastUpdate": "2017-11-08T14:10:05+01:00", "goalObjectiveText": "Hand in Pilots Federation Combat Bonds", "goalRewardText": "", "goalDescriptionText": "With Thargoid attacks becoming a regular occurrence in the Pleiades Nebula, Aegis has leveraged its considerable reserves to fund a military operation in the Pleiades Sector IR-W d1-55. The initiative, dubbed \u2018Operation Andronicus\u2019, has been expressly conceived to counter Thargoid aggression in the region.\r\n\r\nAdmiral Aden Tanner, Aegis\u2019s chief military liaison, elaborated on the nature of the initiative:\r\nPersonal-scale craft are particularly effective against Thargoid vessels, not least because of the comparative vulnerability of capital-class ships. I therefore believe the most effective way to address the Thargoid threat \u2013 in the short term at least \u2013 is a militia of seasoned combat pilots. Aegis has agreed to finance this initiative, which will aim to deliver a strategic blow to the Thargoids in the Pleiades Sector IR-W d1-55.\r\n\r\nAegis Research has confirmed that it will reward pilots who hand in Pilots Federation Combat Bonds at The Oracle in the Pleiades Sector IR-W d1-55.", "inaraURL": "https:\/\/inara.cz\/galaxy-communitygoals\/" }, { "communitygoalName": "Rescue Operation in the Pleiades", "starsystemName": "Pleiades Sector IR-W d1-55", "stationName": "The Oracle", "goalExpiry": "2017-11-09T16:00:00+01:00", "tierReached": 6, "tierMax": 0, "contributorsNum": 2038, "contributionsTotal": 40001, "isCompleted": true, "lastUpdate": "2017-11-08T05:04:11+01:00", "goalObjectiveText": "Deliver Occupied Escape Pods, Damaged Escape Pods, Black Boxes and Personal Effects", "goalRewardText": "", "goalDescriptionText": "Cooper Research Associates have launched a rescue operation to recover personal effects, data and people from Thargoid attack sites in the Pleiades Nebula.\r\n\r\nThe organisation has promised to reward pilots who deliver Occupied Escape Pods, Damaged Escape Pods, Black Boxes and Personal Effects to the search-and-rescue contact at The Oracle in the Pleiades Sector IR-W d1-55 system.\r\n\r\nA spokesperson for Cooper Research Associates released a brief statement:\r\nEyewitnesses have reported that Thargoid vessels are taking occupied escape pods from ships they have attacked. It is therefore essential that we recover any and all individuals from these attack sites before they can be similarly abducted.", "inaraURL": "https:\/\/inara.cz\/galaxy-communitygoals\/" } ] }
setCommanderCommunityGoalProgress
Sets community goal progress for individual commander.
Note that CommunityGoal event in the journals may contain multiple goals at once and those needs to be set separately. See also 'setCommunityGoal' event which is recommended to set before this event and Journal to JSON example for details.
Properties marked as red are required.
Note that CommunityGoal event in the journals may contain multiple goals at once and those needs to be set separately. See also 'setCommunityGoal' event which is recommended to set before this event and Journal to JSON example for details.
Property name | Property type | Description |
---|---|---|
communitygoalGameID | integer | Community goal game ID. |
contribution | integer | Commander's contribution to the goal. |
percentileBand | integer | Commander's percentile band in a range [0-100]. |
percentileBandReward | integer | Commander's reward for this percentile band. |
isTopRank | boolean | Set when commander is in top rank (Top XX CMDRs). |
{ "eventName": "setCommanderCommunityGoalProgress", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "communitygoalGameID": 428, "contribution": 123500, "percentileBand": 75, "percentileBandReward": 600000, "isTopRank": false } }
{ "eventStatus": 200 }
Journal record (taken from the journal manual): { "timestamp":"2017-08-14T13:20:28Z", "event":"CommunityGoal", "CurrentGoals":[ { "CGID":726, "Title":"Alliance Research Initiative ÔÇô Trade", "SystemName":"Kaushpoos", "MarketName":"Neville Horizons", "Expiry":"2017-08-17T14:58:14Z", "IsComplete":false, "CurrentTotal":10062, "PlayerContribution":562, "NumContributors":101, "TopRankSize":10, "PlayerInTopRank":false, "TierReached":"Tier 1", "PlayerPercentileBand":50, "Bonus":200000 } ] } Translates to following input data (please note that 'tierMax' is not set as it is missing in the journals at this moment): { "eventName": "setCommunityGoal", "eventTimestamp": "2017-08-14T13:20:28Z", "eventData": { "communitygoalGameID": 726, "communitygoalName": "Alliance Research Initiative ÔÇô Trade", "starsystemName": "Kaushpoos", "stationName": "Neville Horizons", "tierReached": 1, "topRankSize": 10, "goalExpiry": "2017-08-17T14:58:14Z", "isCompleted": false, "contributorsNum": 101, "contributionsTotal": 10062 } }, { "eventName": "setCommanderCommunityGoalProgress", "eventTimestamp": "2017-08-14T13:20:28Z", "eventData": { "communitygoalGameID": 726, "contribution": 562, "percentileBand": 50, "percentileBandReward": 200000, "isTopRank": false } }
setCommunityGoal
Sets community goal properties. If no goal is found, it is automatically added.
Please note that CommunityGoal event in the journals may contain multiple goals at once and those needs to be set separately. Also, the journal entry contains the player's contributions and these must be added separately in the 'setCommanderCommunityGoalProgress' event, see Journal to JSON example for details.
This event makes no action when the development mode is set.
Properties marked as red are required.
Please note that CommunityGoal event in the journals may contain multiple goals at once and those needs to be set separately. Also, the journal entry contains the player's contributions and these must be added separately in the 'setCommanderCommunityGoalProgress' event, see Journal to JSON example for details.
This event makes no action when the development mode is set.
Property name | Property type | Description |
---|---|---|
communitygoalGameID | integer | Community goal game ID. |
communitygoalName | string | Name of the community goal (non-localized, in english). |
starsystemName | string | Name of the starsystem where the goal is happening. |
stationName | string | Station name where the goal is happening. |
goalExpiry | timestamp | Gpal expiration/end date in ISO 8601 format. |
tierReached | integer | Tier reached, beware that journals contain this value as 'Tier X', so the word 'Tier' needs to be stripped and 'X' converted to integer |
tierMax | integer | Max. tier of the goal. |
topRankSize | integer | Top rank size of the goal (Top XX CMDRs). |
isCompleted | boolean | Set when the goal is already completed. |
contributorsNum | integer | Total number of contributors (count of commanders participating). |
contributionsTotal | integer | Total number of all contributions. |
completionBonus | string | Bonus on goal completion. |
{ "eventName": "setCommunityGoal", "eventTimestamp": "2017-10-28T17:30:49Z", "eventData": { "communitygoalGameID": 428, "communitygoalName": "Conflict in Colonia - Colonia Council", "starsystemName": "Colonia", "stationName": "Jaques Station", "goalExpiry": "2017-10-29T18:00:00Z", "tierReached": 2, "tierMax": 8, "topRankSize": 10, "isCompleted": false, "contributorsNum": 1458, "contributionsTotal": 1568756 } }
{ "eventStatus": 200 }
Journal record (taken from the journal manual): { "timestamp":"2017-08-14T13:20:28Z", "event":"CommunityGoal", "CurrentGoals":[ { "CGID":726, "Title":"Alliance Research Initiative ÔÇô Trade", "SystemName":"Kaushpoos", "MarketName":"Neville Horizons", "Expiry":"2017-08-17T14:58:14Z", "IsComplete":false, "CurrentTotal":10062, "PlayerContribution":562, "NumContributors":101, "TopRankSize":10, "PlayerInTopRank":false, "TierReached":"Tier 1", "PlayerPercentileBand":50, "Bonus":200000 } ] } Translates to following input data (please note that 'tierMax' is not set as it is missing in the journals at this moment): { "eventName": "setCommunityGoal", "eventTimestamp": "2017-08-14T13:20:28Z", "eventData": { "communitygoalGameID": 726, "communitygoalName": "Alliance Research Initiative ÔÇô Trade", "starsystemName": "Kaushpoos", "stationName": "Neville Horizons", "tierReached": 1, "topRankSize": 10, "goalExpiry": "2017-08-17T14:58:14Z", "isCompleted": false, "contributorsNum": 101, "contributionsTotal": 10062 } }, { "eventName": "setCommanderCommunityGoalProgress", "eventTimestamp": "2017-08-14T13:20:28Z", "eventData": { "communitygoalGameID": 726, "contribution": 562, "percentileBand": 50, "percentileBandReward": 200000, "isTopRank": false } }
API events list
addCommanderFrienddelCommanderFriendgetCommanderProfileaddCommanderPermitsetCommanderCreditssetCommanderGameStatisticssetCommanderRankEngineersetCommanderRankPilotsetCommanderRankPowersetCommanderReputationMajorFactionsetCommanderReputationMinorFactionaddCommanderInventoryItemdelCommanderInventoryItemresetCommanderInventorysetCommanderInventorysetCommanderInventoryItemaddCommanderInventoryCargoItemaddCommanderInventoryMaterialsItemdelCommanderInventoryCargoItemdelCommanderInventoryMaterialsItemsetCommanderInventoryCargosetCommanderInventoryCargoItemsetCommanderInventoryMaterialssetCommanderInventoryMaterialsItemsetCommanderStorageModulesaddCommanderShipdelCommanderShipsetCommanderShipsetCommanderShipLoadoutsetCommanderShipTransferdelCommanderSuitLoadoutsetCommanderSuitLoadoutupdateCommanderSuitLoadoutaddCommanderTravelCarrierJumpaddCommanderTravelDockaddCommanderTravelFSDJumpaddCommanderTravelLandsetCommanderTravelLocationaddCommanderMissionsetCommanderMissionAbandonedsetCommanderMissionCompletedsetCommanderMissionFailedaddCommanderCombatDeathaddCommanderCombatInterdictedaddCommanderCombatInterdictionaddCommanderCombatInterdictionEscapeaddCommanderCombatKillgetCommunityGoalsRecentsetCommanderCommunityGoalProgresssetCommunityGoal