From eea39e49c0da18eeb0f134328bb889e5ceff8f87 Mon Sep 17 00:00:00 2001 From: Space Admiral Date: Sun, 18 Sep 2022 08:49:41 -0700 Subject: [PATCH] feat: update ship schema --- .gitignore | 1 + models/Cooldown.json | 22 + models/Ship.json | 54 + models/Ship.yaml | 161 -- models/ShipCargo.json | 46 + models/ShipCondition.json | 6 + models/ShipCrew.json | 46 + models/ShipFrame.json | 60 + models/ShipFuel.json | 35 + models/ShipModule.json | 33 + models/ShipMount.json | 37 + models/ShipNav.json | 20 + models/ShipNavRoute.json | 34 + models/ShipNavSpeed.json | 10 + models/ShipNavStatus.json | 9 + models/ShipNavigation.yaml | 33 - models/ShipReactor.json | 39 + models/ShipRegistration.json | 32 + models/ShipRequirements.json | 18 + models/ShipRole.json | 16 + models/ShipThrusters.json | 34 + redocly.yaml | 18 + reference/SpaceTraders.json | 3803 ++++++++++++++++++++++++++++ reference/SpaceTraders.yaml | 2986 ---------------------- resources/agent/MyAgent.json | 44 + resources/agent/RegisterAgent.json | 68 + 26 files changed, 4485 insertions(+), 3180 deletions(-) create mode 100644 .gitignore create mode 100644 models/Cooldown.json create mode 100644 models/Ship.json delete mode 100644 models/Ship.yaml create mode 100644 models/ShipCargo.json create mode 100644 models/ShipCondition.json create mode 100644 models/ShipCrew.json create mode 100644 models/ShipFrame.json create mode 100644 models/ShipFuel.json create mode 100644 models/ShipModule.json create mode 100644 models/ShipMount.json create mode 100644 models/ShipNav.json create mode 100644 models/ShipNavRoute.json create mode 100644 models/ShipNavSpeed.json create mode 100644 models/ShipNavStatus.json delete mode 100644 models/ShipNavigation.yaml create mode 100644 models/ShipReactor.json create mode 100644 models/ShipRegistration.json create mode 100644 models/ShipRequirements.json create mode 100644 models/ShipRole.json create mode 100644 models/ShipThrusters.json create mode 100644 redocly.yaml create mode 100644 reference/SpaceTraders.json delete mode 100644 reference/SpaceTraders.yaml create mode 100644 resources/agent/MyAgent.json create mode 100644 resources/agent/RegisterAgent.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/models/Cooldown.json b/models/Cooldown.json new file mode 100644 index 0000000..cec9ffe --- /dev/null +++ b/models/Cooldown.json @@ -0,0 +1,22 @@ +{ + "type": "object", + "description": "A cooldown is a period of time in which a ship cannot perform certain actions.", + "properties": { + "totalSeconds": { + "type": "integer", + "description": "The total duration of the cooldown in seconds", + "minimum": 0 + }, + "remainingSeconds": { + "type": "integer", + "description": "The remaining duration of the cooldown in seconds", + "minimum": 0 + }, + "expiresAt": { + "type": "string", + "format": "date-time", + "description": "The date and time when the cooldown expires in ISO 8601 format", + "minimum": 0 + } + } +} \ No newline at end of file diff --git a/models/Ship.json b/models/Ship.json new file mode 100644 index 0000000..2b7175e --- /dev/null +++ b/models/Ship.json @@ -0,0 +1,54 @@ +{ + "description": "A ship", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "The globally unique identifier of the ship in the following format: `[AGENT_SYMBOL]_[HEX_ID]`", + "minLength": 8, + "examples": [ + "FALCON_0A1", + "FALCON_00A" + ] + }, + "registration": { + "$ref": "./ShipRegistration.json" + }, + "nav": { + "$ref": "./ShipNav.json" + }, + "crew": { + "$ref": "./ShipCrew.json" + }, + "frame": { + "$ref": "./ShipFrame.json" + }, + "reactor": { + "$ref": "./ShipReactor.json" + }, + "thrusters": { + "$ref": "./ShipThrusters.json" + }, + "modules": { + "type": "array", + "items": { + "$ref": "./ShipModule.json" + } + }, + "mounts": { + "type": "array", + "items": { + "$ref": "./ShipMount.json" + } + }, + "cargo": { + "$ref": "./ShipCargo.json" + }, + "fuel": { + "$ref": "./ShipFuel.json" + } + }, + "required": [ + "symbol" + ] +} \ No newline at end of file diff --git a/models/Ship.yaml b/models/Ship.yaml deleted file mode 100644 index 2ad4179..0000000 --- a/models/Ship.yaml +++ /dev/null @@ -1,161 +0,0 @@ -description: "" -type: object -x-examples: - example-1: - symbol: 2C52AD-1 - crew: null - officers: null - frame: FRAME_FRIGATE - reactor: REACTOR_FUSION_I - engine: ENGINE_ION_DRIVE_II - modules: - - MODULE_GAS_TANK - - MODULE_CARGO_HOLD - - MODULE_CARGO_HOLD - - MODULE_CREW_QUARTERS - - MODULE_ENVOY_QUARTERS - - MODULE_JUMP_DRIVE_I - mounts: - - MOUNT_SENSOR_ARRAY_II - - MOUNT_MINING_LASER_II - - MOUNT_GAS_SIPHON_II - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 2C52AD - fee: 0 - role: COMMAND - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: - - tradeSymbol: IRON_ORE - units: 100 -examples: - - symbol: 55B261-1 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] -properties: - symbol: - type: string - minLength: 1 - frame: - type: string - minLength: 1 - reactor: - type: string - minLength: 1 - engine: - type: string - minLength: 1 - modules: - type: array - items: - type: string - mounts: - type: array - items: - type: string - registration: - type: object - required: - - factionSymbol - - agentSymbol - - fee - - role - properties: - factionSymbol: - type: string - minLength: 1 - agentSymbol: - type: string - minLength: 1 - fee: - type: integer - role: - type: string - minLength: 1 - integrity: - type: object - required: - - frame - - reactor - - engine - properties: - frame: - type: number - reactor: - type: number - engine: - type: number - stats: - type: object - required: - - fuelTank - - cargoLimit - - jumpRange - properties: - fuelTank: - type: integer - cargoLimit: - type: integer - jumpRange: - type: integer - status: - type: string - minLength: 1 - location: - type: string - minLength: 1 - cargo: - type: array - uniqueItems: true - minItems: 0 - items: - type: object - properties: - tradeSymbol: - type: string - minLength: 1 - units: - type: integer - required: - - tradeSymbol - - units - fuel: - type: integer -required: - - symbol - - frame - - reactor - - engine - - modules - - mounts - - registration - - integrity - - status - - location - - cargo - - fuel diff --git a/models/ShipCargo.json b/models/ShipCargo.json new file mode 100644 index 0000000..4f8edbd --- /dev/null +++ b/models/ShipCargo.json @@ -0,0 +1,46 @@ +{ + "type": "object", + "properties": { + "size": { + "type": "integer", + "minimum": 0 + }, + "inventory": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string", + "examples": [ + "ORE_COPPER", + "MICROPROCESSORS", + "FOOD" + ] + }, + "name": { + "type": "string", + "examples": [ + "Copper Ore", + "Microprocessors", + "Food" + ] + }, + "units": { + "type": "integer", + "minimum": 1 + } + }, + "required": [ + "symbol", + "name", + "units" + ] + }, + "required": [ + "size", + "inventory" + ] + } + } +} \ No newline at end of file diff --git a/models/ShipCondition.json b/models/ShipCondition.json new file mode 100644 index 0000000..b1b2c01 --- /dev/null +++ b/models/ShipCondition.json @@ -0,0 +1,6 @@ +{ + "type": "integer", + "description": "Condition is a range of 0 to 100 where 0 is completely worn out and 100 is brand new.", + "minimum": 0, + "maximum": 100 +} \ No newline at end of file diff --git a/models/ShipCrew.json b/models/ShipCrew.json new file mode 100644 index 0000000..ca6ee29 --- /dev/null +++ b/models/ShipCrew.json @@ -0,0 +1,46 @@ +{ + "type": "object", + "required": [ + "count", + "min", + "max", + "rotation", + "morale" + ], + "description": "The ship's crew service and maintain the ship's systems and equipment.", + "properties": { + "count": { + "type": "integer", + "description": "The total number of crew members on the ship." + }, + "min": { + "type": "integer", + "description": "The minimum number of crew members required to maintain the ship." + }, + "max": { + "type": "integer", + "description": "The maximum number of crew members the ship can support." + }, + "rotation": { + "type": "string", + "description": "The rotation of crew shifts. Stricter shifts can improve the ship's performance, and more relaxed shifts can improve the crew's morale.", + "enum": [ + "STRICT", + "STANDARD", + "RELAXED" + ], + "default": "STANDARD" + }, + "morale": { + "type": "integer", + "description": "A rough measure of the crew's morale. A higher morale means the crew is happier and more productive. A lower morale means the ship is more prone to accidents.", + "minimum": 0, + "maximum": 100 + }, + "wages": { + "type": "integer", + "description": "The amount of credits per crew member paid per minute of time travelled between waypoints. Wages are paid when a ship departs from a waypoint.", + "minimum": 0 + } + } +} \ No newline at end of file diff --git a/models/ShipFrame.json b/models/ShipFrame.json new file mode 100644 index 0000000..ea51b29 --- /dev/null +++ b/models/ShipFrame.json @@ -0,0 +1,60 @@ +{ + "type": "object", + "description": "The frame of the ship. The frame determines the number of modules and mounting points of the ship, as well as base fuel capacity. As the condition of the frame takes more wear, the ship will become more sluggish and less maneuverable.", + "properties": { + "symbol": { + "type": "string", + "enum": [ + "FRAME_DRONE", + "FRAME_INTERCEPTOR", + "FRAME_RACER", + "FRAME_FIGHTER", + "FRAME_FRIGATE", + "FRAME_SHUTTLE", + "FRAME_EXPLORER", + "FRAME_LIGHT_FREIGHTER", + "FRAME_HEAVY_FREIGHTER", + "FRAME_TRANSPORT", + "FRAME_DESTROYER", + "FRAME_CRUISER", + "FRAME_CARRIER" + ] + }, + "name": { + "type": "string", + "enum": [ + "Drone", + "Interceptor", + "Racer", + "Fighter", + "Frigate", + "Shuttle", + "Explorer", + "Light Freighter", + "Heavy Freighter", + "Transport", + "Destroyer", + "Cruiser", + "Carrier" + ] + }, + "condition": { + "$ref": "./ShipCondition.json" + }, + "moduleSlots": { + "type": "integer", + "minimum": 0 + }, + "mountingPoints": { + "type": "integer", + "minimum": 0 + }, + "fuelCapacity": { + "type": "integer", + "minimum": 0 + }, + "requirements": { + "$ref": "./ShipRequirements.json" + } + } +} \ No newline at end of file diff --git a/models/ShipFuel.json b/models/ShipFuel.json new file mode 100644 index 0000000..94f3f1e --- /dev/null +++ b/models/ShipFuel.json @@ -0,0 +1,35 @@ +{ + "type": "object", + "description": "Details of the ship's fuel tanks including how much fuel was consumed during the last transit or action.", + "properties": { + "amount": { + "type": "integer", + "description": "The amount of fuel in the ship's tanks.", + "minimum": 0 + }, + "max": { + "type": "integer", + "description": "The maximum amount of fuel the ship's tanks can hold.", + "minimum": 0 + }, + "consumed": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "description": "The amount of fuel consumed by the most recent transit or action.", + "minimum": 0 + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "The time at which the fuel was consumed." + } + }, + "required": [ + "amount", + "timestamp" + ] + } + } +} \ No newline at end of file diff --git a/models/ShipModule.json b/models/ShipModule.json new file mode 100644 index 0000000..0de418a --- /dev/null +++ b/models/ShipModule.json @@ -0,0 +1,33 @@ +{ + "type": "object", + "description": "A module can be installed in a ship and provides a set of capabilities such as storage space or quarters for crew.", + "properties": { + "symbol": { + "type": "string", + "enum": [ + "MODULE_FUEL_TANK", + "MODULE_CARGO_HOLD", + "MODULE_CREW_QUARTERS", + "MODULE_ENVOY_QUARTERS", + "MODULE_PASSENGER_CABIN", + "MODULE_MICRO_REFINERY", + "MODULE_JUMP_DRIVE" + ] + }, + "name": { + "type": "string", + "enum": [ + "Fuel Tank", + "Cargo Hold", + "Crew Quarters", + "Envoy Quarters", + "Passenger Cabin", + "Micro Refinery", + "Jump Drive" + ] + }, + "requirements": { + "$ref": "./ShipRequirements.json" + } + } +} \ No newline at end of file diff --git a/models/ShipMount.json b/models/ShipMount.json new file mode 100644 index 0000000..e79051a --- /dev/null +++ b/models/ShipMount.json @@ -0,0 +1,37 @@ +{ + "type": "object", + "description": "A mount is installed on the exterier of a ship.", + "properties": { + "symbol": { + "type": "string", + "enum": [ + "MOUNT_GAS_SIPHON_I", + "MOUNT_GAS_SIPHON_II", + "MOUNT_GAS_SIPHON_III", + "MOUNT_SENSOR_ARRAY_I", + "MOUNT_SENSOR_ARRAY_II", + "MOUNT_SENSOR_ARRAY_III", + "MOUNT_MINING_LASER_I", + "MOUNT_MINING_LASER_II", + "MOUNT_MINING_LASER_III" + ] + }, + "name": { + "type": "string", + "enum": [ + "Gas Siphon I", + "Gas Siphon II", + "Gas Siphon III", + "Sensor Array I", + "Sensor Array II", + "Sensor Array III", + "Mining Laser I", + "Mining Laser II", + "Mining Laser III" + ] + }, + "requirements": { + "$ref": "./ShipRequirements.json" + } + } +} \ No newline at end of file diff --git a/models/ShipNav.json b/models/ShipNav.json new file mode 100644 index 0000000..e92cf1d --- /dev/null +++ b/models/ShipNav.json @@ -0,0 +1,20 @@ +{ + "type": "object", + "description": "The navigation information of the ship.", + "properties": { + "route": { + "$ref": "./ShipNavRoute.json" + }, + "status": { + "$ref": "./ShipNavStatus.json" + }, + "speed": { + "$ref": "./ShipNavSpeed.json" + } + }, + "required": [ + "route", + "status", + "speed" + ] +} \ No newline at end of file diff --git a/models/ShipNavRoute.json b/models/ShipNavRoute.json new file mode 100644 index 0000000..eefe049 --- /dev/null +++ b/models/ShipNavRoute.json @@ -0,0 +1,34 @@ +{ + "type": "object", + "description": "The routing information for the ship's most recent transit or current location.", + "properties": { + "symbol": { + "type": "string", + "description": "The unique identifer of the waypoint." + }, + "name": { + "type": "string", + "description": "The name of the waypoint." + }, + "x": { + "type": "integer", + "description": "The x coordinate of the waypoint." + }, + "y": { + "type": "integer", + "description": "The y coordinate of the waypoint." + }, + "arrival": { + "type": "string", + "format": "date-time", + "description": "The date time of the ship's arrival. If the ship is in-transit, this is the expected time of arrival." + } + }, + "required": [ + "symbol", + "name", + "x", + "y", + "arrival" + ] +} \ No newline at end of file diff --git a/models/ShipNavSpeed.json b/models/ShipNavSpeed.json new file mode 100644 index 0000000..84e626c --- /dev/null +++ b/models/ShipNavSpeed.json @@ -0,0 +1,10 @@ +{ + "type": "string", + "description": "The ship's set speed when travelling between waypoints. Nav speed can wear down the ship's engines and lower crew morale but improves travel time.", + "enum": [ + "CONSERVATIVE", + "CRUISE", + "MAX" + ], + "default": "CRUISE" +} \ No newline at end of file diff --git a/models/ShipNavStatus.json b/models/ShipNavStatus.json new file mode 100644 index 0000000..26768f0 --- /dev/null +++ b/models/ShipNavStatus.json @@ -0,0 +1,9 @@ +{ + "type": "string", + "description": "The current status of the ship", + "enum": [ + "IN_TRANSIT", + "IN_ORBIT", + "DOCKED" + ] +} \ No newline at end of file diff --git a/models/ShipNavigation.yaml b/models/ShipNavigation.yaml deleted file mode 100644 index b142d4e..0000000 --- a/models/ShipNavigation.yaml +++ /dev/null @@ -1,33 +0,0 @@ -description: "" -type: object -properties: - shipSymbol: - type: string - minLength: 1 - departure: - type: string - minLength: 1 - destination: - type: string - minLength: 1 - durationRemaining: - type: integer - arrivedAt: {} -required: - - shipSymbol - - departure - - destination - - durationRemaining -x-examples: - example-1: - shipSymbol: 3AE434-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2159 - arrivedAt: null -examples: - - shipSymbol: 3AE434-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2159 - arrivedAt: null diff --git a/models/ShipReactor.json b/models/ShipReactor.json new file mode 100644 index 0000000..8352b3f --- /dev/null +++ b/models/ShipReactor.json @@ -0,0 +1,39 @@ +{ + "type": "object", + "description": "The reactor of the ship. It is a large, cylindrical structure that is usually located in the center of the ship. The reactor is responsible for powering the ship's systems and weapons.", + "properties": { + "symbol": { + "type": "string", + "enum": [ + "SOLAR_REACTOR", + "FUSION_REACTOR", + "FISSION_REACTOR", + "CHEMICAL_REACTOR", + "DARK_MATTER_REACTOR" + ] + }, + "name": { + "type": "string", + "enum": [ + "Solar Reactor", + "Fusion Reactor", + "Fission Reactor", + "Chemical Reactor", + "Dark Matter Reactor" + ] + }, + "condition": { + "$ref": "./ShipCondition.json" + }, + "powerOutput": { + "type": "integer", + "minimum": 1 + }, + "cooldown": { + "$ref": "./Cooldown.json" + }, + "requirements": { + "$ref": "./ShipRequirements.json" + } + } +} \ No newline at end of file diff --git a/models/ShipRegistration.json b/models/ShipRegistration.json new file mode 100644 index 0000000..b682a33 --- /dev/null +++ b/models/ShipRegistration.json @@ -0,0 +1,32 @@ +{ + "type": "object", + "required": [ + "name", + "faction", + "role" + ], + "description": "The public registration information of the ship", + "properties": { + "name": { + "type": "string", + "description": "The agent's registered name of the ship", + "minLength": 1, + "examples": [ + "Red Falcon", + "Black Pearl IV", + "The Flying Dutchman" + ] + }, + "faction": { + "type": "string", + "description": "The symbol of the faction the ship is registered with", + "minLength": 1, + "examples": [ + "F_COMM" + ] + }, + "role": { + "$ref": "./ShipRole.json" + } + } +} \ No newline at end of file diff --git a/models/ShipRequirements.json b/models/ShipRequirements.json new file mode 100644 index 0000000..4a65b3f --- /dev/null +++ b/models/ShipRequirements.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "description": "The requirements for installation on a ship", + "properties": { + "power": { + "type": "integer", + "minimum": 0 + }, + "crew": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "power", + "crew" + ] +} \ No newline at end of file diff --git a/models/ShipRole.json b/models/ShipRole.json new file mode 100644 index 0000000..b6867b7 --- /dev/null +++ b/models/ShipRole.json @@ -0,0 +1,16 @@ +{ + "type": "string", + "description": "The registered role of the ship", + "enum": [ + "FABRICATOR", + "HARVESTER", + "HAULER", + "EXCAVATOR", + "TRANSPORT", + "REPAIR", + "SURVEYOR", + "COMMAND", + "CARRIER", + "PATROL" + ] +} \ No newline at end of file diff --git a/models/ShipThrusters.json b/models/ShipThrusters.json new file mode 100644 index 0000000..6cf169a --- /dev/null +++ b/models/ShipThrusters.json @@ -0,0 +1,34 @@ +{ + "type": "object", + "description": "The thrusters determine how quickly a ship travels between waypoints.", + "properties": { + "symbol": { + "type": "string", + "enum": [ + "IMPULSE_DRIVE", + "ION_DRIVE_I", + "ION_DRIVE_II", + "HYPER_DRIVE" + ] + }, + "name": { + "type": "string", + "enum": [ + "Impulse Drive", + "Ion Drive", + "Advanced Ion Drive", + "Hyper Drive" + ] + }, + "condition": { + "$ref": "./ShipCondition.json" + }, + "speed": { + "type": "number", + "minimum": 1 + }, + "requirements": { + "$ref": "./ShipRequirements.json" + } + } +} \ No newline at end of file diff --git a/redocly.yaml b/redocly.yaml new file mode 100644 index 0000000..a40ea95 --- /dev/null +++ b/redocly.yaml @@ -0,0 +1,18 @@ +# See https://redocly.com/docs/cli/configuration/ + +apis: + # Update the apiName with your actual API name, and the version with your actual API version. + SpaceTraders@2.1.0: + # Update the path to your OpenAPI root file + root: ./reference/SpaceTraders.json + +lint: + extends: + - recommended + +features.openapi: + generateCodeSamples: + languages: + - lang: curl + - lang: Node.js + - lang: Python diff --git a/reference/SpaceTraders.json b/reference/SpaceTraders.json new file mode 100644 index 0000000..b4bf174 --- /dev/null +++ b/reference/SpaceTraders.json @@ -0,0 +1,3803 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "SpaceTraders API", + "version": "2.1.0", + "summary": "SpaceTraders is a unique multiplayer game built on a free Web API.", + "contact": { + "name": "Joel Brubaker", + "email": "joel@spacetraders.io" + }, + "license": { + "name": "No Permission", + "url": "https://choosealicense.com/no-permission/" + }, + "description": "SpaceTraders is a multiplayer sci-fi strategy game where you acquire and manage a fleet of ships across a growing and dynamic universe.\n\nSimilar to games such as Eve Online, you work with or against other players to establish trade routes, chart new systems, mine precious ores, patrol for pirates, spy on factions, and discover hidden treasures.\n\nBut what makes SpaceTraders unique is that the game is entirely accessible through open and well-documented API endpoints. In fact, SpaceTraders doesn't have a first-class client to play the game - if you want to take it for a spin, you should try one of our community-created web clients, or use the API documentation to see how you might play a game through an API.\n\nIf this sounds fun and interesting to you, please drop into our Discord and get to know the community. We are actively working on new clients, new ideas and sharing tips for how to play the game.\n\n\n```json http\n{\n \"method\": \"GET\",\n \"url\": \"https://v2-0-0.alpha.spacetraders.io\",\n}\n```" + }, + "servers": [ + { + "url": "https://v2-1-0.spacetraders.io", + "description": "v2.1.0" + } + ], + "paths": { + "/agents": { + "post": { + "summary": "Register New Agent", + "tags": [ + "agents" + ], + "responses": { + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "agent": { + "$ref": "../models/Agent.yaml" + }, + "faction": { + "$ref": "../models/Faction.yaml" + }, + "contract": { + "$ref": "../models/Contract.yaml" + }, + "ship": { + "$ref": "../models/Ship.json" + } + } + } + } + } + } + } + } + }, + "operationId": "post-agents", + "description": "Creates a new agent and ties it to a temporary Account. Use `COMMERCE_REPUBLIC` as your starting faction if you don't know any other factions to choose from.\n\nThe agent symbol is a 4-8 character string that will represent your agent. This symbol will prefix the symbol of every ship you own. Agent symbols will be cast to all uppercase characters.\n\nA new agent will be granted an authorization token, a contract with their starting faction, a command ship with a jump drive, and one hundred thousand credits.\n\n> #### Keep your token safe and secure\n>\n> Save your token during the alpha phase. There is no way to regenerate this token without starting a new agent. In the future you will be able to generate and manage your tokens from the SpaceTraders website.\n\nYou can accept your contract using the `/my/contracts/{contractId}/accept` endpoint. You will want to navigate your command ship to a nearby asteroid field waypoint, and execute the `/my/ships/{shipSymbol}/accept` endpoint to mine various types of ores and minerals.\n\nReturn to the contract destination and execute the `/my/ships/{shipSymbol}/deliver` endpoint to deposit goods into the contract.\n\nWhen your contract is fulfilled, you can call `/my/contracts/{contractId}/fulfill` to retrieve payment.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "How other agents will see your ships and information.", + "minLength": 4, + "maxLength": 8, + "example": "BADGER" + }, + "faction": { + "type": "string", + "default": "COMMERCE_REPUBLIC", + "description": "The faction you choose determines your headquarters." + } + } + } + } + }, + "description": "" + } + } + }, + "/my/agent": { + "get": { + "summary": "My Agent Details", + "tags": [ + "agents" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "../models/Agent.yaml" + } + } + }, + "examples": { + "Agent": { + "value": { + "data": { + "accountId": "cl0hok34m0003ks0jjql5q8f2", + "symbol": "EMBER", + "headquarters": "X1-OE-PM", + "credits": 0 + } + } + } + } + } + } + } + }, + "operationId": "get-my-agent", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Fetch your agent's details." + } + }, + "/my/ships/{shipSymbol}/chart": { + "post": { + "summary": "Chart Waypoint", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "submitted": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "submitted": [ + "X1-ZZ", + "X1-ZZ-7-EE" + ] + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-:shipSymbol-chart", + "description": "Command a ship to chart the current system and/or waypoint.\n\nSystems and waypoints in the universe are uncharted by default. These locations will not show up in the API until they have been charted by a ship.\n\nCharting a location will record your agent as the one who created the chart.\n\nReturns an array of system / waypoint symbols that have been charted.", + "security": [ + { + "AgentToken": [] + } + ], + "tags": [ + "systems" + ] + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The symbol of the ship" + } + ] + }, + "/my/ships/{shipSymbol}/deliver": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The symbol of the ship" + } + ], + "post": { + "summary": "Deliver on Contract", + "tags": [ + "contracts" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "tradeSymbol": "IRON_ORE", + "destination": "X1-OE-PM", + "units": 10000, + "fulfilled": -30000 + } + } + }, + "properties": { + "data": { + "$ref": "../models/ContractDelivery.yaml" + } + }, + "required": [ + "data" + ] + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-deliver", + "security": [ + { + "AgentToken": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contractId": { + "type": "string" + }, + "tradeSymbol": { + "type": "string" + }, + "units": { + "type": "integer" + } + }, + "required": [ + "contractId", + "tradeSymbol" + ] + } + } + } + }, + "description": "Deliver cargo on a given contract." + } + }, + "/my/ships/{shipSymbol}/nav/transit": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The ship symbol" + } + ], + "post": { + "summary": "Navigate Ship", + "tags": [ + "navigation" + ], + "responses": { + "201": { + "description": "The successful transit information including the route details and changes to ship fuel, supplies, and crew wages paid. The route includes the expected time of arrival.", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "shipSymbol": "3AE434-1", + "departure": "X1-OE-PM", + "destination": "X1-OE-A005", + "durationRemaining": 2159, + "arrivedAt": null + } + } + }, + "properties": { + "data": { + "type": "object", + "properties": { + "route": { + "$ref": "../models/ShipNavRoute.json" + }, + "shipFuel": { + "$ref": "../models/ShipFuel.json" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "fuelCost": 38, + "navigation": { + "shipSymbol": "BA03F2-1", + "departure": "X1-OE-PM", + "destination": "X1-OE-A005", + "durationRemaining": 2279, + "arrivedAt": null + } + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-navigate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "waypointSymbol": { + "type": "string", + "description": "The target destination." + } + }, + "required": [ + "waypointSymbol" + ] + } + } + }, + "description": "" + }, + "security": [ + { + "AgentToken": [] + } + ], + "description": "Navigate to a target destination. The destination must be located within the same system as the ship. Navigating will consume the necessary fuel and supplies from the ship's manifest, and will pay out crew wages from the agent's account.\n\nThe returned response will detail the route information including the expected time of arrival. Most ship actions are unavailable until the ship has arrived at it's destination.\n\nFor faster-than-light travel between systems, see the ship's jump action." + } + }, + "/my/ships/{shipSymbol}/nav/dock": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The symbol of the ship" + } + ], + "post": { + "summary": "Dock Ship", + "tags": [ + "navigation" + ], + "responses": { + "200": { + "description": "The ship has successfully docked at it's current location.", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "status": "DOCKED" + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "$ref": "../models/ShipNavStatus.json" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "status": "DOCKED" + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-dock", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Attempt to dock your ship at it's current location. Docking will only succeed if the waypoint is a dockable location, and your ship is capable of docking at the time of the request.\n\nThe endpoint is idempotent - successive calls will succeed even if the ship is already docked." + } + }, + "/my/ships/{shipSymbol}/nav/orbit": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The symbol of the ship" + } + ], + "post": { + "summary": "Orbit Ship", + "responses": { + "200": { + "description": "The ship has successfully moved into orbit at it's current location.", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "status": "ORBIT" + } + } + }, + "properties": { + "data": { + "type": "object", + "properties": { + "status": { + "$ref": "../models/ShipNavStatus.json" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "status": "ORBIT" + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-orbit", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Attempt to move your ship into orbit at it's current location. The request will only succeed if your ship is capable of moving into orbit at the time of the request.\n\nThe endpoint is idempotent - successive calls will succeed even if the ship is already in orbit.", + "tags": [ + "navigation" + ] + } + }, + "/my/ships/{shipSymbol}/jettison": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Jettison Cargo", + "tags": [ + "ships" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "tradeSymbol": { + "type": "string", + "minLength": 1 + }, + "units": { + "type": "integer" + } + }, + "required": [ + "tradeSymbol", + "units" + ] + } + }, + "required": [ + "data" + ], + "x-examples": { + "example-1": { + "data": { + "tradeSymbol": "ALUMINUM", + "units": 95 + } + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "tradeSymbol": "ALUMINUM", + "units": 95 + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-jettison", + "description": "Jettison cargo from your ship's cargo hold.", + "security": [ + { + "AgentToken": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tradeSymbol": { + "type": "string" + }, + "units": { + "type": "integer", + "minimum": 1 + } + } + } + } + } + } + } + }, + "/my/ships/{shipSymbol}/extract": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The ship symbol" + } + ], + "post": { + "summary": "Extract Resources", + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "extraction": { + "shipSymbol": "4B902A-1", + "yield": { + "tradeSymbol": "SILICON", + "units": 16 + } + }, + "cooldown": { + "duration": 119, + "expiration": "2022-03-12T00:41:29.371Z" + } + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "extraction", + "cooldown" + ], + "properties": { + "extraction": { + "$ref": "../models/Extraction.yaml" + }, + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "extraction": { + "shipSymbol": "4B902A-1", + "yield": { + "tradeSymbol": "SILICON", + "units": 16 + } + }, + "cooldown": { + "duration": 119, + "expiration": "2022-03-12T00:41:29.371Z" + } + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-extract", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": [ + "object", + "null" + ], + "properties": { + "survey": { + "$ref": "../models/Survey.yaml" + } + } + }, + "examples": { + "No Survey": { + "value": {} + }, + "With Survey": { + "value": { + "survey": { + "signature": "X1-OE-D2DD38", + "deposits": [ + "COPPER_ORE" + ], + "expiration": "2022-03-08T05:41:55.514Z" + } + } + } + } + } + }, + "description": "" + }, + "description": "Extract resources from the waypoint into your ship. Send a survey as the payload to target specific yields. The entire survey must be sent as it contains a signature that the backend verifies.", + "security": [ + { + "AgentToken": [] + } + ], + "tags": [ + "extract" + ] + }, + "get": { + "summary": "Extraction Cooldown", + "operationId": "get-my-ships-shipSymbol-extract", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "cooldown": { + "duration": 119, + "expiration": "2022-03-12T00:41:29.285Z" + } + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "cooldown" + ], + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "cooldown": { + "duration": 119, + "expiration": "2022-03-12T00:41:29.285Z" + } + } + } + } + } + } + } + } + }, + "description": "Get the status of your last extraction.", + "security": [ + { + "AgentToken": [] + } + ], + "tags": [ + "extract" + ] + } + }, + "/my/ships/{shipSymbol}/survey": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Survey Waypoint", + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "signature": "X1-OE-D2DD38", + "deposits": [ + "COPPER_ORE" + ], + "expiration": "2022-03-08T05:41:55.514Z" + }, + { + "signature": "X1-OE-B58FEB", + "deposits": [ + "ALUMINUM_ORE", + "ALUMINUM_ORE", + "ALUMINUM_ORE" + ], + "expiration": "2022-03-08T05:39:15.519Z" + }, + { + "signature": "X1-OE-0E326C", + "deposits": [ + "ALUMINUM_ORE", + "SILICON" + ], + "expiration": "2022-03-08T05:20:27.521Z" + }, + { + "signature": "X1-OE-5CDFA4", + "deposits": [ + "COPPER_ORE", + "COPPER_ORE", + "COPPER_ORE", + "IRON_ORE" + ], + "expiration": "2022-03-08T05:44:34.522Z" + }, + { + "signature": "X1-OE-86C3A1", + "deposits": [ + "COPPER_ORE", + "COPPER_ORE", + "IRON_ORE" + ], + "expiration": "2022-03-08T05:43:45.522Z" + }, + { + "signature": "X1-OE-C97BEA", + "deposits": [ + "ALUMINUM_ORE", + "COPPER_ORE", + "QUARTZ", + "QUARTZ" + ], + "expiration": "2022-03-08T05:22:39.523Z" + }, + { + "signature": "X1-OE-9913BD", + "deposits": [ + "QUARTZ" + ], + "expiration": "2022-03-08T05:37:45.523Z" + }, + { + "signature": "X1-OE-8D87D2", + "deposits": [ + "COPPER_ORE", + "SILICON" + ], + "expiration": "2022-03-08T05:32:57.524Z" + } + ] + } + }, + "properties": { + "data": { + "type": "object", + "properties": { + "surveys": { + "type": "array", + "items": { + "$ref": "../models/Survey.yaml" + } + }, + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "cooldown": { + "duration": 899, + "expiration": "2022-03-12T02:11:35.618Z" + }, + "surveys": [ + { + "signature": "X1-OE-397C82", + "deposits": [ + "SILICON" + ], + "expiration": "2022-03-12T02:00:19.622Z" + }, + { + "signature": "X1-OE-4413F6", + "deposits": [ + "ALUMINUM_ORE", + "ALUMINUM_ORE", + "COPPER_ORE", + "IRON_ORE" + ], + "expiration": "2022-03-12T02:20:08.625Z" + }, + { + "signature": "X1-OE-E6480F", + "deposits": [ + "ALUMINUM_ORE", + "IRON_ORE", + "QUARTZ", + "SILICON" + ], + "expiration": "2022-03-12T02:18:00.626Z" + }, + { + "signature": "X1-OE-660BE9", + "deposits": [ + "ALUMINUM_ORE" + ], + "expiration": "2022-03-12T02:20:45.626Z" + }, + { + "signature": "X1-OE-D64798", + "deposits": [ + "COPPER_ORE", + "QUARTZ", + "SILICON" + ], + "expiration": "2022-03-12T02:07:33.626Z" + }, + { + "signature": "X1-OE-F799F3", + "deposits": [ + "IRON_ORE" + ], + "expiration": "2022-03-12T02:23:16.627Z" + } + ] + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-survey", + "security": [ + { + "AgentToken": [] + } + ], + "description": "If you want to target specific yields for an extraction, you can survey a waypoint, such as an asteroid field, and send the survey in the body of the extract request. Each survey may have multiple deposits, and if a symbol shows up more than once, that indicates a higher chance of extracting that resource.\n\nYour ship will enter a cooldown between consecutive survey requests. Surveys will eventually expire after a period of time. Multiple ships can use the same survey for extraction.", + "tags": [ + "extract" + ] + }, + "get": { + "summary": "Survey Cooldown", + "tags": [ + "extract" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "cooldown": { + "duration": 899, + "expiration": "2022-03-12T02:11:35.618Z" + } + } + } + } + } + } + } + } + }, + "operationId": "get-my-ships-shipSymbol-survey", + "description": "Executing a survey will initiate a cooldown for a number of seconds before you can call it again. This endpoint returns the details of your cooldown, or a 404 if there is no cooldown for the survey action." + } + }, + "/my/ships/{shipSymbol}/jump": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Jump Ship", + "tags": [ + "navigation" + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "jump": { + "shipSymbol": "1D7FDA-1", + "destination": "00E0B1" + }, + "cooldown": { + "duration": 719, + "expiration": "2022-03-12T00:52:56.735Z" + } + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "jump", + "cooldown" + ], + "properties": { + "jump": { + "type": "object", + "required": [ + "shipSymbol", + "destination" + ], + "properties": { + "shipSymbol": { + "type": "string", + "minLength": 1 + }, + "destination": { + "type": "string", + "minLength": 1 + } + } + }, + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "jump": { + "shipSymbol": "1D7FDA-1", + "destination": "00E0B1" + }, + "cooldown": { + "duration": 719, + "expiration": "2022-03-12T00:52:56.735Z" + } + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-jump", + "security": [ + { + "AgentToken": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "destination": { + "type": "string", + "description": "The system symbol to jump to." + } + } + } + } + } + } + }, + "get": { + "summary": "Jump Cooldown", + "operationId": "get-my-ships-shipSymbol-jump", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "cooldown": { + "duration": 719, + "expiration": "2022-03-12T00:52:56.735Z" + } + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "cooldown" + ], + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + }, + "required": [ + "data" + ] + } + } + } + } + }, + "security": [ + { + "AgentToken": [] + } + ], + "tags": [ + "navigation" + ] + } + }, + "/my/ships/{shipSymbol}/purchase": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Purchase Cargo", + "tags": [ + "trade" + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "MICROPROCESSORS", + "credits": -843, + "units": 1 + } + } + }, + "properties": { + "data": { + "$ref": "../models/Trade.yaml" + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "MICROPROCESSORS", + "credits": -843, + "units": 1 + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-purchase", + "security": [ + { + "AgentToken": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tradeSymbol": { + "type": "string" + }, + "units": { + "type": "integer" + } + } + } + } + } + } + } + }, + "/my/ships/{shipSymbol}/sell": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Sell Cargo", + "tags": [ + "trade" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "SILICON", + "credits": 144, + "units": -1 + } + } + }, + "properties": { + "data": { + "$ref": "../models/Trade.yaml" + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "SILICON", + "credits": 144, + "units": -1 + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-sell", + "description": "Sell cargo from your ship's hold to the local market.", + "security": [ + { + "AgentToken": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tradeSymbol": { + "type": "string" + }, + "units": { + "type": "integer" + } + } + } + } + }, + "description": "" + } + } + }, + "/my/ships/{shipSymbol}/refuel": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Refuel Ship", + "tags": [ + "navigation" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "credits": { + "type": "integer" + }, + "fuel": { + "type": "integer" + } + }, + "required": [ + "credits", + "fuel" + ] + } + }, + "required": [ + "data" + ], + "x-examples": { + "example-1": { + "data": { + "credits": 0, + "fuel": 0 + } + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "credits": -1920, + "fuel": 800 + } + } + } + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-refuel", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/my/ships/{shipSymbol}/deploy": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true, + "description": "The ship symbol" + } + ], + "post": { + "summary": "Deploy Asset", + "tags": [ + "markets" + ], + "responses": { + "204": { + "description": "OK" + } + }, + "operationId": "post-my-ships-shipSymbol-deploy", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Use this endpoint to deploy a Communications Relay to a waypoint. A waypoint with a communications relay will allow agents to retrieve price information from the market. Without a relay, agents must send a ship to a market to retrieve price information.\n\nCommunication relays can be purchased from a market that exports `COMM_RELAY_I`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tradeSymbol": { + "type": "string" + } + }, + "required": [ + "tradeSymbol" + ] + } + } + } + } + } + }, + "/my/ships/{shipSymbol}/scan": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Scan", + "tags": [ + "ships" + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "ships": [ + { + "symbol": "COMMERCE_REPUBLIC-0060A0", + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "role": "EXCAVATOR" + }, + "frameSymbol": "FRAME_HEAVY_FREIGHTER", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_I", + "expiration": "2022-03-08T05:20:14.725Z" + }, + { + "symbol": "ZANZIBAR_TRIKES-DF0AAF", + "registration": { + "factionSymbol": "ZANZIBAR_TRIKES", + "role": "HAULER" + }, + "frameSymbol": "FRAME_SHUTTLE", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_II", + "expiration": "2022-03-08T05:20:00.725Z" + }, + { + "symbol": "ZANZIBAR_TRIKES-9B80BE", + "registration": { + "factionSymbol": "ZANZIBAR_TRIKES", + "role": "TRANSPORT" + }, + "frameSymbol": "FRAME_TRANSPORT", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_I", + "expiration": "2022-03-08T05:20:06.725Z" + }, + { + "symbol": "COMMERCE_REPUBLIC-117520", + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "role": "HARVESTER" + }, + "frameSymbol": "FRAME_SHUTTLE", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_II", + "expiration": "2022-03-08T05:19:55.725Z" + }, + { + "symbol": "SPACERS_GUILD-609AA5", + "registration": { + "factionSymbol": "SPACERS_GUILD", + "role": "HAULER" + }, + "frameSymbol": "FRAME_FRIGATE", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_I", + "expiration": "2022-03-08T05:19:38.725Z" + }, + { + "symbol": "MINERS_COLLECTIVE-7AD322", + "registration": { + "factionSymbol": "MINERS_COLLECTIVE", + "role": "EXCAVATOR" + }, + "frameSymbol": "FRAME_SHUTTLE", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_I", + "expiration": "2022-03-08T05:19:11.725Z" + }, + { + "symbol": "ZANZIBAR_TRIKES-AE6D78", + "registration": { + "factionSymbol": "ZANZIBAR_TRIKES", + "role": "HAULER" + }, + "frameSymbol": "FRAME_SHUTTLE", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_II", + "expiration": "2022-03-08T05:20:44.725Z" + }, + { + "symbol": "SPACERS_GUILD-92828B", + "registration": { + "factionSymbol": "SPACERS_GUILD", + "role": "SURVEYOR" + }, + "frameSymbol": "FRAME_LIGHT_FREIGHTER", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_II", + "expiration": "2022-03-08T05:20:49.726Z" + }, + { + "symbol": "ZANZIBAR_TRIKES-B5EAD1", + "registration": { + "factionSymbol": "ZANZIBAR_TRIKES", + "role": "TRANSPORT" + }, + "frameSymbol": "FRAME_TRANSPORT", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_I", + "expiration": "2022-03-08T05:20:25.726Z" + }, + { + "symbol": "ZANZIBAR_TRIKES-6A4E0D", + "registration": { + "factionSymbol": "ZANZIBAR_TRIKES", + "role": "HAULER" + }, + "frameSymbol": "FRAME_EXPLORER", + "reactorSymbol": "REACTOR_FUSION_I", + "engineSymbol": "ENGINE_ION_DRIVE_II", + "expiration": "2022-03-08T05:19:19.726Z" + } + ], + "cooldown": 60 + } + } + }, + "properties": { + "data": { + "oneOf": [ + { + "properties": { + "ships": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/ScannedShip.yaml" + } + }, + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + }, + "required": [ + "ships", + "cooldown" + ] + }, + { + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + }, + "system": { + "$ref": "../models/System.yaml" + } + } + }, + { + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + }, + "waypoint": { + "$ref": "../models/Waypoint.yaml" + } + } + } + ], + "type": "object" + } + }, + "required": [ + "data" + ] + } + } + } + } + }, + "operationId": "post-my-ships-shipSymbol-scan", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Execute a ship scan to view approach / departing ships, system information or details about a waypoint. Send a scan mode to select the type of scan performed by your ship.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "enum": [ + "APPROACHING_SHIPS", + "DEPARTING_SHIPS", + "SYSTEM", + "WAYPOINT" + ] + } + }, + "required": [ + "mode" + ] + }, + "examples": { + "Approaching Ships": { + "value": { + "mode": "APPROACHING_SHIPS" + } + }, + "Departing Ships": { + "value": { + "mode": "APPROACHING_SHIPS" + } + } + } + } + }, + "description": "" + } + }, + "get": { + "summary": "Scan Cooldown", + "operationId": "get-my-ships-shipSymbol-scan", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.yaml" + } + } + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "cooldown": { + "duration": 59, + "expiration": "2022-03-12T00:42:44.220Z" + } + } + } + } + } + } + } + } + }, + "security": [ + { + "AgentToken": [] + } + ], + "tags": [ + "ships" + ] + } + }, + "/my/ships/{shipSymbol}": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "shipSymbol", + "in": "path", + "required": true + } + ], + "get": { + "summary": "View Ship", + "tags": [ + "ships" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "symbol": "653298-1", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + } + } + }, + "properties": { + "data": { + "$ref": "../models/Ship.json" + } + }, + "required": [ + "data" + ] + } + } + } + } + }, + "operationId": "get-my-ships-shipSymbol", + "description": "Retrieve the details of your ship.", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/my/ships": { + "get": { + "summary": "List Ships", + "tags": [ + "ships" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "symbol": "653298-1", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + }, + { + "symbol": "653298-2", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + }, + { + "symbol": "653298-3", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + }, + { + "symbol": "653298-4", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + }, + { + "symbol": "653298-5", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + }, + { + "symbol": "653298-6", + "crew": null, + "officers": null, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "653298", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + } + ], + "meta": { + "total": 6, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/Ship.json" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + } + } + } + } + }, + "operationId": "get-my-ships", + "description": "Retrieve all of your ships.", + "security": [ + { + "AgentToken": [] + } + ] + }, + "post": { + "summary": "Purchase Ship", + "tags": [ + "shipyards" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "symbol": "4F4D44-1", + "crew": null, + "officers": null, + "fuel": 100, + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ], + "registration": { + "factionSymbol": "COMMERCE_REPUBLIC", + "agentSymbol": "4F4D44", + "fee": 100, + "role": "EXCAVATOR" + }, + "integrity": { + "frame": 1, + "reactor": 1, + "engine": 1 + }, + "status": "DOCKED", + "location": "X1-OE-PM", + "cargo": [] + } + } + }, + "properties": { + "data": { + "type": "object", + "properties": { + "ship": { + "$ref": "../models/Ship.json" + }, + "credits": { + "type": "integer" + } + } + } + }, + "required": [ + "data" + ] + } + } + } + } + }, + "operationId": "post-my-ships", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Purchase a ship", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the shipyard listing you want to purchase." + } + } + } + } + } + } + } + }, + "/my/contracts": { + "get": { + "summary": "List Contracts", + "tags": [ + "contracts" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "id": "cl0hok38t0014ks0jnoy8o5vh", + "faction": "COMMERCE_REPUBLIC", + "type": "PROCUREMENT", + "terms": { + "deadline": "2022-03-11T05:16:59.113Z", + "payment": { + "onAccepted": 20000, + "onFulfilled": 100000 + }, + "deliver": [ + { + "tradeSymbol": "IRON_ORE", + "destination": "X1-OE-PM", + "units": 10000, + "fulfilled": 0 + } + ] + }, + "accepted": false, + "fulfilled": false, + "expiresAt": "2022-03-09T05:16:59.112Z" + }, + { + "id": "cl0hok3920023kv0jflbjpltg", + "faction": "COMMERCE_REPUBLIC", + "type": "PROCUREMENT", + "terms": { + "deadline": "2022-03-11T05:16:59.123Z", + "payment": { + "onAccepted": 20000, + "onFulfilled": 100000 + }, + "deliver": [ + { + "tradeSymbol": "IRON_ORE", + "destination": "X1-OE-PM", + "units": 10000, + "fulfilled": 0 + } + ] + }, + "accepted": false, + "fulfilled": false, + "expiresAt": "2022-03-09T05:16:59.122Z" + } + ], + "meta": { + "total": 2, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/Contract.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": { + "Success": { + "value": { + "data": [ + { + "id": "cl0hok38t0014ks0jnoy8o5vh", + "faction": "COMMERCE_REPUBLIC", + "type": "PROCUREMENT", + "terms": { + "deadline": "2022-03-11T05:16:59.113Z", + "payment": { + "onAccepted": 20000, + "onFulfilled": 100000 + }, + "deliver": [ + { + "tradeSymbol": "IRON_ORE", + "destination": "X1-OE-PM", + "units": 10000, + "fulfilled": 0 + } + ] + }, + "accepted": false, + "fulfilled": false, + "expiresAt": "2022-03-09T05:16:59.112Z" + } + ], + "meta": { + "total": 10, + "page": 1, + "limit": 10 + } + } + } + } + } + } + } + }, + "operationId": "get-my-contracts", + "security": [ + { + "AgentToken": [] + } + ], + "description": "List all of your contracts." + } + }, + "/my/contracts/{contractId}": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "contractId", + "in": "path", + "required": true, + "description": "The contract ID" + } + ], + "get": { + "summary": "Contract Details", + "tags": [ + "contracts" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "../models/Contract.yaml" + } + } + }, + "examples": { + "Success": { + "value": { + "data": { + "id": "cl0hok38t0014ks0jnoy8o5vh", + "faction": "COMMERCE_REPUBLIC", + "type": "PROCUREMENT", + "terms": { + "deadline": "2022-03-11T05:16:59.113Z", + "payment": { + "onAccepted": 20000, + "onFulfilled": 100000 + }, + "deliver": [ + { + "tradeSymbol": "IRON_ORE", + "destination": "X1-OE-PM", + "units": 10000, + "fulfilled": 0 + } + ] + }, + "accepted": false, + "fulfilled": false, + "expiresAt": "2022-03-09T05:16:59.112Z" + } + } + } + } + } + } + } + }, + "operationId": "get-my-contracts-contractId", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Get the details of a contract by ID." + } + }, + "/my/contracts/{contractId}/accept": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "contractId", + "in": "path", + "required": true + } + ], + "post": { + "summary": "Accept Contract", + "tags": [ + "contracts" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "../models/Contract.yaml" + } + } + } + } + } + } + }, + "operationId": "post-my-contracts-contractId-accept", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Accept a contract." + } + }, + "/systems": { + "get": { + "summary": "List Systems", + "tags": [ + "systems" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "symbol": "X1-OE", + "sector": "X1", + "type": "RED_STAR", + "x": 0, + "y": 0, + "waypoints": [ + "X1-OE-PM", + "X1-OE-PM01", + "X1-OE-A005", + "X1-OE-25X" + ], + "factions": [ + "COMMERCE_REPUBLIC", + "MINERS_COLLECTIVE", + "SPACERS_GUILD" + ], + "charted": true, + "chartedBy": null + }, + { + "symbol": "X1-EV", + "sector": "X1", + "type": "ORANGE_STAR", + "x": 3, + "y": 4, + "waypoints": [ + "X1-EV-A004" + ], + "factions": [ + "COMMERCE_REPUBLIC" + ], + "charted": true, + "chartedBy": null + }, + { + "symbol": "X1-ZZ", + "sector": "X1", + "type": "BLUE_STAR", + "x": -2, + "y": 11, + "waypoints": [], + "factions": [], + "charted": false, + "chartedBy": null + } + ], + "meta": { + "total": 3, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/System.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": { + "Success": { + "value": { + "data": [ + { + "symbol": "X1-OE", + "sector": "X1", + "type": "RED_STAR", + "x": 0, + "y": 0, + "waypoints": [ + "X1-OE-PM", + "X1-OE-PM01", + "X1-OE-A005", + "X1-OE-25X" + ], + "factions": [ + "COMMERCE_REPUBLIC", + "MINERS_COLLECTIVE", + "SPACERS_GUILD" + ], + "charted": true, + "chartedBy": null + } + ], + "meta": { + "total": 0, + "page": 0, + "limit": 0 + } + } + } + } + } + } + } + }, + "operationId": "get-systems", + "description": "Return a list of all systems.", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}": { + "parameters": [ + { + "schema": { + "type": "string", + "default": "X1-OE" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + } + ], + "get": { + "summary": "View System", + "tags": [ + "systems" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "symbol": "X1-ZZ", + "sector": "X1", + "type": "BLUE_STAR", + "x": -2, + "y": 9, + "waypoints": [], + "factions": [], + "charted": false, + "chartedBy": null + } + } + }, + "properties": { + "data": { + "$ref": "../models/System.yaml" + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "symbol": "X1-ZZ", + "sector": "X1", + "type": "BLUE_STAR", + "x": -2, + "y": 9, + "waypoints": [], + "factions": [], + "charted": false, + "chartedBy": null + } + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}/shipyards": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "the system symbol" + } + ], + "get": { + "summary": "List Shipyards", + "tags": [ + "shipyards" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "symbol": "X1-OE-PM", + "faction": "COMMERCE_REPUBLIC" + } + ], + "meta": { + "total": 1, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/Shipyard.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-shipyards", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Returns a list of all shipyards in a system." + } + }, + "/systems/{systemSymbol}/shipyards/{waypointSymbol}": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + }, + { + "schema": { + "type": "string" + }, + "name": "waypointSymbol", + "in": "path", + "required": true, + "description": "The waypoint symbol" + } + ], + "get": { + "summary": "Shipyard Details", + "tags": [ + "shipyards" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "../models/Shipyard.yaml" + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-shipyards-waypointSymbol", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}/shipyards/{waypointSymbol}/ships": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + }, + { + "schema": { + "type": "string" + }, + "name": "waypointSymbol", + "in": "path", + "required": true, + "description": "The waypoint symbol" + } + ], + "get": { + "summary": "Shipyard Listings", + "tags": [ + "shipyards" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "id": "cl0nahta90000aq0jonm1nprl", + "waypoint": "X1-OE-PM", + "price": 58191, + "role": "EXCAVATOR", + "frame": "FRAME_DRONE", + "reactor": "REACTOR_SOLAR_I", + "engine": "ENGINE_SOLAR_PROPULSION", + "modules": [ + "MODULE_CARGO_HOLD" + ], + "mounts": [ + "MOUNT_MINING_LASER_I" + ] + } + ], + "meta": { + "total": 1, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/ShipyardListing.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": {} + } + } + } + }, + "operationId": "get-systems-systemSymbol-shipyards-waypointSymbol-ships", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/trade/{tradeSymbol}/imports": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "tradeSymbol", + "in": "path", + "required": true, + "description": "The trade symbol" + } + ], + "get": { + "summary": "Trade Imports", + "tags": [ + "markets" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/MarketTrade.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": {} + } + } + } + }, + "operationId": "get-trade-tradeSymbol-imports", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/trade/{tradeSymbol}/exports": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "tradeSymbol", + "in": "path", + "required": true, + "description": "The trade symbol" + } + ], + "get": { + "summary": "Trade Exports", + "tags": [ + "markets" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/MarketTrade.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": {} + } + } + } + }, + "operationId": "get-trade-tradeSymbol-exports", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/trade/{tradeSymbol}/exchange": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "tradeSymbol", + "in": "path", + "required": true, + "description": "The trade symbol" + } + ], + "get": { + "summary": "Trade Exchanges", + "tags": [ + "markets" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/MarketTrade.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": {} + } + } + } + }, + "operationId": "get-trade-tradeSymbol-exchange", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}/markets": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + } + ], + "get": { + "summary": "List Markets", + "tags": [ + "markets" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "exports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "MICROPROCESSORS", + "price": 834, + "tariff": 0 + } + ], + "imports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "SILICON", + "price": 144, + "tariff": 0 + }, + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "QUARTZ", + "price": 286, + "tariff": 0 + } + ], + "exchange": [] + } + } + }, + "properties": { + "data": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": [ + "X1-AK3-88760F" + ], + "meta": { + "total": 1, + "page": 1, + "limit": 20 + } + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-markets", + "description": "Retrieve a list of all charted markets in the given system. Markets are only available if the waypoint is charted and contains a communications relay.\n\nTo install a communications relay at a market, look at the `my/ships/{shipSymbol}/deploy` endpoint.", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}/markets/{waypointSymbol}": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + }, + { + "schema": { + "type": "string" + }, + "name": "waypointSymbol", + "in": "path", + "required": true, + "description": "The waypoint symbol" + } + ], + "get": { + "summary": "View Market", + "tags": [ + "markets" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": { + "exports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "MICROPROCESSORS", + "price": 834, + "tariff": 0 + } + ], + "imports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "SILICON", + "price": 144, + "tariff": 0 + }, + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "QUARTZ", + "price": 286, + "tariff": 0 + } + ], + "exchange": [] + } + } + }, + "properties": { + "data": { + "type": "object", + "required": [ + "exports", + "imports", + "exchange" + ], + "properties": { + "exports": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/MarketTrade.yaml" + } + }, + "imports": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/MarketTrade.yaml" + } + }, + "exchange": { + "type": "array", + "items": { + "$ref": "../models/MarketTrade.yaml" + } + } + } + } + }, + "required": [ + "data" + ] + }, + "examples": { + "Success": { + "value": { + "data": { + "exports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "MICROPROCESSORS", + "price": 834, + "tariff": 0 + } + ], + "imports": [ + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "SILICON", + "price": 144, + "tariff": 0 + }, + { + "waypointSymbol": "X1-OE-PM", + "tradeSymbol": "QUARTZ", + "price": 286, + "tariff": 0 + } + ], + "exchange": [] + } + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-markets-waypointSymbol", + "description": "Retrieve imports, exports and exchange data from a marketplace. Imports can be sold, exports can be purchased, and exchange trades can be purchased or sold.\n\nMarket data is only available if you have a ship at the location, or the location is charted and has a communications relay deployed.\n\nSee `/my/ships/{shipSymbol}/deploy` for deploying relays at a location.", + "security": [ + { + "AgentToken": [] + } + ] + } + }, + "/systems/{systemSymbol}/waypoints": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + } + ], + "get": { + "summary": "List Waypoints", + "tags": [ + "systems" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "system": "X1-OE", + "symbol": "X1-OE-PM", + "type": "PLANET", + "x": 10, + "y": 5, + "orbitals": [ + "X1-OE-PM01" + ], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE", + "SHIPYARD" + ], + "traits": [ + "OVERCROWDED", + "HIGH_TECH", + "BUREAUCRATIC", + "TRADING_HUB", + "TEMPERATE" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-PM01", + "type": "MOON", + "x": 10, + "y": 5, + "orbitals": [], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE" + ], + "traits": [ + "WEAK_GRAVITY" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-A005", + "type": "ASTEROID_FIELD", + "x": -1, + "y": -29, + "orbitals": [], + "faction": "MINERS_COLLECTIVE", + "features": [], + "traits": [ + "COMMON_METAL_DEPOSITS" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-25X", + "type": "JUMP_GATE", + "x": -38, + "y": 47, + "orbitals": [], + "faction": "SPACERS_GUILD", + "features": [], + "traits": [], + "charted": true, + "chartedBy": null + } + ], + "meta": { + "total": 4, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/Waypoint.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": { + "Success": { + "value": { + "data": [ + { + "system": "X1-OE", + "symbol": "X1-OE-PM", + "type": "PLANET", + "x": 10, + "y": 5, + "orbitals": [ + "X1-OE-PM01" + ], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE", + "SHIPYARD" + ], + "traits": [ + "OVERCROWDED", + "HIGH_TECH", + "BUREAUCRATIC", + "TRADING_HUB", + "TEMPERATE" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-PM01", + "type": "MOON", + "x": 10, + "y": 5, + "orbitals": [], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE" + ], + "traits": [ + "WEAK_GRAVITY" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-A005", + "type": "ASTEROID_FIELD", + "x": -1, + "y": -29, + "orbitals": [], + "faction": "MINERS_COLLECTIVE", + "features": [], + "traits": [ + "COMMON_METAL_DEPOSITS" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-25X", + "type": "JUMP_GATE", + "x": -38, + "y": 47, + "orbitals": [], + "faction": "SPACERS_GUILD", + "features": [], + "traits": [], + "charted": true, + "chartedBy": null + } + ], + "meta": { + "total": 4, + "page": 1, + "limit": 20 + } + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-waypoints-waypointSymbol", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Fetch all of the waypoints for a given system. System must be charted or a ship must be present to return waypoint details." + } + }, + "/systems/{systemSymbol}/waypoints/{waypointSymbol}": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "systemSymbol", + "in": "path", + "required": true, + "description": "The system symbol" + }, + { + "schema": { + "type": "string" + }, + "name": "waypointSymbol", + "in": "path", + "required": true, + "description": "The waypoint symbol" + } + ], + "get": { + "summary": "View Waypoint", + "tags": [ + "systems" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "description": "", + "type": "object", + "x-examples": { + "example-1": { + "data": [ + { + "system": "X1-OE", + "symbol": "X1-OE-PM", + "type": "PLANET", + "x": 10, + "y": 5, + "orbitals": [ + "X1-OE-PM01" + ], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE", + "SHIPYARD" + ], + "traits": [ + "OVERCROWDED", + "HIGH_TECH", + "BUREAUCRATIC", + "TRADING_HUB", + "TEMPERATE" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-PM01", + "type": "MOON", + "x": 10, + "y": 5, + "orbitals": [], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE" + ], + "traits": [ + "WEAK_GRAVITY" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-A005", + "type": "ASTEROID_FIELD", + "x": -1, + "y": -29, + "orbitals": [], + "faction": "MINERS_COLLECTIVE", + "features": [], + "traits": [ + "COMMON_METAL_DEPOSITS" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-25X", + "type": "JUMP_GATE", + "x": -38, + "y": 47, + "orbitals": [], + "faction": "SPACERS_GUILD", + "features": [], + "traits": [], + "charted": true, + "chartedBy": null + } + ], + "meta": { + "total": 4, + "page": 1, + "limit": 20 + } + } + }, + "properties": { + "data": { + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "$ref": "../models/Waypoint.yaml" + } + }, + "meta": { + "$ref": "../models/Meta.yaml" + } + }, + "required": [ + "data", + "meta" + ] + }, + "examples": { + "Success": { + "value": { + "data": [ + { + "system": "X1-OE", + "symbol": "X1-OE-PM", + "type": "PLANET", + "x": 10, + "y": 5, + "orbitals": [ + "X1-OE-PM01" + ], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE", + "SHIPYARD" + ], + "traits": [ + "OVERCROWDED", + "HIGH_TECH", + "BUREAUCRATIC", + "TRADING_HUB", + "TEMPERATE" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-PM01", + "type": "MOON", + "x": 10, + "y": 5, + "orbitals": [], + "faction": "COMMERCE_REPUBLIC", + "features": [ + "MARKETPLACE" + ], + "traits": [ + "WEAK_GRAVITY" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-A005", + "type": "ASTEROID_FIELD", + "x": -1, + "y": -29, + "orbitals": [], + "faction": "MINERS_COLLECTIVE", + "features": [], + "traits": [ + "COMMON_METAL_DEPOSITS" + ], + "charted": true, + "chartedBy": null + }, + { + "system": "X1-OE", + "symbol": "X1-OE-25X", + "type": "JUMP_GATE", + "x": -38, + "y": 47, + "orbitals": [], + "faction": "SPACERS_GUILD", + "features": [], + "traits": [], + "charted": true, + "chartedBy": null + } + ], + "meta": { + "total": 4, + "page": 1, + "limit": 20 + } + } + } + } + } + } + } + }, + "operationId": "get-systems-systemSymbol-waypoints", + "security": [ + { + "AgentToken": [] + } + ], + "description": "View the details of a waypoint." + } + } + }, + "tags": [ + { + "name": "ships" + }, + { + "name": "markets" + }, + { + "name": "trade" + }, + { + "name": "sell" + }, + { + "name": "purchase" + }, + { + "name": "navigation" + }, + { + "name": "agents" + }, + { + "name": "dock" + }, + { + "name": "orbit" + }, + { + "name": "jettison" + }, + { + "name": "jump" + }, + { + "name": "refuel" + }, + { + "name": "scan" + }, + { + "name": "contracts" + }, + { + "name": "chart" + }, + { + "name": "extract" + }, + { + "name": "mining" + }, + { + "name": "deliver" + }, + { + "name": "survey" + }, + { + "name": "systems" + }, + { + "name": "waypoints" + }, + { + "name": "shipyards" + }, + { + "name": "markets" + } + ], + "components": { + "schemas": {}, + "securitySchemes": { + "AgentToken": { + "type": "http", + "scheme": "bearer", + "description": "When you register a new agent you will be granted a private bearer token which grants authorization to use the API." + } + }, + "requestBodies": {} + }, + "security": [ + { + "AgentToken": [] + } + ] +} \ No newline at end of file diff --git a/reference/SpaceTraders.yaml b/reference/SpaceTraders.yaml deleted file mode 100644 index b6bd22d..0000000 --- a/reference/SpaceTraders.yaml +++ /dev/null @@ -1,2986 +0,0 @@ -openapi: 3.1.0 -info: - title: SpaceTraders API - version: 2.0.0-alpha - summary: SpaceTraders is a unique multiplayer game built on a free Web API. - contact: - name: Joel Brubaker - email: joel@spacetraders.io - license: - name: 'No' - url: 'https://choosealicense.com/no-permission/' - description: |- - SpaceTraders is a multiplayer sci-fi strategy game where you acquire and manage a fleet of ships across a growing and dynamic universe. - - Similar to games such as Eve Online, you work with or against other players to establish trade routes, chart new systems, mine precious ores, patrol for pirates, spy on factions, and discover hidden treasures. - - But what makes SpaceTraders unique is that the game is entirely accessible through open and well-documented API endpoints. In fact, SpaceTraders doesn't have a first-class client to play the game - if you want to take it for a spin, you should try one of our community-created web clients, or use the API documentation to see how you might play a game through an API. - - If this sounds fun and interesting to you, please drop into our Discord and get to know the community. We are actively working on new clients, new ideas and sharing tips for how to play the game. - - - ```json http - { - "method": "GET", - "url": "https://v2-0-0.alpha.spacetraders.io", - } - ``` -servers: - - url: 'https://v2-0-0.alpha.spacetraders.io' - description: v2.0.0-alpha -paths: - /agents: - post: - summary: Register New Agent - tags: - - agents - responses: - '201': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - token: - type: string - agent: - $ref: ../models/Agent.yaml - faction: - $ref: ../models/Faction.yaml - contract: - $ref: ../models/Contract.yaml - ship: - $ref: ../models/Ship.yaml - examples: - Success: - value: - data: - token: string - agent: - accountId: cl0hok34m0003ks0jjql5q8f2 - symbol: EMBER - headquarters: X1-OE-PM - credits: 0 - faction: - symbol: COMMERCE_REPUBLIC - name: Commerce Repubic - description: The Commerce Republic takes capital from top tier worlds and invests it into new systems with high potential for growth. - headquarters: X1-OE-PM - traits: - - BUREAUCRATIC - - CAPITALISTIC - - GUILD - - ESTABLISHED - contract: - id: cl0hok38t0014ks0jnoy8o5vh - faction: COMMERCE_REPUBLIC - type: PROCUREMENT - terms: - deadline: '2022-03-11T05:16:59.113Z' - payment: - onAccepted: 20000 - onFulfilled: 100000 - deliver: - - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: 0 - accepted: false - fulfilled: false - expiresAt: '2022-03-09T05:16:59.112Z' - ship: - symbol: string - frame: string - reactor: string - engine: string - fuel: 0 - modules: - - string - mounts: - - string - registration: - factionSymbol: string - agentSymbol: string - fee: 0 - role: string - integrity: - frame: 0 - reactor: 0 - engine: 0 - status: string - location: string - cargo: - - tradeSymbol: string - units: 0 - operationId: post-agents - description: |- - Creates a new agent and ties it to a temporary Account. Use `COMMERCE_REPUBLIC` as your starting faction if you don't know any other factions to choose from. - - The agent symbol is a 4-8 character string that will represent your agent. This symbol will prefix the symbol of every ship you own. Agent symbols will be cast to all uppercase characters. - - A new agent will be granted an authorization token, a contract with their starting faction, a command ship with a jump drive, and one hundred thousand credits. - - > #### Keep your token safe and secure - > - > Save your token during the alpha phase. There is no way to regenerate this token without starting a new agent. In the future you will be able to generate and manage your tokens from the SpaceTraders website. - - You can accept your contract using the `/my/contracts/{contractId}/accept` endpoint. You will want to navigate your command ship to a nearby asteroid field waypoint, and execute the `/my/ships/{shipSymbol}/accept` endpoint to mine various types of ores and minerals. - - Return to the contract destination and execute the `/my/ships/{shipSymbol}/deliver` endpoint to deposit goods into the contract. - - When your contract is fulfilled, you can call `/my/contracts/{contractId}/fulfill` to retrieve payment. - requestBody: - content: - application/json: - schema: - type: object - properties: - symbol: - type: string - description: How other agents will see your ships and information. - minLength: 4 - maxLength: 8 - example: BADGER - faction: - type: string - default: COMMERCE_REPUBLIC - description: The faction you choose determines your headquarters. - description: '' - /my/agent: - get: - summary: My Agent Details - tags: - - agents - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: ../models/Agent.yaml - examples: - Agent: - value: - data: - accountId: cl0hok34m0003ks0jjql5q8f2 - symbol: EMBER - headquarters: X1-OE-PM - credits: 0 - operationId: get-my-agent - security: - - AgentToken: [] - description: Fetch your agent's details. - '/my/ships/{shipSymbol}/chart': - post: - summary: Chart Waypoint - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - submitted: - type: array - items: - type: string - examples: - Success: - value: - data: - submitted: - - X1-ZZ - - X1-ZZ-7-EE - operationId: 'post-my-ships-:shipSymbol-chart' - description: |- - Command a ship to chart the current system and/or waypoint. - - Systems and waypoints in the universe are uncharted by default. These locations will not show up in the API until they have been charted by a ship. - - Charting a location will record your agent as the one who created the chart. - - Returns an array of system / waypoint symbols that have been charted. - security: - - AgentToken: [] - tags: - - systems - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The symbol of the ship - '/my/ships/{shipSymbol}/deliver': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The symbol of the ship - post: - summary: Deliver on Contract - tags: - - contracts - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: -30000 - properties: - data: - $ref: ../models/ContractDelivery.yaml - required: - - data - operationId: post-my-ships-shipSymbol-deliver - security: - - AgentToken: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - contractId: - type: string - tradeSymbol: - type: string - units: - type: integer - required: - - contractId - - tradeSymbol - description: Deliver cargo on a given contract. - '/my/ships/{shipSymbol}/dock': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The symbol of the ship - post: - summary: Dock Ship - tags: - - navigation - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: object - properties: - status: - type: string - required: - - status - required: - - data - x-examples: - example-1: - data: - status: DOCKED - examples: - Success: - value: - data: - status: DOCKED - operationId: post-my-ships-shipSymbol-dock - security: - - AgentToken: [] - description: Transition your ship from orbit to docked. Consecutive calls to this endpoint will succeed. - '/my/ships/{shipSymbol}/orbit': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The symbol of the ship - post: - summary: Orbit Ship - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - status: ORBIT - properties: - data: - type: object - properties: - status: - type: string - required: - - data - examples: - Success: - value: - data: - status: ORBIT - operationId: post-my-ships-shipSymbol-orbit - security: - - AgentToken: [] - description: Transition your ship from docked into orbit. Ships are placed into orbit by default when arriving at a destination. Consecutive calls to this endpoint will continue to return a 200 response status. - tags: - - navigation - '/my/ships/{shipSymbol}/jettison': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Jettison Cargo - tags: - - ships - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: object - properties: - tradeSymbol: - type: string - minLength: 1 - units: - type: integer - required: - - tradeSymbol - - units - required: - - data - x-examples: - example-1: - data: - tradeSymbol: ALUMINUM - units: 95 - examples: - Success: - value: - data: - tradeSymbol: ALUMINUM - units: 95 - operationId: post-my-ships-shipSymbol-jettison - description: Jettison cargo from your ship's cargo hold. - security: - - AgentToken: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - tradeSymbol: - type: string - units: - type: integer - minimum: 1 - '/my/ships/{shipSymbol}/extract': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The ship symbol - post: - summary: Extract Resources - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - extraction: - shipSymbol: 4B902A-1 - yield: - tradeSymbol: SILICON - units: 16 - cooldown: - duration: 119 - expiration: '2022-03-12T00:41:29.371Z' - properties: - data: - type: object - required: - - extraction - - cooldown - properties: - extraction: - $ref: ../models/Extraction.yaml - cooldown: - $ref: ../models/Cooldown.yaml - required: - - data - examples: - Success: - value: - data: - extraction: - shipSymbol: 4B902A-1 - yield: - tradeSymbol: SILICON - units: 16 - cooldown: - duration: 119 - expiration: '2022-03-12T00:41:29.371Z' - operationId: post-my-ships-shipSymbol-extract - requestBody: - content: - application/json: - schema: - type: - - object - - 'null' - properties: - survey: - $ref: ../models/Survey.yaml - examples: - No Survey: - value: {} - With Survey: - value: - survey: - signature: X1-OE-D2DD38 - deposits: - - COPPER_ORE - expiration: '2022-03-08T05:41:55.514Z' - description: '' - description: Extract resources from the waypoint into your ship. Send a survey as the payload to target specific yields. The entire survey must be sent as it contains a signature that the backend verifies. - security: - - AgentToken: [] - tags: - - extract - get: - summary: Extraction Cooldown - operationId: get-my-ships-shipSymbol-extract - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - cooldown: - duration: 119 - expiration: '2022-03-12T00:41:29.285Z' - properties: - data: - type: object - required: - - cooldown - properties: - cooldown: - $ref: ../models/Cooldown.yaml - required: - - data - examples: - Success: - value: - data: - cooldown: - duration: 119 - expiration: '2022-03-12T00:41:29.285Z' - description: Get the status of your last extraction. - security: - - AgentToken: [] - tags: - - extract - '/my/ships/{shipSymbol}/survey': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Survey Waypoint - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - signature: X1-OE-D2DD38 - deposits: - - COPPER_ORE - expiration: '2022-03-08T05:41:55.514Z' - - signature: X1-OE-B58FEB - deposits: - - ALUMINUM_ORE - - ALUMINUM_ORE - - ALUMINUM_ORE - expiration: '2022-03-08T05:39:15.519Z' - - signature: X1-OE-0E326C - deposits: - - ALUMINUM_ORE - - SILICON - expiration: '2022-03-08T05:20:27.521Z' - - signature: X1-OE-5CDFA4 - deposits: - - COPPER_ORE - - COPPER_ORE - - COPPER_ORE - - IRON_ORE - expiration: '2022-03-08T05:44:34.522Z' - - signature: X1-OE-86C3A1 - deposits: - - COPPER_ORE - - COPPER_ORE - - IRON_ORE - expiration: '2022-03-08T05:43:45.522Z' - - signature: X1-OE-C97BEA - deposits: - - ALUMINUM_ORE - - COPPER_ORE - - QUARTZ - - QUARTZ - expiration: '2022-03-08T05:22:39.523Z' - - signature: X1-OE-9913BD - deposits: - - QUARTZ - expiration: '2022-03-08T05:37:45.523Z' - - signature: X1-OE-8D87D2 - deposits: - - COPPER_ORE - - SILICON - expiration: '2022-03-08T05:32:57.524Z' - properties: - data: - type: object - properties: - surveys: - type: array - items: - $ref: ../models/Survey.yaml - cooldown: - $ref: ../models/Cooldown.yaml - required: - - data - examples: - Success: - value: - data: - cooldown: - duration: 899 - expiration: '2022-03-12T02:11:35.618Z' - surveys: - - signature: X1-OE-397C82 - deposits: - - SILICON - expiration: '2022-03-12T02:00:19.622Z' - - signature: X1-OE-4413F6 - deposits: - - ALUMINUM_ORE - - ALUMINUM_ORE - - COPPER_ORE - - IRON_ORE - expiration: '2022-03-12T02:20:08.625Z' - - signature: X1-OE-E6480F - deposits: - - ALUMINUM_ORE - - IRON_ORE - - QUARTZ - - SILICON - expiration: '2022-03-12T02:18:00.626Z' - - signature: X1-OE-660BE9 - deposits: - - ALUMINUM_ORE - expiration: '2022-03-12T02:20:45.626Z' - - signature: X1-OE-D64798 - deposits: - - COPPER_ORE - - QUARTZ - - SILICON - expiration: '2022-03-12T02:07:33.626Z' - - signature: X1-OE-F799F3 - deposits: - - IRON_ORE - expiration: '2022-03-12T02:23:16.627Z' - operationId: post-my-ships-shipSymbol-survey - security: - - AgentToken: [] - description: |- - If you want to target specific yields for an extraction, you can survey a waypoint, such as an asteroid field, and send the survey in the body of the extract request. Each survey may have multiple deposits, and if a symbol shows up more than once, that indicates a higher chance of extracting that resource. - - Your ship will enter a cooldown between consecutive survey requests. Surveys will eventually expire after a period of time. Multiple ships can use the same survey for extraction. - tags: - - extract - get: - summary: Survey Cooldown - tags: - - extract - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - cooldown: - $ref: ../models/Cooldown.yaml - examples: - Success: - value: - data: - cooldown: - duration: 899 - expiration: '2022-03-12T02:11:35.618Z' - operationId: get-my-ships-shipSymbol-survey - description: 'Executing a survey will initiate a cooldown for a number of seconds before you can call it again. This endpoint returns the details of your cooldown, or a 404 if there is no cooldown for the survey action.' - '/my/ships/{shipSymbol}/jump': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Jump Ship - tags: - - navigation - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - jump: - shipSymbol: 1D7FDA-1 - destination: 00E0B1 - cooldown: - duration: 719 - expiration: '2022-03-12T00:52:56.735Z' - properties: - data: - type: object - required: - - jump - - cooldown - properties: - jump: - type: object - required: - - shipSymbol - - destination - properties: - shipSymbol: - type: string - minLength: 1 - destination: - type: string - minLength: 1 - cooldown: - $ref: ../models/Cooldown.yaml - required: - - data - examples: - Success: - value: - data: - jump: - shipSymbol: 1D7FDA-1 - destination: 00E0B1 - cooldown: - duration: 719 - expiration: '2022-03-12T00:52:56.735Z' - operationId: post-my-ships-shipSymbol-jump - security: - - AgentToken: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - destination: - type: string - description: The system symbol to jump to. - get: - summary: Jump Cooldown - operationId: get-my-ships-shipSymbol-jump - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - cooldown: - duration: 719 - expiration: '2022-03-12T00:52:56.735Z' - properties: - data: - type: object - required: - - cooldown - properties: - cooldown: - $ref: ../models/Cooldown.yaml - required: - - data - security: - - AgentToken: [] - tags: - - navigation - '/my/ships/{shipSymbol}/purchase': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Purchase Cargo - tags: - - trade - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - waypointSymbol: X1-OE-PM - tradeSymbol: MICROPROCESSORS - credits: -843 - units: 1 - properties: - data: - $ref: ../models/Trade.yaml - required: - - data - examples: - Success: - value: - data: - waypointSymbol: X1-OE-PM - tradeSymbol: MICROPROCESSORS - credits: -843 - units: 1 - operationId: post-my-ships-shipSymbol-purchase - security: - - AgentToken: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - tradeSymbol: - type: string - units: - type: integer - '/my/ships/{shipSymbol}/sell': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Sell Cargo - tags: - - trade - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - waypointSymbol: X1-OE-PM - tradeSymbol: SILICON - credits: 144 - units: -1 - properties: - data: - $ref: ../models/Trade.yaml - required: - - data - examples: - Success: - value: - data: - waypointSymbol: X1-OE-PM - tradeSymbol: SILICON - credits: 144 - units: -1 - operationId: post-my-ships-shipSymbol-sell - description: Sell cargo from your ship's hold to the local market. - security: - - AgentToken: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - tradeSymbol: - type: string - units: - type: integer - description: '' - '/my/ships/{shipSymbol}/refuel': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Refuel Ship - tags: - - navigation - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: object - properties: - credits: - type: integer - fuel: - type: integer - required: - - credits - - fuel - required: - - data - x-examples: - example-1: - data: - credits: 0 - fuel: 0 - examples: - Success: - value: - data: - credits: -1920 - fuel: 800 - operationId: post-my-ships-shipSymbol-refuel - security: - - AgentToken: [] - '/my/ships/{shipSymbol}/deploy': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The ship symbol - post: - summary: Deploy Asset - tags: - - markets - responses: - '204': - description: OK - operationId: post-my-ships-shipSymbol-deploy - security: - - AgentToken: [] - description: |- - Use this endpoint to deploy a Communications Relay to a waypoint. A waypoint with a communications relay will allow agents to retrieve price information from the market. Without a relay, agents must send a ship to a market to retrieve price information. - - Communication relays can be purchased from a market that exports `COMM_RELAY_I`. - requestBody: - content: - application/json: - schema: - type: object - properties: - tradeSymbol: - type: string - required: - - tradeSymbol - '/my/ships/{shipSymbol}/scan': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - post: - summary: Scan - tags: - - ships - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - ships: - - symbol: COMMERCE_REPUBLIC-0060A0 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: EXCAVATOR - frameSymbol: FRAME_HEAVY_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-08T05:20:14.725Z' - - symbol: ZANZIBAR_TRIKES-DF0AAF - registration: - factionSymbol: ZANZIBAR_TRIKES - role: HAULER - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-08T05:20:00.725Z' - - symbol: ZANZIBAR_TRIKES-9B80BE - registration: - factionSymbol: ZANZIBAR_TRIKES - role: TRANSPORT - frameSymbol: FRAME_TRANSPORT - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-08T05:20:06.725Z' - - symbol: COMMERCE_REPUBLIC-117520 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: HARVESTER - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-08T05:19:55.725Z' - - symbol: SPACERS_GUILD-609AA5 - registration: - factionSymbol: SPACERS_GUILD - role: HAULER - frameSymbol: FRAME_FRIGATE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-08T05:19:38.725Z' - - symbol: MINERS_COLLECTIVE-7AD322 - registration: - factionSymbol: MINERS_COLLECTIVE - role: EXCAVATOR - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-08T05:19:11.725Z' - - symbol: ZANZIBAR_TRIKES-AE6D78 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: HAULER - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-08T05:20:44.725Z' - - symbol: SPACERS_GUILD-92828B - registration: - factionSymbol: SPACERS_GUILD - role: SURVEYOR - frameSymbol: FRAME_LIGHT_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-08T05:20:49.726Z' - - symbol: ZANZIBAR_TRIKES-B5EAD1 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: TRANSPORT - frameSymbol: FRAME_TRANSPORT - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-08T05:20:25.726Z' - - symbol: ZANZIBAR_TRIKES-6A4E0D - registration: - factionSymbol: ZANZIBAR_TRIKES - role: HAULER - frameSymbol: FRAME_EXPLORER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-08T05:19:19.726Z' - cooldown: 60 - properties: - data: - oneOf: - - properties: - ships: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/ScannedShip.yaml - cooldown: - $ref: ../models/Cooldown.yaml - required: - - ships - - cooldown - - properties: - cooldown: - $ref: ../models/Cooldown.yaml - system: - $ref: ../models/System.yaml - - properties: - cooldown: - $ref: ../models/Cooldown.yaml - waypoint: - $ref: ../models/Waypoint.yaml - type: object - required: - - data - examples: - Approaching Ships: - value: - data: - cooldown: - duration: 59 - expiration: '2022-03-12T00:42:44.220Z' - ships: - - symbol: SPACERS_GUILD-65E1BA - registration: - factionSymbol: SPACERS_GUILD - role: EXCAVATOR - frameSymbol: FRAME_LIGHT_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:14.222Z' - - symbol: MINERS_COLLECTIVE-C6ACCA - registration: - factionSymbol: MINERS_COLLECTIVE - role: HARVESTER - frameSymbol: FRAME_INTERCEPTOR - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:38.222Z' - - symbol: COMMERCE_REPUBLIC-866DC7 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: SURVEYOR - frameSymbol: FRAME_LIGHT_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:45:21.222Z' - - symbol: SPACERS_GUILD-2B1D01 - registration: - factionSymbol: SPACERS_GUILD - role: SURVEYOR - frameSymbol: FRAME_HEAVY_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:53.222Z' - - symbol: MINERS_COLLECTIVE-2F238C - registration: - factionSymbol: MINERS_COLLECTIVE - role: HAULER - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:07.222Z' - - symbol: ZANZIBAR_TRIKES-ACF237 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: HAULER - frameSymbol: FRAME_INTERCEPTOR - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:22.223Z' - - symbol: SPACERS_GUILD-94A474 - registration: - factionSymbol: SPACERS_GUILD - role: EXCAVATOR - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:43:51.223Z' - - symbol: ZANZIBAR_TRIKES-648BA8 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: PATROL - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:56.223Z' - - symbol: COMMERCE_REPUBLIC-1EED24 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: PATROL - frameSymbol: FRAME_EXPLORER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:45:23.223Z' - - symbol: ZANZIBAR_TRIKES-A5600D - registration: - factionSymbol: ZANZIBAR_TRIKES - role: PATROL - frameSymbol: FRAME_FRIGATE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:00.223Z' - Departing Ships: - value: - data: - cooldown: - duration: 59 - expiration: '2022-03-12T00:42:44.220Z' - ships: - - symbol: SPACERS_GUILD-65E1BA - registration: - factionSymbol: SPACERS_GUILD - role: EXCAVATOR - frameSymbol: FRAME_LIGHT_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:14.222Z' - - symbol: MINERS_COLLECTIVE-C6ACCA - registration: - factionSymbol: MINERS_COLLECTIVE - role: HARVESTER - frameSymbol: FRAME_INTERCEPTOR - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:38.222Z' - - symbol: COMMERCE_REPUBLIC-866DC7 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: SURVEYOR - frameSymbol: FRAME_LIGHT_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:45:21.222Z' - - symbol: SPACERS_GUILD-2B1D01 - registration: - factionSymbol: SPACERS_GUILD - role: SURVEYOR - frameSymbol: FRAME_HEAVY_FREIGHTER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:53.222Z' - - symbol: MINERS_COLLECTIVE-2F238C - registration: - factionSymbol: MINERS_COLLECTIVE - role: HAULER - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:07.222Z' - - symbol: ZANZIBAR_TRIKES-ACF237 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: HAULER - frameSymbol: FRAME_INTERCEPTOR - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:22.223Z' - - symbol: SPACERS_GUILD-94A474 - registration: - factionSymbol: SPACERS_GUILD - role: EXCAVATOR - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:43:51.223Z' - - symbol: ZANZIBAR_TRIKES-648BA8 - registration: - factionSymbol: ZANZIBAR_TRIKES - role: PATROL - frameSymbol: FRAME_SHUTTLE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_I - expiration: '2022-03-12T00:44:56.223Z' - - symbol: COMMERCE_REPUBLIC-1EED24 - registration: - factionSymbol: COMMERCE_REPUBLIC - role: PATROL - frameSymbol: FRAME_EXPLORER - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:45:23.223Z' - - symbol: ZANZIBAR_TRIKES-A5600D - registration: - factionSymbol: ZANZIBAR_TRIKES - role: PATROL - frameSymbol: FRAME_FRIGATE - reactorSymbol: REACTOR_FUSION_I - engineSymbol: ENGINE_ION_DRIVE_II - expiration: '2022-03-12T00:44:00.223Z' - System Scan: - value: - data: - cooldown: - duration: 0 - expiration: '2022-03-12T00:42:44.220Z' - system: - symbol: X1-OE - sector: X1 - type: RED_STAR - x: 0 - 'y': 0 - waypoints: - - X1-OE-PM - - X1-OE-PM01 - - X1-OE-25X - - X1-OE-A005 - factions: - - COMMERCE_REPUBLIC - - SPACERS_GUILD - - MINERS_COLLECTIVE - charted: true - chartedBy: null - Waypoint Scan: - value: - data: - cooldown: - duration: 0 - expiration: '2022-03-12T00:42:44.220Z' - waypoint: - system: X1-OE - symbol: X1-OE-25X - type: JUMP_GATE - x: -1 - 'y': -59 - orbitals: [] - faction: SPACERS_GUILD - features: [] - traits: [] - charted: true - chartedBy: null - operationId: post-my-ships-shipSymbol-scan - security: - - AgentToken: [] - description: 'Execute a ship scan to view approach / departing ships, system information or details about a waypoint. Send a scan mode to select the type of scan performed by your ship.' - requestBody: - content: - application/json: - schema: - type: object - properties: - mode: - type: string - enum: - - APPROACHING_SHIPS - - DEPARTING_SHIPS - - SYSTEM - - WAYPOINT - required: - - mode - examples: - Approaching Ships: - value: - mode: APPROACHING_SHIPS - Departing Ships: - value: - mode: APPROACHING_SHIPS - description: '' - get: - summary: Scan Cooldown - operationId: get-my-ships-shipSymbol-scan - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - cooldown: - $ref: ../models/Cooldown.yaml - examples: - Success: - value: - data: - cooldown: - duration: 59 - expiration: '2022-03-12T00:42:44.220Z' - security: - - AgentToken: [] - tags: - - ships - '/my/ships/{shipSymbol}/navigate': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - description: The ship symbol - post: - summary: Navigate Ship - tags: - - navigation - responses: - '201': - description: Created - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - shipSymbol: 3AE434-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2159 - arrivedAt: null - properties: - data: - type: object - properties: - navigation: - $ref: ../models/ShipNavigation.yaml - fuelCost: - type: integer - required: - - data - examples: - Success: - value: - data: - fuelCost: 38 - navigation: - shipSymbol: BA03F2-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2279 - arrivedAt: null - operationId: post-my-ships-shipSymbol-navigate - requestBody: - content: - application/json: - schema: - type: object - properties: - destination: - type: string - description: The waypoint symbol to navigate to. - security: - - AgentToken: [] - get: - summary: Navigation Status - operationId: get-my-ships-shipSymbol-navigate - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - shipSymbol: 3AE434-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2159 - arrivedAt: null - properties: - data: - type: object - properties: - navigation: - $ref: ../models/ShipNavigation.yaml - required: - - data - examples: - Success: - value: - data: - navigation: - shipSymbol: BA03F2-1 - departure: X1-OE-PM - destination: X1-OE-A005 - durationRemaining: 2279 - arrivedAt: null - description: Get the status of your last navigation. - security: - - AgentToken: [] - tags: - - navigation - '/my/ships/{shipSymbol}': - parameters: - - schema: - type: string - name: shipSymbol - in: path - required: true - get: - summary: View Ship - tags: - - ships - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - symbol: 653298-1 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - properties: - data: - $ref: ../models/Ship.yaml - required: - - data - operationId: get-my-ships-shipSymbol - description: Retrieve the details of your ship. - security: - - AgentToken: [] - /my/ships: - get: - summary: List Ships - tags: - - ships - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - symbol: 653298-1 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 653298-2 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 653298-3 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 653298-4 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 653298-5 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 653298-6 - crew: null - officers: null - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: '653298' - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - meta: - total: 6 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/Ship.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: - Success: - value: - data: - - symbol: 55B261-1 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 55B261-2 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 55B261-3 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 55B261-4 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 55B261-5 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - - symbol: 55B261-6 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 55B261 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - meta: - total: 6 - page: 1 - limit: 20 - operationId: get-my-ships - description: Retrieve all of your ships. - security: - - AgentToken: [] - post: - summary: Purchase Ship - tags: - - shipyards - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - symbol: 4F4D44-1 - crew: null - officers: null - fuel: 100 - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - registration: - factionSymbol: COMMERCE_REPUBLIC - agentSymbol: 4F4D44 - fee: 100 - role: EXCAVATOR - integrity: - frame: 1 - reactor: 1 - engine: 1 - status: DOCKED - location: X1-OE-PM - cargo: [] - properties: - data: - type: object - properties: - ship: - $ref: ../models/Ship.yaml - credits: - type: integer - required: - - data - operationId: post-my-ships - security: - - AgentToken: [] - description: Purchase a ship - requestBody: - content: - application/json: - schema: - type: object - properties: - id: - type: string - description: The id of the shipyard listing you want to purchase. - /my/contracts: - get: - summary: List Contracts - tags: - - contracts - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - id: cl0hok38t0014ks0jnoy8o5vh - faction: COMMERCE_REPUBLIC - type: PROCUREMENT - terms: - deadline: '2022-03-11T05:16:59.113Z' - payment: - onAccepted: 20000 - onFulfilled: 100000 - deliver: - - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: 0 - accepted: false - fulfilled: false - expiresAt: '2022-03-09T05:16:59.112Z' - - id: cl0hok3920023kv0jflbjpltg - faction: COMMERCE_REPUBLIC - type: PROCUREMENT - terms: - deadline: '2022-03-11T05:16:59.123Z' - payment: - onAccepted: 20000 - onFulfilled: 100000 - deliver: - - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: 0 - accepted: false - fulfilled: false - expiresAt: '2022-03-09T05:16:59.122Z' - meta: - total: 2 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/Contract.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: - Success: - value: - data: - - id: cl0hok38t0014ks0jnoy8o5vh - faction: COMMERCE_REPUBLIC - type: PROCUREMENT - terms: - deadline: '2022-03-11T05:16:59.113Z' - payment: - onAccepted: 20000 - onFulfilled: 100000 - deliver: - - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: 0 - accepted: false - fulfilled: false - expiresAt: '2022-03-09T05:16:59.112Z' - meta: - total: 10 - page: 1 - limit: 10 - operationId: get-my-contracts - security: - - AgentToken: [] - description: List all of your contracts. - '/my/contracts/{contractId}': - parameters: - - schema: - type: string - name: contractId - in: path - required: true - description: The contract ID - get: - summary: Contract Details - tags: - - contracts - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: ../models/Contract.yaml - examples: - Success: - value: - data: - id: cl0hok38t0014ks0jnoy8o5vh - faction: COMMERCE_REPUBLIC - type: PROCUREMENT - terms: - deadline: '2022-03-11T05:16:59.113Z' - payment: - onAccepted: 20000 - onFulfilled: 100000 - deliver: - - tradeSymbol: IRON_ORE - destination: X1-OE-PM - units: 10000 - fulfilled: 0 - accepted: false - fulfilled: false - expiresAt: '2022-03-09T05:16:59.112Z' - operationId: get-my-contracts-contractId - security: - - AgentToken: [] - description: Get the details of a contract by ID. - '/my/contracts/{contractId}/accept': - parameters: - - schema: - type: string - name: contractId - in: path - required: true - post: - summary: Accept Contract - tags: - - contracts - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: ../models/Contract.yaml - operationId: post-my-contracts-contractId-accept - security: - - AgentToken: [] - description: Accept a contract. - /systems: - get: - summary: List Systems - tags: - - systems - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - symbol: X1-OE - sector: X1 - type: RED_STAR - x: 0 - 'y': 0 - waypoints: - - X1-OE-PM - - X1-OE-PM01 - - X1-OE-A005 - - X1-OE-25X - factions: - - COMMERCE_REPUBLIC - - MINERS_COLLECTIVE - - SPACERS_GUILD - charted: true - chartedBy: null - - symbol: X1-EV - sector: X1 - type: ORANGE_STAR - x: 3 - 'y': 4 - waypoints: - - X1-EV-A004 - factions: - - COMMERCE_REPUBLIC - charted: true - chartedBy: null - - symbol: X1-ZZ - sector: X1 - type: BLUE_STAR - x: -2 - 'y': 11 - waypoints: [] - factions: [] - charted: false - chartedBy: null - meta: - total: 3 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/System.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: - Success: - value: - data: - - symbol: X1-OE - sector: X1 - type: RED_STAR - x: 0 - 'y': 0 - waypoints: - - X1-OE-PM - - X1-OE-PM01 - - X1-OE-A005 - - X1-OE-25X - factions: - - COMMERCE_REPUBLIC - - MINERS_COLLECTIVE - - SPACERS_GUILD - charted: true - chartedBy: null - meta: - total: 0 - page: 0 - limit: 0 - operationId: get-systems - description: Return a list of all systems. - security: - - AgentToken: [] - '/systems/{systemSymbol}': - parameters: - - schema: - type: string - default: X1-OE - name: systemSymbol - in: path - required: true - description: The system symbol - get: - summary: View System - tags: - - systems - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - symbol: X1-ZZ - sector: X1 - type: BLUE_STAR - x: -2 - 'y': 9 - waypoints: [] - factions: [] - charted: false - chartedBy: null - properties: - data: - $ref: ../models/System.yaml - required: - - data - examples: - Success: - value: - data: - symbol: X1-ZZ - sector: X1 - type: BLUE_STAR - x: -2 - 'y': 9 - waypoints: [] - factions: [] - charted: false - chartedBy: null - operationId: get-systems-systemSymbol - security: - - AgentToken: [] - '/systems/{systemSymbol}/shipyards': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: the system symbol - get: - summary: List Shipyards - tags: - - shipyards - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - symbol: X1-OE-PM - faction: COMMERCE_REPUBLIC - meta: - total: 1 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/Shipyard.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - operationId: get-systems-systemSymbol-shipyards - security: - - AgentToken: [] - description: Returns a list of all shipyards in a system. - '/systems/{systemSymbol}/shipyards/{waypointSymbol}': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - - schema: - type: string - name: waypointSymbol - in: path - required: true - description: The waypoint symbol - get: - summary: Shipyard Details - tags: - - shipyards - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: ../models/Shipyard.yaml - operationId: get-systems-systemSymbol-shipyards-waypointSymbol - security: - - AgentToken: [] - '/systems/{systemSymbol}/shipyards/{waypointSymbol}/ships': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - - schema: - type: string - name: waypointSymbol - in: path - required: true - description: The waypoint symbol - get: - summary: Shipyard Listings - tags: - - shipyards - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - id: cl0nahta90000aq0jonm1nprl - waypoint: X1-OE-PM - price: 58191 - role: EXCAVATOR - frame: FRAME_DRONE - reactor: REACTOR_SOLAR_I - engine: ENGINE_SOLAR_PROPULSION - modules: - - MODULE_CARGO_HOLD - mounts: - - MOUNT_MINING_LASER_I - meta: - total: 1 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/ShipyardListing.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: {} - operationId: get-systems-systemSymbol-shipyards-waypointSymbol-ships - security: - - AgentToken: [] - '/trade/{tradeSymbol}/imports': - parameters: - - schema: - type: string - name: tradeSymbol - in: path - required: true - description: The trade symbol - get: - summary: Trade Imports - tags: - - markets - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/MarketTrade.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: {} - operationId: get-trade-tradeSymbol-imports - security: - - AgentToken: [] - '/trade/{tradeSymbol}/exports': - parameters: - - schema: - type: string - name: tradeSymbol - in: path - required: true - description: The trade symbol - get: - summary: Trade Exports - tags: - - markets - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/MarketTrade.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: {} - operationId: get-trade-tradeSymbol-exports - security: - - AgentToken: [] - '/trade/{tradeSymbol}/exchange': - parameters: - - schema: - type: string - name: tradeSymbol - in: path - required: true - description: The trade symbol - get: - summary: Trade Exchanges - tags: - - markets - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/MarketTrade.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: {} - operationId: get-trade-tradeSymbol-exchange - security: - - AgentToken: [] - '/systems/{systemSymbol}/markets': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - get: - summary: List Markets - tags: - - markets - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - exports: - - waypointSymbol: X1-OE-PM - tradeSymbol: MICROPROCESSORS - price: 834 - tariff: 0 - imports: - - waypointSymbol: X1-OE-PM - tradeSymbol: SILICON - price: 144 - tariff: 0 - - waypointSymbol: X1-OE-PM - tradeSymbol: QUARTZ - price: 286 - tariff: 0 - exchange: [] - properties: - data: - type: array - items: - type: string - required: - - data - examples: - Success: - value: - data: - - X1-AK3-88760F - meta: - total: 1 - page: 1 - limit: 20 - operationId: get-systems-systemSymbol-markets - description: |- - Retrieve a list of all charted markets in the given system. Markets are only available if the waypoint is charted and contains a communications relay. - - To install a communications relay at a market, look at the `my/ships/{shipSymbol}/deploy` endpoint. - security: - - AgentToken: [] - '/systems/{systemSymbol}/markets/{waypointSymbol}': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - - schema: - type: string - name: waypointSymbol - in: path - required: true - description: The waypoint symbol - get: - summary: View Market - tags: - - markets - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - exports: - - waypointSymbol: X1-OE-PM - tradeSymbol: MICROPROCESSORS - price: 834 - tariff: 0 - imports: - - waypointSymbol: X1-OE-PM - tradeSymbol: SILICON - price: 144 - tariff: 0 - - waypointSymbol: X1-OE-PM - tradeSymbol: QUARTZ - price: 286 - tariff: 0 - exchange: [] - properties: - data: - type: object - required: - - exports - - imports - - exchange - properties: - exports: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/MarketTrade.yaml - imports: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/MarketTrade.yaml - exchange: - type: array - items: - $ref: ../models/MarketTrade.yaml - required: - - data - examples: - Success: - value: - data: - exports: - - waypointSymbol: X1-OE-PM - tradeSymbol: MICROPROCESSORS - price: 834 - tariff: 0 - imports: - - waypointSymbol: X1-OE-PM - tradeSymbol: SILICON - price: 144 - tariff: 0 - - waypointSymbol: X1-OE-PM - tradeSymbol: QUARTZ - price: 286 - tariff: 0 - exchange: [] - operationId: get-systems-systemSymbol-markets-waypointSymbol - description: |- - Retrieve imports, exports and exchange data from a marketplace. Imports can be sold, exports can be purchased, and exchange trades can be purchased or sold. - - Market data is only available if you have a ship at the location, or the location is charted and has a communications relay deployed. - - See `/my/ships/{shipSymbol}/deploy` for deploying relays at a location. - security: - - AgentToken: [] - '/systems/{systemSymbol}/waypoints': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - get: - summary: List Waypoints - tags: - - systems - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - system: X1-OE - symbol: X1-OE-PM - type: PLANET - x: 10 - 'y': 5 - orbitals: - - X1-OE-PM01 - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - - SHIPYARD - traits: - - OVERCROWDED - - HIGH_TECH - - BUREAUCRATIC - - TRADING_HUB - - TEMPERATE - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-PM01 - type: MOON - x: 10 - 'y': 5 - orbitals: [] - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - traits: - - WEAK_GRAVITY - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-A005 - type: ASTEROID_FIELD - x: -1 - 'y': -29 - orbitals: [] - faction: MINERS_COLLECTIVE - features: [] - traits: - - COMMON_METAL_DEPOSITS - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-25X - type: JUMP_GATE - x: -38 - 'y': 47 - orbitals: [] - faction: SPACERS_GUILD - features: [] - traits: [] - charted: true - chartedBy: null - meta: - total: 4 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/Waypoint.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: - Success: - value: - data: - - system: X1-OE - symbol: X1-OE-PM - type: PLANET - x: 10 - 'y': 5 - orbitals: - - X1-OE-PM01 - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - - SHIPYARD - traits: - - OVERCROWDED - - HIGH_TECH - - BUREAUCRATIC - - TRADING_HUB - - TEMPERATE - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-PM01 - type: MOON - x: 10 - 'y': 5 - orbitals: [] - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - traits: - - WEAK_GRAVITY - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-A005 - type: ASTEROID_FIELD - x: -1 - 'y': -29 - orbitals: [] - faction: MINERS_COLLECTIVE - features: [] - traits: - - COMMON_METAL_DEPOSITS - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-25X - type: JUMP_GATE - x: -38 - 'y': 47 - orbitals: [] - faction: SPACERS_GUILD - features: [] - traits: [] - charted: true - chartedBy: null - meta: - total: 4 - page: 1 - limit: 20 - operationId: get-systems-systemSymbol-waypoints-waypointSymbol - security: - - AgentToken: [] - description: Fetch all of the waypoints for a given system. System must be charted or a ship must be present to return waypoint details. - '/systems/{systemSymbol}/waypoints/{waypointSymbol}': - parameters: - - schema: - type: string - name: systemSymbol - in: path - required: true - description: The system symbol - - schema: - type: string - name: waypointSymbol - in: path - required: true - description: The waypoint symbol - get: - summary: View Waypoint - tags: - - systems - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - x-examples: - example-1: - data: - - system: X1-OE - symbol: X1-OE-PM - type: PLANET - x: 10 - 'y': 5 - orbitals: - - X1-OE-PM01 - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - - SHIPYARD - traits: - - OVERCROWDED - - HIGH_TECH - - BUREAUCRATIC - - TRADING_HUB - - TEMPERATE - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-PM01 - type: MOON - x: 10 - 'y': 5 - orbitals: [] - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - traits: - - WEAK_GRAVITY - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-A005 - type: ASTEROID_FIELD - x: -1 - 'y': -29 - orbitals: [] - faction: MINERS_COLLECTIVE - features: [] - traits: - - COMMON_METAL_DEPOSITS - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-25X - type: JUMP_GATE - x: -38 - 'y': 47 - orbitals: [] - faction: SPACERS_GUILD - features: [] - traits: [] - charted: true - chartedBy: null - meta: - total: 4 - page: 1 - limit: 20 - properties: - data: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: ../models/Waypoint.yaml - meta: - $ref: ../models/Meta.yaml - required: - - data - - meta - examples: - Success: - value: - data: - - system: X1-OE - symbol: X1-OE-PM - type: PLANET - x: 10 - 'y': 5 - orbitals: - - X1-OE-PM01 - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - - SHIPYARD - traits: - - OVERCROWDED - - HIGH_TECH - - BUREAUCRATIC - - TRADING_HUB - - TEMPERATE - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-PM01 - type: MOON - x: 10 - 'y': 5 - orbitals: [] - faction: COMMERCE_REPUBLIC - features: - - MARKETPLACE - traits: - - WEAK_GRAVITY - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-A005 - type: ASTEROID_FIELD - x: -1 - 'y': -29 - orbitals: [] - faction: MINERS_COLLECTIVE - features: [] - traits: - - COMMON_METAL_DEPOSITS - charted: true - chartedBy: null - - system: X1-OE - symbol: X1-OE-25X - type: JUMP_GATE - x: -38 - 'y': 47 - orbitals: [] - faction: SPACERS_GUILD - features: [] - traits: [] - charted: true - chartedBy: null - meta: - total: 4 - page: 1 - limit: 20 - operationId: get-systems-systemSymbol-waypoints - security: - - AgentToken: [] - description: View the details of a waypoint. -tags: - - name: ships - - name: markets - - name: trade - - name: sell - - name: purchase - - name: navigation - - name: agents - - name: dock - - name: orbit - - name: jettison - - name: jump - - name: refuel - - name: scan - - name: contracts - - name: chart - - name: extract - - name: mining - - name: deliver - - name: survey - - name: systems - - name: waypoints - - name: shipyards - - name: markets -components: - schemas: {} - securitySchemes: - AgentToken: - type: http - scheme: bearer - description: When you register a new agent you will be granted a private bearer token which grants authorization to use the API. - requestBodies: {} diff --git a/resources/agent/MyAgent.json b/resources/agent/MyAgent.json new file mode 100644 index 0000000..925ffb5 --- /dev/null +++ b/resources/agent/MyAgent.json @@ -0,0 +1,44 @@ +{ + "get": { + "summary": "My Agent Details", + "tags": [ + "agents" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "../../models/Agent.yaml" + } + } + }, + "examples": { + "Agent": { + "value": { + "data": { + "accountId": "cl0hok34m0003ks0jjql5q8f2", + "symbol": "EMBER", + "headquarters": "X1-OE-PM", + "credits": 0 + } + } + } + } + } + } + } + }, + "operationId": "get-my-agent", + "security": [ + { + "AgentToken": [] + } + ], + "description": "Fetch your agent's details." + } +} \ No newline at end of file diff --git a/resources/agent/RegisterAgent.json b/resources/agent/RegisterAgent.json new file mode 100644 index 0000000..a76abf5 --- /dev/null +++ b/resources/agent/RegisterAgent.json @@ -0,0 +1,68 @@ +{ + "post": { + "operationId": "register-agent", + "summary": "Register New Agent", + "description": "Creates a new agent and ties it to a temporary Account. Use `COMMERCE_REPUBLIC` as your starting faction if you don't know any other factions to choose from.\n\nThe agent symbol is a 4-8 character string that will represent your agent. This symbol will prefix the symbol of every ship you own. Agent symbols will be cast to all uppercase characters.\n\nA new agent will be granted an authorization token, a contract with their starting faction, a command ship with a jump drive, and one hundred thousand credits.\n\n> #### Keep your token safe and secure\n>\n> Save your token during the alpha phase. There is no way to regenerate this token without starting a new agent. In the future you will be able to generate and manage your tokens from the SpaceTraders website.\n\nYou can accept your contract using the `/my/contracts/{contractId}/accept` endpoint. You will want to navigate your command ship to a nearby asteroid field waypoint, and execute the `/my/ships/{shipSymbol}/accept` endpoint to mine various types of ores and minerals.\n\nReturn to the contract destination and execute the `/my/ships/{shipSymbol}/deliver` endpoint to deposit goods into the contract.\n\nWhen your contract is fulfilled, you can call `/my/contracts/{contractId}/fulfill` to retrieve payment.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "How other agents will see your ships and information.", + "minLength": 4, + "maxLength": 8, + "example": "BADGER" + }, + "faction": { + "type": "string", + "default": "COMMERCE_REPUBLIC", + "description": "The faction you choose determines your headquarters." + } + } + } + } + }, + "description": "" + }, + "responses": { + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "agent": { + "$ref": "../../models/Agent.yaml" + }, + "faction": { + "$ref": "../../models/Faction.yaml" + }, + "contract": { + "$ref": "../../models/Contract.yaml" + }, + "ship": { + "$ref": "../../models/Ship.json" + } + } + } + } + } + } + } + } + }, + "tags": [ + "agents" + ] + } +} \ No newline at end of file