api-docs/reference/SpaceTraders.json

2294 lines
64 KiB
JSON

{
"openapi": "3.0.0",
"info": {
"contact": {
"email": "joel@spacetraders.io",
"name": "Joel Brubaker"
},
"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\nSpaceTraders as a game is unique in that it is entirely accessible through open and well-documented API endpoints.\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://api-server-2-0-0-rc-2-vxxwq5xqdq-uc.a.run.app\",\n}\n```",
"license": {
"name": "No Permission",
"url": "https://choosealicense.com/no-permission/"
},
"title": "SpaceTraders API",
"version": "2.0.0-rc.2"
},
"security": [
{
"AgentToken": []
}
],
"servers": [
{
"description": "v2.0.0-rc.2",
"url": "https://api-server-2-0-0-rc-2-vxxwq5xqdq-uc.a.run.app"
}
],
"tags": [
{
"description": "Factions",
"name": "factions"
},
{
"description": "Fleet",
"name": "fleet"
},
{
"description": "Contracts",
"name": "contracts"
},
{
"description": "Systems",
"name": "systems"
},
{
"description": "Agents",
"name": "agents"
}
],
"components": {
"requestBodies": {},
"schemas": {},
"securitySchemes": {
"AgentToken": {
"description": "When you register a new agent you will be granted a private bearer token which grants authorization to use the API.",
"scheme": "bearer",
"type": "http"
}
}
},
"paths": {
"/register": {
"post": {
"description": "Creates a new agent and ties it to a temporary Account.\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 and execute the `/my/ships/{shipSymbol}/extract` 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.",
"operationId": "register",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"faction": {
"description": "The faction you choose determines your headquarters.",
"enum": [
"COSMIC",
"VOID",
"GALLACTIC",
"QUANTUM",
"DOMINION",
"ASTRO",
"CORSAIRS",
"UNITED",
"SOLITARY",
"COBALT"
]
},
"symbol": {
"description": "How other agents will see your ships and information.",
"example": "BADGER",
"maxLength": 8,
"minLength": 4,
"type": "string"
}
},
"required": [
"symbol",
"faction"
],
"type": "object"
}
}
},
"description": ""
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"contract": {
"$ref": "../models/Contract.json"
},
"faction": {
"$ref": "../models/Faction.json"
},
"ship": {
"$ref": "../models/Ship.json"
},
"token": {
"description": "A Bearer token for accessing secured API endpoints.",
"type": "string"
}
},
"required": [
"token",
"agent",
"faction",
"contract",
"ship"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"summary": "Register New Agent",
"tags": []
}
},
"/systems": {
"get": {
"description": "Return a list of all systems.",
"operationId": "get-systems",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"items": {
"$ref": "../models/System.json"
},
"type": "array"
},
"meta": {
"$ref": "../models/Meta.json"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "List Systems",
"tags": [
"systems"
]
}
},
"/systems/{systemSymbol}": {
"get": {
"description": "Get the details of a system.",
"operationId": "get-system",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/System.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get System",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"default": "X1-OE",
"type": "string"
}
}
]
},
"/systems/{systemSymbol}/waypoints": {
"get": {
"description": "Fetch all of the waypoints for a given system. System must be charted or a ship must be present to return waypoint details.",
"operationId": "get-system-waypoints",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"items": {
"$ref": "../models/Waypoint.json"
},
"type": "array"
},
"meta": {
"$ref": "../models/Meta.json"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "List Waypoints",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/systems/{systemSymbol}/waypoints/{waypointSymbol}": {
"get": {
"description": "View the details of a waypoint.",
"operationId": "get-waypoint",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/Waypoint.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Waypoint",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The waypoint symbol",
"in": "path",
"name": "waypointSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/market": {
"get": {
"description": "Retrieve imports, exports and exchange data from a marketplace. Imports can be sold, exports can be purchased, and exchange goods can be purchased or sold. Send a ship to the waypoint to access trade good prices and recent transactions.",
"operationId": "get-market",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "../models/Market.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Market",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The waypoint symbol",
"in": "path",
"name": "waypointSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/shipyard": {
"get": {
"description": "Get the shipyard for a waypoint.",
"operationId": "get-shipyard",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/Shipyard.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Shipyard",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The waypoint symbol",
"in": "path",
"name": "waypointSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/jump-gate": {
"get": {
"description": "Get jump gate details for a waypoint.",
"operationId": "get-jump-gate",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/JumpGate.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Jump Gate",
"tags": [
"systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The waypoint symbol",
"in": "path",
"name": "waypointSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/factions": {
"get": {
"description": "List all discovered factions in the game.",
"operationId": "get-factions",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"items": {
"$ref": "../models/Faction.json"
},
"type": "array"
},
"meta": {
"$ref": "../models/Meta.json"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}
}
},
"description": ""
}
},
"summary": "List Factions",
"tags": [
"factions"
]
}
},
"/factions/{factionSymbol}": {
"get": {
"description": "View the details of a faction.",
"operationId": "get-faction",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "../models/Faction.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"summary": "Get Faction",
"tags": [
"factions"
]
},
"parameters": [
{
"description": "The faction symbol",
"in": "path",
"name": "factionSymbol",
"required": true,
"schema": {
"default": "CGR",
"type": "string"
}
}
]
},
"/my/agent": {
"get": {
"description": "Fetch your agent's details.",
"operationId": "get-my-agent",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "../models/Agent.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "My Agent Details",
"tags": [
"agents"
]
}
},
"/my/contracts": {
"get": {
"description": "List all of your contracts.",
"operationId": "get-contracts",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"items": {
"$ref": "../models/Contract.json"
},
"type": "array"
},
"meta": {
"$ref": "../models/Meta.json"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "List Contracts",
"tags": [
"contracts"
]
}
},
"/my/contracts/{contractId}": {
"get": {
"description": "Get the details of a contract by ID.",
"operationId": "get-contract",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "../models/Contract.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Contract",
"tags": [
"contracts"
]
},
"parameters": [
{
"description": "The contract ID",
"in": "path",
"name": "contractId",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/my/contracts/{contractId}/accept": {
"parameters": [
{
"in": "path",
"name": "contractId",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Accept a contract.",
"operationId": "accept-contract",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"contract": {
"$ref": "../models/Contract.json"
}
},
"required": [
"contract",
"agent"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Accept Contract",
"tags": [
"contracts"
]
}
},
"/my/contracts/{contractId}/deliver": {
"parameters": [
{
"description": "The ID of the contract",
"in": "path",
"name": "contractId",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Deliver cargo on a given contract.",
"operationId": "deliver-contract",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"shipSymbol": {
"type": "string"
},
"tradeSymbol": {
"type": "string"
},
"units": {
"type": "integer"
}
},
"required": [
"shipSymbol",
"tradeSymbol",
"units"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"contract": {
"$ref": "../models/Contract.json"
},
"cargo": {
"$ref": "../models/ShipCargo.json"
}
},
"required": [
"contract",
"cargo"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Deliver Contract",
"tags": [
"contracts"
]
}
},
"/my/contracts/{contractId}/fulfill": {
"parameters": [
{
"description": "The ID of the contract",
"in": "path",
"name": "contractId",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Fulfill a contract",
"operationId": "fulfill-contract",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"contract": {
"$ref": "../models/Contract.json"
}
},
"required": [
"contract",
"agent"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Fulfill Contract",
"tags": [
"contracts"
]
}
},
"/my/ships": {
"get": {
"description": "Retrieve all of your ships.",
"operationId": "get-my-ships",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"items": {
"$ref": "../models/Ship.json"
},
"type": "array"
},
"meta": {
"$ref": "../models/Meta.json"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "List Ships",
"tags": [
"fleet"
]
},
"post": {
"description": "Purchase a ship",
"operationId": "purchase-ship",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"shipType": {
"$ref": "../models/ShipType.json"
},
"waypointSymbol": {
"description": "The symbol of the waypoint you want to purchase the ship at.",
"type": "string"
}
},
"required": [
"shipType",
"waypointSymbol"
],
"type": "object"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"ship": {
"$ref": "../models/Ship.json"
}
},
"required": [
"ship",
"agent"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Purchase Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}": {
"get": {
"description": "Retrieve the details of your ship.",
"operationId": "get-my-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/Ship.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Ship",
"tags": [
"fleet"
]
},
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/my/ships/{shipSymbol}/orbit": {
"parameters": [
{
"description": "The symbol of the ship",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"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.",
"operationId": "orbit-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"title": "Orbit Ship 200 Response",
"description": "",
"properties": {
"data": {
"properties": {
"nav": {
"$ref": "../models/ShipNav.json"
}
},
"type": "object",
"required": [
"nav"
]
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "The ship has successfully moved into orbit at it's current location."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Orbit Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/refine": {
"parameters": [
{
"description": "The symbol of the ship",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Attempt to refine the raw materials on your ship. The request will only succeed if your ship is capable of refining at the time of the request.",
"operationId": "ship-refine",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"produce": {
"type": "string",
"enum": [
"IRON",
"COPPER",
"SILVER",
"GOLD",
"ALUMINUM",
"PLATINUM",
"URANITE",
"MERITIUM",
"FUEL"
]
}
},
"required": [
"produce"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"title": "Ship Refine 200 Response",
"description": "",
"properties": {
"data": {
"properties": {
"cargo": {
"$ref": "../models/ShipCargo.json"
},
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"produced": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tradeSymbol": {
"type": "string"
},
"units": {
"type": "integer"
}
}
}
},
"consumed": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tradeSymbol": {
"type": "string"
},
"units": {
"type": "integer"
}
}
}
}
},
"type": "object",
"required": [
"cargo",
"cooldown",
"produced",
"consumed"
]
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "The ship has successfully started refining."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Ship Refine",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/chart": {
"parameters": [
{
"description": "The symbol of the ship",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Command a ship to chart the current waypoint.\n\nWaypoints 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.",
"operationId": "create-chart",
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"chart": {
"$ref": "../models/Chart.json"
},
"waypoint": {
"$ref": "../models/Waypoint.json"
}
},
"required": [
"chart",
"waypoint"
],
"type": "object"
}
},
"type": "object",
"required": [
"data"
]
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Create Chart",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/cooldown": {
"get": {
"description": "Retrieve the details of your ship's reactor cooldown. Some actions such as activating your jump drive, scanning, or extracting resources taxes your reactor and results in a cooldown.\n\nYour ship cannot perform additional actions until your cooldown has expired. The duration of your cooldown is relative to the power consumption of the related modules or mounts for the action taken.\n\nResponse returns a 204 status code (no-content) when the ship has no cooldown.",
"operationId": "get-ship-cooldown",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/Cooldown.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
},
"204": {
"description": "No cooldown"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Ship Cooldown",
"tags": [
"fleet"
]
},
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/my/ships/{shipSymbol}/dock": {
"parameters": [
{
"description": "The symbol of the ship",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"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.",
"operationId": "dock-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"title": "Dock Ship 200 Response",
"description": "",
"properties": {
"data": {
"properties": {
"nav": {
"$ref": "../models/ShipNav.json"
}
},
"required": [
"nav"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "The ship has successfully docked at it's current location."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Dock Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/survey": {
"parameters": [
{
"description": "The symbol of the ship",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"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.",
"operationId": "create-survey",
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"surveys": {
"items": {
"$ref": "../models/Survey.json"
},
"type": "array"
}
},
"required": [
"surveys",
"cooldown"
],
"type": "object"
}
},
"type": "object",
"required": [
"data"
]
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Create Survey",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/extract": {
"parameters": [
{
"description": "The ship symbol",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Extract resources from the waypoint into your ship. Send an optional survey as the payload to target specific yields.",
"operationId": "extract-resources",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"survey": {
"$ref": "../models/Survey.json"
}
},
"type": "object"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"extraction": {
"$ref": "../models/Extraction.json"
},
"cargo": {
"$ref": "../models/ShipCargo.json"
}
},
"required": [
"extraction",
"cooldown",
"cargo"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Extract Resources",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/jettison": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Jettison cargo from your ship's cargo hold.",
"operationId": "jettison",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"symbol": {
"type": "string"
},
"units": {
"minimum": 1,
"type": "integer"
}
},
"required": [
"symbol",
"units"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"cargo": {
"$ref": "../models/ShipCargo.json"
}
},
"required": [
"cargo"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Jettison Cargo",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/jump": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Jump your ship instantly to a target system. Unlike other forms of navigation, jumping requires a unit of antimatter.",
"operationId": "jump-ship",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"systemSymbol": {
"description": "The system symbol to jump to.",
"type": "string"
}
},
"required": [
"systemSymbol"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"nav": {
"$ref": "../models/ShipNav.json"
}
},
"required": [
"route",
"cooldown"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Jump Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/navigate": {
"parameters": [
{
"description": "The ship symbol",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"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\nTo travel between systems, see the ship's warp or jump actions.",
"operationId": "navigate-ship",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"waypointSymbol": {
"description": "The target destination.",
"type": "string"
}
},
"required": [
"waypointSymbol"
],
"type": "object"
}
}
},
"description": ""
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"fuel": {
"$ref": "../models/ShipFuel.json"
},
"nav": {
"$ref": "../models/ShipNav.json"
}
},
"required": [
"nav",
"fuel"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"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."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Navigate Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/warp": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Warp your ship to a target destination in another system. Warping 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.",
"operationId": "warp-ship",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"waypointSymbol": {
"description": "The target destination.",
"type": "string"
}
},
"required": [
"waypointSymbol"
],
"type": "object"
}
}
},
"description": ""
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"fuel": {
"$ref": "../models/ShipFuel.json"
},
"nav": {
"$ref": "../models/ShipNav.json"
}
},
"required": [
"nav",
"fuel"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"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."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Warp Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/sell": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Sell cargo.",
"operationId": "sell-cargo",
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "SellCargoRequest",
"properties": {
"symbol": {
"type": "string"
},
"units": {
"type": "integer"
}
},
"required": [
"symbol",
"units"
],
"type": "object"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"title": "Sell Cargo 201 Response",
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"cargo": {
"$ref": "../models/ShipCargo.json"
},
"transaction": {
"$ref": "../models/MarketTransaction.json"
}
},
"required": [
"cargo",
"transaction",
"agent"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Sell Cargo",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/scan/systems": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Activate your ship's sensor arrays to scan for system information.",
"operationId": "create-ship-system-scan",
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"systems": {
"items": {
"$ref": "../models/ScannedSystem.json"
},
"type": "array"
}
},
"required": [
"cooldown",
"systems"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Scan Systems",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/scan/ships": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Activate your ship's sensor arrays to scan for ship information.",
"operationId": "create-ship-ship-scan",
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"ships": {
"items": {
"$ref": "../models/ScannedShip.json"
},
"type": "array"
}
},
"required": [
"cooldown",
"ships"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Scan Ships",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/refuel": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Refuel your ship from the local market.",
"operationId": "refuel-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"fuel": {
"$ref": "../models/ShipFuel.json"
}
},
"required": [
"agent",
"fuel"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "OK"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Refuel Ship",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/purchase": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Purchase cargo.",
"operationId": "purchase-cargo",
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Purchase Cargo Request",
"properties": {
"symbol": {
"type": "string"
},
"units": {
"type": "integer"
}
},
"required": [
"symbol",
"units"
],
"type": "object"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"title": "Purchase Cargo 201 Response",
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"cargo": {
"$ref": "../models/ShipCargo.json"
},
"transaction": {
"$ref": "../models/MarketTransaction.json"
}
},
"required": [
"cargo",
"transaction",
"agent"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Purchase Cargo",
"tags": [
"fleet"
]
}
},
"/my/ships/{shipSymbol}/transfer": {
"parameters": [
{
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"description": "Transfer cargo between ships.",
"operationId": "transfer-cargo",
"requestBody": {
"content": {
"application/json": {
"schema": {
"title": "Transfer Cargo Request",
"properties": {
"tradeSymbol": {
"type": "string"
},
"units": {
"type": "integer"
},
"shipSymbol": {
"type": "string"
}
},
"required": [
"tradeSymbol",
"units",
"shipSymbol"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"title": "Transfer Cargo 200 Response",
"description": "",
"properties": {
"data": {
"properties": {
"cargo": {
"$ref": "../models/ShipCargo.json"
}
},
"required": [
"cargo"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Created"
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Transfer Cargo",
"tags": [
"fleet"
]
}
}
}
}