Created
March 3, 2026 12:51
-
-
Save iaincollins/a6b0df68e01fa1a8c7a142e46f48c27f to your computer and use it in GitHub Desktop.
Ardent API Open API Spec (Draft)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "openapi": "3.0.0", | |
| "info": { | |
| "title": "Ardent API", | |
| "description": "The Ardent API provides access to data submitted to the Elite Dangerous Data Network and is stored by the Ardent Collector. It provides an interface to look up location data for over 150,000,000 star systems and tracks millions of buy and sell orders for trade commodities.", | |
| "version": "2.0.0", | |
| "contact": { | |
| "name": "Ardent Insight", | |
| "url": "https://ardent-insight.com" | |
| } | |
| }, | |
| "servers": [ | |
| { | |
| "url": "https://api.ardent-insight.com/v2", | |
| "description": "Production" | |
| }, | |
| { | |
| "url": "http://localhost:3001/api/v2", | |
| "description": "Localhost" | |
| } | |
| ], | |
| "tags": [ | |
| { | |
| "name": "General", | |
| "description": "General API information and statistics" | |
| }, | |
| { | |
| "name": "Search", | |
| "description": "Search for systems and stations" | |
| }, | |
| { | |
| "name": "Market by ID", | |
| "description": "Look up markets (stations)" | |
| }, | |
| { | |
| "name": "Commodities", | |
| "description": "Retrieve commodity information" | |
| }, | |
| { | |
| "name": "System by address", | |
| "description": "Retrieve information about star systems by unique 64-bit address" | |
| }, | |
| { | |
| "name": "System by name", | |
| "description": "Retrieve information about star systems by system name" | |
| } | |
| ], | |
| "paths": { | |
| "/version": { | |
| "get": { | |
| "tags": [ | |
| "General" | |
| ], | |
| "summary": "Get Ardent API software version", | |
| "description": "Returns the current version of the Ardent API software.", | |
| "operationId": "getVersion", | |
| "responses": { | |
| "200": { | |
| "description": "Successful response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "example": "2.1.0" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/stats": { | |
| "get": { | |
| "tags": [ | |
| "General" | |
| ], | |
| "summary": "Get general database statistics", | |
| "description": "Returns statistics for the current databases, updated every 15 minutes.", | |
| "operationId": "getStats", | |
| "responses": { | |
| "200": { | |
| "description": "Successful response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/DatabaseStats" | |
| }, | |
| "example": { | |
| "starSystems": 102694411, | |
| "tradeSystems": 16419, | |
| "tradeStations": 42695, | |
| "tradeCarriers": 5360, | |
| "tradeOrders": 10773236, | |
| "tradeUpdatesInLast24Hours": 563215, | |
| "tradeUpdatesInLast7Days": 2475140, | |
| "tradeUpdatesInLast30Days": 7234476 | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/stats/stations/economies": { | |
| "get": { | |
| "tags": [ | |
| "General" | |
| ], | |
| "summary": "Get station economy statistics", | |
| "description": "Returns statistics related to station economies.", | |
| "operationId": "getStationEconomiesStats", | |
| "responses": { | |
| "200": { | |
| "description": "Successful response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/StationEconomyStats" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/stats/stations/types": { | |
| "get": { | |
| "tags": [ | |
| "General" | |
| ], | |
| "summary": "Get station type statistics", | |
| "description": "Returns statistics related to station types.", | |
| "operationId": "getStationTypesStats", | |
| "responses": { | |
| "200": { | |
| "description": "Successful response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/StationTypeStats" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/search/system/name/{systemName}": { | |
| "get": { | |
| "tags": [ | |
| "Search" | |
| ], | |
| "summary": "Search for a system by name", | |
| "description": "Returns a list of systems. Useful for finding ambiguously named systems.", | |
| "operationId": "searchSystemByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "A partial system name to search for", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of systems that match the search term", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SystemSearchResult" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/search/station/name/{stationName}": { | |
| "get": { | |
| "tags": [ | |
| "Search" | |
| ], | |
| "summary": "Search for a station by name", | |
| "description": "Returns a list of stations.", | |
| "operationId": "searchStationByName", | |
| "parameters": [ | |
| { | |
| "name": "stationName", | |
| "in": "path", | |
| "description": "A partial station name to search for", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of stations that match the search term", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/StationSearchResult" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/market/{marketId}": { | |
| "get": { | |
| "tags": [ | |
| "Market by ID" | |
| ], | |
| "summary": "Get information about a market by ID", | |
| "description": "Returns information about a specific market", | |
| "operationId": "getMarketById", | |
| "parameters": [ | |
| { | |
| "name": "marketId", | |
| "in": "path", | |
| "description": "The unique market ID", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Information for a specific market", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/Market" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/market/{marketId}/commodity/name/{commodityName}": { | |
| "get": { | |
| "tags": [ | |
| "Market by ID" | |
| ], | |
| "summary": "Get trade data for a commodity in a specific market", | |
| "description": "Returns information about a specific commodity for a specific market, useful for rare goods.", | |
| "operationId": "getMarketCommodity", | |
| "parameters": [ | |
| { | |
| "name": "marketId", | |
| "in": "path", | |
| "description": "The unique market ID", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Trade data for the commodity in the specified market", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityTradeData" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/commodities": { | |
| "get": { | |
| "tags": [ | |
| "Commodities" | |
| ], | |
| "summary": "Get all traded commodities report", | |
| "description": "Returns a report of all known traded commodities, their price ranges (min/max/avg) and the total supply and demand for each. This report excludes data from Fleet Carriers and is updated daily.", | |
| "operationId": "getCommoditiesReport", | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodity reports", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/CommodityReport" | |
| } | |
| }, | |
| "example": [ | |
| { | |
| "commodityName": "gold", | |
| "maxBuyPrice": 59797, | |
| "minBuyPrice": 3979, | |
| "avgBuyPrice": 44441, | |
| "totalStock": 73016533, | |
| "maxSellPrice": 70761, | |
| "minSellPrice": 3978, | |
| "avgSellPrice": 48259, | |
| "totalDemand": 1899662825 | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/commodity/name/{commodityName}": { | |
| "get": { | |
| "tags": [ | |
| "Commodities" | |
| ], | |
| "summary": "Get information for a single commodity", | |
| "description": "Returns a summary report for a specific commodity.", | |
| "operationId": "getCommodityByName", | |
| "parameters": [ | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Summary report for the commodity", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityReport" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/commodity/name/{commodityName}/imports": { | |
| "get": { | |
| "tags": [ | |
| "Commodities" | |
| ], | |
| "summary": "Get importers for a commodity", | |
| "description": "Returns a list of places where you can sell a commodity, ordered by the highest price they are willing to pay. Returns the best 100 results.", | |
| "operationId": "getCommodityImporters", | |
| "parameters": [ | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "minPrice", | |
| "in": "query", | |
| "description": "Minimum price for the commodity (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of places importing the commodity", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/commodity/name/{commodityName}/exports": { | |
| "get": { | |
| "tags": [ | |
| "Commodities" | |
| ], | |
| "summary": "Get exporters for a commodity", | |
| "description": "Returns a list of places where you can buy a commodity, ordered by the lowest price. Returns the best 100 results.", | |
| "operationId": "getCommodityExporters", | |
| "parameters": [ | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "maxPrice", | |
| "in": "query", | |
| "description": "Maximum price for the commodity (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of places exporting the commodity", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get information for a system by address", | |
| "description": "Returns information about a specific star system by its unique 64-bit address.", | |
| "operationId": "getSystemByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Information about the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/System" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/nearby": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get a list of nearby systems by address", | |
| "description": "Returns a list of up to 1000 nearby systems, ordered by distance from the specified system address.", | |
| "operationId": "getNearbySystemsByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby systems", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SystemList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/nearest/{service}": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Find the nearest station service by address", | |
| "description": "Finds the 20 nearest stations providing a specific service from a given system address, ordered by distance. A minimum landing pad size can be specified.", | |
| "operationId": "getNearestServiceByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "service", | |
| "in": "path", | |
| "description": "The service to search for", | |
| "required": true, | |
| "schema": { | |
| "type": "string", | |
| "enum": [ | |
| "interstellar-factors", | |
| "material-trader", | |
| "technology-broker", | |
| "black-market", | |
| "universal-cartographics", | |
| "refuel", | |
| "repair", | |
| "shipyard", | |
| "outfitting", | |
| "search-and-rescue" | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "minLandingPadSize", | |
| "in": "query", | |
| "description": "Minimum landing pad size (1 = small, 2 = medium, 3 = large) (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1, | |
| "enum": [ | |
| 1, | |
| 2, | |
| 3 | |
| ] | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby stations with the specified service", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/StationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodities": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get all traded commodities in a system by address", | |
| "description": "Returns a list of all known trade orders within a system specified by its address.", | |
| "operationId": "getSystemCommoditiesByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities traded in the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodities/imports": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get commodities imported by a system by address", | |
| "description": "Returns a list of all known commodities imported by a system, specified by address, ordered by commodity name.", | |
| "operationId": "getSystemImportsByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "minPrice", | |
| "in": "query", | |
| "description": "Minimum price for the commodity (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities imported by the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodities/exports": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get commodities exported by a system by address", | |
| "description": "Returns a list of all known commodities exported by a system, specified by address, ordered by commodity name.", | |
| "operationId": "getSystemExportsByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "maxPrice", | |
| "in": "query", | |
| "description": "Maximum price for the commodity (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities exported by the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodity/name/{commodityName}": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get trade data for a commodity in a system by address", | |
| "description": "Returns all buy/sell orders for a specific commodity within a system, specified by address.", | |
| "operationId": "getSystemCommodityByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Trade data for the commodity in the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityTradeData" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodity/name/{commodityName}/nearby/imports": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get nearby importers of a commodity by address", | |
| "description": "Returns a list of up to 1000 nearby places importing a commodity, ordered by highest price, from a given system address.", | |
| "operationId": "getNearbyCommodityImportersByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "minPrice", | |
| "in": "query", | |
| "description": "Minimum price for the commodity (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby importers", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityStationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/address/{systemAddress}/commodity/name/{commodityName}/nearby/exports": { | |
| "get": { | |
| "tags": [ | |
| "System by address" | |
| ], | |
| "summary": "Get nearby exporters of a commodity by address", | |
| "description": "Returns a list of up to 1000 nearby places exporting a commodity, ordered by lowest price, from a given system address.", | |
| "operationId": "getNearbyCommodityExportersByAddress", | |
| "parameters": [ | |
| { | |
| "name": "systemAddress", | |
| "in": "path", | |
| "description": "The unique numeric 64-bit address for a system", | |
| "required": true, | |
| "schema": { | |
| "type": "integer" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "maxPrice", | |
| "in": "query", | |
| "description": "Maximum price for the commodity (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby exporters", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityStationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get information for a system by name", | |
| "description": "Returns information about a specific star system by its name.", | |
| "operationId": "getSystemByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Information about the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/System" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/nearby": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get a list of nearby systems by name", | |
| "description": "Returns a list of up to 1000 nearby systems, ordered by distance from the specified system name.", | |
| "operationId": "getNearbySystemsByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby systems", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SystemList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/nearest/{service}": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Find the nearest station service by name", | |
| "description": "Finds the 20 nearest stations providing a specific service from a given system name, ordered by distance. A minimum landing pad size can be specified.", | |
| "operationId": "getNearestServiceByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "service", | |
| "in": "path", | |
| "description": "The service to search for", | |
| "required": true, | |
| "schema": { | |
| "type": "string", | |
| "enum": [ | |
| "interstellar-factors", | |
| "material-trader", | |
| "technology-broker", | |
| "black-market", | |
| "universal-cartographics", | |
| "refuel", | |
| "repair", | |
| "shipyard", | |
| "outfitting", | |
| "search-and-rescue" | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "minLandingPadSize", | |
| "in": "query", | |
| "description": "Minimum landing pad size (1 = small, 2 = medium, 3 = large) (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1, | |
| "enum": [ | |
| 1, | |
| 2, | |
| 3 | |
| ] | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby stations with the specified service", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/StationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodities": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get all traded commodities in a system by name", | |
| "description": "Returns a list of all known trade orders within a system specified by its name.", | |
| "operationId": "getSystemCommoditiesByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities traded in the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodities/imports": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get commodities imported by a system by name", | |
| "description": "Returns a list of all known commodities imported by a system, specified by name, ordered by commodity name.", | |
| "operationId": "getSystemImportsByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "minPrice", | |
| "in": "query", | |
| "description": "Minimum price for the commodity (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities imported by the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodities/exports": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get commodities exported by a system by name", | |
| "description": "Returns a list of all known commodities exported by a system, specified by name, ordered by commodity name.", | |
| "operationId": "getSystemExportsByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "maxPrice", | |
| "in": "query", | |
| "description": "Maximum price for the commodity (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of commodities exported by the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodity/name/{commodityName}": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get trade data for a commodity in a system by name", | |
| "description": "Returns all buy/sell orders for a specific commodity within a system, specified by name.", | |
| "operationId": "getSystemCommodityByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Trade data for the commodity in the system", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityTradeData" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodity/name/{commodityName}/nearby/imports": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get nearby importers of a commodity by name", | |
| "description": "Returns a list of up to 1000 nearby places importing a commodity, ordered by highest price, from a given system name.", | |
| "operationId": "getNearbyCommodityImportersByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "minPrice", | |
| "in": "query", | |
| "description": "Minimum price for the commodity (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby importers", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityStationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/system/name/{systemName}/commodity/name/{commodityName}/nearby/exports": { | |
| "get": { | |
| "tags": [ | |
| "System by name" | |
| ], | |
| "summary": "Get nearby exporters of a commodity by name", | |
| "description": "Returns a list of up to 1000 nearby places exporting a commodity, ordered by lowest price, from a given system name.", | |
| "operationId": "getNearbyCommodityExportersByName", | |
| "parameters": [ | |
| { | |
| "name": "systemName", | |
| "in": "path", | |
| "description": "The system name (not guaranteed to be unique)", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "commodityName", | |
| "in": "path", | |
| "description": "The name of the commodity", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| } | |
| }, | |
| { | |
| "name": "minVolume", | |
| "in": "query", | |
| "description": "Minimum volume of the commodity available (default: 1)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 1 | |
| } | |
| }, | |
| { | |
| "name": "maxPrice", | |
| "in": "query", | |
| "description": "Maximum price for the commodity (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "fleetCarriers", | |
| "in": "query", | |
| "description": "Filter results for fleet carriers (true) or exclude them (false). If not specified, includes all stations. (default: null)", | |
| "required": false, | |
| "schema": { | |
| "type": "boolean", | |
| "nullable": true, | |
| "default": null | |
| } | |
| }, | |
| { | |
| "name": "maxDistance", | |
| "in": "query", | |
| "description": "Maximum distance in light-years (ly) to filter results (default: 100, max: 500)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 100, | |
| "minimum": 0, | |
| "maximum": 500 | |
| } | |
| }, | |
| { | |
| "name": "maxDaysAgo", | |
| "in": "query", | |
| "description": "Filter out data older than the specified number of days (default: 30)", | |
| "required": false, | |
| "schema": { | |
| "type": "integer", | |
| "default": 30 | |
| } | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "A list of nearby exporters", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CommodityStationList" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "components": { | |
| "schemas": { | |
| "DatabaseStats": { | |
| "type": "object", | |
| "properties": { | |
| "starSystems": { | |
| "type": "integer" | |
| }, | |
| "tradeSystems": { | |
| "type": "integer" | |
| }, | |
| "tradeStations": { | |
| "type": "integer" | |
| }, | |
| "tradeCarriers": { | |
| "type": "integer" | |
| }, | |
| "tradeOrders": { | |
| "type": "integer" | |
| }, | |
| "tradeUpdatesInLast24Hours": { | |
| "type": "integer" | |
| }, | |
| "tradeUpdatesInLast7Days": { | |
| "type": "integer" | |
| }, | |
| "tradeUpdatesInLast30Days": { | |
| "type": "integer" | |
| } | |
| } | |
| }, | |
| "StationEconomyStats": { | |
| "type": "object", | |
| "properties": { | |
| "primary": { | |
| "$ref": "#/components/schemas/EconomyTypes", | |
| "description": "Counts of star systems with primary economies." | |
| }, | |
| "secondary": { | |
| "$ref": "#/components/schemas/EconomyTypes", | |
| "description": "Counts of star systems with secondary economies." | |
| }, | |
| "fleetCarriers": { | |
| "type": "integer", | |
| "description": "Total number of Fleet Carriers.", | |
| "example": 18114 | |
| }, | |
| "timestamp": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "The timestamp when the data was last updated.", | |
| "example": "2025-08-01T00:24:34.123Z" | |
| } | |
| }, | |
| "required": [ | |
| "primary", | |
| "secondary", | |
| "fleetCarriers", | |
| "timestamp" | |
| ], | |
| "description": "Statistics for the different types of station economies" | |
| }, | |
| "EconomyTypes": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "integer" | |
| }, | |
| "properties": { | |
| "null": { | |
| "type": "integer", | |
| "description": "Count of systems with no specific economy type.", | |
| "example": 1074 | |
| }, | |
| "Agriculture": { | |
| "type": "integer", | |
| "example": 61209 | |
| }, | |
| "Colony": { | |
| "type": "integer", | |
| "example": 50609 | |
| }, | |
| "Extraction": { | |
| "type": "integer", | |
| "example": 82225 | |
| }, | |
| "HighTech": { | |
| "type": "integer", | |
| "example": 46416 | |
| }, | |
| "Industrial": { | |
| "type": "integer", | |
| "example": 95646 | |
| }, | |
| "Military": { | |
| "type": "integer", | |
| "example": 48861 | |
| }, | |
| "Prison": { | |
| "type": "integer", | |
| "example": 37 | |
| }, | |
| "Refinery": { | |
| "type": "integer", | |
| "example": 18685 | |
| }, | |
| "Repair": { | |
| "type": "integer", | |
| "example": 7 | |
| }, | |
| "Rescue": { | |
| "type": "integer", | |
| "example": 11 | |
| }, | |
| "Service": { | |
| "type": "integer", | |
| "example": 1320 | |
| }, | |
| "Terraforming": { | |
| "type": "integer", | |
| "example": 2350 | |
| }, | |
| "Tourism": { | |
| "type": "integer", | |
| "example": 22651 | |
| } | |
| }, | |
| "description": "A mapping of economy types to the count of star systems that have that economy." | |
| }, | |
| "StationTypeStats": { | |
| "type": "object", | |
| "properties": { | |
| "stationType": { | |
| "type": "string" | |
| }, | |
| "stationCount": { | |
| "type": "integer" | |
| } | |
| }, | |
| "description": "Statistics for a single station type" | |
| }, | |
| "SystemSearchResult": { | |
| "type": "array", | |
| "description": "A list of systems matching a search term", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string" | |
| }, | |
| "systemAddress": { | |
| "type": "integer" | |
| } | |
| } | |
| } | |
| }, | |
| "StationSearchResult": { | |
| "type": "array", | |
| "description": "A list of stations matching a search term", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "stationName": { | |
| "type": "string" | |
| }, | |
| "stationID": { | |
| "type": "integer" | |
| } | |
| } | |
| } | |
| }, | |
| "Market": { | |
| "type": "object", | |
| "properties": { | |
| "marketId": { | |
| "type": "integer" | |
| }, | |
| "marketName": { | |
| "type": "string" | |
| }, | |
| "systemName": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Information about a specific market" | |
| }, | |
| "CommodityTradeData": { | |
| "type": "object", | |
| "properties": { | |
| "commodityName": { | |
| "type": "string" | |
| }, | |
| "marketId": { | |
| "type": "integer" | |
| }, | |
| "buyPrice": { | |
| "type": "integer" | |
| }, | |
| "sellPrice": { | |
| "type": "integer" | |
| } | |
| }, | |
| "description": "Trade data for a specific commodity in a market or system" | |
| }, | |
| "CommodityReport": { | |
| "type": "object", | |
| "properties": { | |
| "commodityName": { | |
| "type": "string" | |
| }, | |
| "maxBuyPrice": { | |
| "type": "integer" | |
| }, | |
| "minBuyPrice": { | |
| "type": "integer" | |
| }, | |
| "avgBuyPrice": { | |
| "type": "integer" | |
| }, | |
| "totalStock": { | |
| "type": "integer" | |
| }, | |
| "maxSellPrice": { | |
| "type": "integer" | |
| }, | |
| "minSellPrice": { | |
| "type": "integer" | |
| }, | |
| "avgSellPrice": { | |
| "type": "integer" | |
| }, | |
| "totalDemand": { | |
| "type": "integer" | |
| } | |
| }, | |
| "description": "Summary report for a single commodity" | |
| }, | |
| "CommodityList": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/CommodityTradeData" | |
| }, | |
| "description": "A list of commodities or trade data" | |
| }, | |
| "CommodityStationList": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "commodityName": { | |
| "type": "string" | |
| }, | |
| "stationName": { | |
| "type": "string" | |
| }, | |
| "systemName": { | |
| "type": "string" | |
| }, | |
| "price": { | |
| "type": "integer" | |
| }, | |
| "distance": { | |
| "type": "number" | |
| } | |
| } | |
| }, | |
| "description": "A list of stations trading a specific commodity" | |
| }, | |
| "System": { | |
| "type": "object", | |
| "properties": { | |
| "systemName": { | |
| "type": "string" | |
| }, | |
| "systemAddress": { | |
| "type": "integer" | |
| }, | |
| "x": { | |
| "type": "number" | |
| }, | |
| "y": { | |
| "type": "number" | |
| }, | |
| "z": { | |
| "type": "number" | |
| } | |
| }, | |
| "description": "Information about a star system" | |
| }, | |
| "SystemList": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/System" | |
| }, | |
| "description": "A list of star systems" | |
| }, | |
| "Station": { | |
| "type": "object", | |
| "properties": { | |
| "stationName": { | |
| "type": "string" | |
| }, | |
| "distance": { | |
| "type": "number" | |
| }, | |
| "service": { | |
| "type": "string" | |
| }, | |
| "systemName": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Information about a station" | |
| }, | |
| "StationList": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/Station" | |
| }, | |
| "description": "A list of stations" | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment