2061 lines
60 KiB
YAML
2061 lines
60 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: OpenAPI definition
|
|
version: v0
|
|
servers:
|
|
- url: http://localhost:8080
|
|
description: Generated server url
|
|
paths:
|
|
/rule-book:
|
|
get:
|
|
tags:
|
|
- rule-book
|
|
summary: Find the caller's rule book
|
|
operationId: findRuleBook
|
|
responses:
|
|
"200":
|
|
description: The caller's rule book
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/RuleBookResponse"
|
|
"404":
|
|
description: The caller has no rule book
|
|
put:
|
|
tags:
|
|
- rule-book
|
|
summary: Update the caller's rule book
|
|
operationId: updateRuleBook
|
|
requestBody:
|
|
description: New state of the caller's rule book
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateRuleBookRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The updated rule book
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/RuleBookResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- a binding references a ledger the caller does not own
|
|
- a binding references a ledger that is not a main ledger
|
|
/ledgers/main/{ledgerId}:
|
|
put:
|
|
tags:
|
|
- ledger
|
|
summary: Update a main ledger
|
|
operationId: updateMainLedger
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the main ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: New state of the main ledger
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateMainLedgerRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The updated main ledger
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/MainLedgerResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the ledger is not a main ledger
|
|
- the request is invalid
|
|
"404":
|
|
description: No ledger with this id
|
|
/ledgers/combined/{ledgerId}:
|
|
put:
|
|
tags:
|
|
- ledger
|
|
summary: Update a combined ledger
|
|
operationId: updateCombinedLedger
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the combined ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: New state of the combined ledger
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateCombinedLedgerRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The updated combined ledger
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/CombinedLedgerResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the ledger is not a combined ledger
|
|
- the request is invalid
|
|
"404":
|
|
description: No ledger with this id
|
|
/reprocessing:
|
|
post:
|
|
tags:
|
|
- reprocessing
|
|
summary: "Reprocess the given item stacks for a character, appraising the input\
|
|
\ and resulting materials"
|
|
operationId: reprocessItems
|
|
parameters:
|
|
- name: locationId
|
|
in: query
|
|
description: Location to derive reprocessing efficiency at; defaults to the
|
|
character's current location when omitted
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: Character and item stacks to reprocess
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ReprocessItemsRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The reprocessing result for each input stack
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ReprocessingResultResponse"
|
|
/reprocessing/paste:
|
|
post:
|
|
tags:
|
|
- reprocessing
|
|
summary: "Reprocess a pasted EVE inventory listing for a character, resolving\
|
|
\ item names before appraising the input and resulting materials"
|
|
operationId: reprocessRawItems
|
|
parameters:
|
|
- name: characterId
|
|
in: query
|
|
description: Character to reprocess for
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: locationId
|
|
in: query
|
|
description: Location to derive reprocessing efficiency at; defaults to the
|
|
character's current location when omitted
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: Raw tab-separated inventory listing copied from the EVE client
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The reprocessing result for each resolved input stack
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ReprocessingResultResponse"
|
|
/refresh:
|
|
post:
|
|
tags:
|
|
- auth
|
|
summary: Rotate the refresh session and mint a fresh access token
|
|
operationId: refresh
|
|
responses:
|
|
"200":
|
|
description: A fresh access token; the refresh cookie is rotated
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/RefreshResponse"
|
|
"401":
|
|
description: "Missing, expired, or reused refresh token"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/RefreshResponse"
|
|
/market/types/paste:
|
|
post:
|
|
tags:
|
|
- market
|
|
summary: "Parse a pasted EVE inventory listing into market type stacks, resolving\
|
|
\ names to type ids"
|
|
operationId: parseStacks
|
|
requestBody:
|
|
description: Raw tab-separated inventory listing copied from the EVE client
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: The resolved stacks; lines whose name does not match any type
|
|
are omitted and lines resolving to the same type are merged with their
|
|
quantities summed
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeStackResponse"
|
|
"400":
|
|
description: Returned when a line carries a quantity that is not a positive
|
|
whole number
|
|
/market/prices/paste:
|
|
post:
|
|
tags:
|
|
- market
|
|
summary: "Parse a pasted EVE inventory block (item name + quantity, tab/newline\
|
|
\ separated) and return the current valuation of each stack at the given market\
|
|
\ location (Jita by default)"
|
|
operationId: pastePrices
|
|
parameters:
|
|
- name: locationId
|
|
in: query
|
|
description: Station or structure id of the market to price against; defaults
|
|
to Jita when omitted
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
description: "Raw inventory block copied from the EVE client, e.g. \"\
|
|
Tritanium\\t1000\""
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: "One stack appraisal per resolved market type, valued at current\
|
|
\ buy and sell prices"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeStackAppraisalResponse"
|
|
"400":
|
|
description: Returned when the request body is not text/plain or locationId
|
|
is not a market location id
|
|
/market/history/refresh:
|
|
post:
|
|
tags:
|
|
- market-history-admin-controller
|
|
operationId: refresh_1
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
/logout:
|
|
post:
|
|
tags:
|
|
- auth
|
|
summary: Revoke the refresh session and clear the refresh cookie
|
|
operationId: logout
|
|
responses:
|
|
"204":
|
|
description: The refresh session is revoked and the cookie cleared
|
|
/ledgers/main:
|
|
post:
|
|
tags:
|
|
- ledger
|
|
summary: Create a main ledger
|
|
operationId: createMainLedger
|
|
requestBody:
|
|
description: Main ledger to create
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateMainLedgerRequest"
|
|
required: true
|
|
responses:
|
|
"201":
|
|
description: The created main ledger
|
|
headers:
|
|
Location:
|
|
description: URL of the created main ledger
|
|
style: simple
|
|
schema:
|
|
type: string
|
|
format: uri
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/MainLedgerResponse"
|
|
"400":
|
|
description: Invalid request (e.g. blank name)
|
|
/ledgers/combined:
|
|
post:
|
|
tags:
|
|
- ledger
|
|
summary: Create a combined ledger
|
|
operationId: createCombinedLedger
|
|
requestBody:
|
|
description: Combined ledger to create
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateCombinedLedgerRequest"
|
|
required: true
|
|
responses:
|
|
"201":
|
|
description: The created combined ledger
|
|
headers:
|
|
Location:
|
|
description: URL of the created combined ledger
|
|
style: simple
|
|
schema:
|
|
type: string
|
|
format: uri
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/CombinedLedgerResponse"
|
|
"400":
|
|
description: "Invalid request (e.g. blank name, a member ledger missing\
|
|
\ or already contained)"
|
|
/characters/add:
|
|
post:
|
|
tags:
|
|
- auth
|
|
summary: Seed the current user in the session so the next SSO links the new
|
|
character to them
|
|
operationId: addCharacter
|
|
responses:
|
|
"204":
|
|
description: The link is seeded; follow with a full-page nav to /oauth2/authorization/esi
|
|
"401":
|
|
description: Missing or expired access token
|
|
/activity/consume:
|
|
post:
|
|
tags:
|
|
- activity
|
|
summary: Manually record a consumption (sell) of an item. Call POST /activities/process
|
|
to fold it into acquisitions.
|
|
operationId: consume
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ManualActivityRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: Consumption recorded
|
|
"400":
|
|
description: Invalid request (e.g. CORPORATION source)
|
|
"404":
|
|
description: Source not owned by the caller
|
|
/activity/acquire:
|
|
post:
|
|
tags:
|
|
- activity
|
|
summary: Manually record an acquisition (buy) of an item. Call POST /activities/process
|
|
to fold it into acquisitions.
|
|
operationId: acquire
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ManualActivityRequest"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: Acquisition recorded
|
|
"400":
|
|
description: Invalid request (e.g. CORPORATION source)
|
|
"404":
|
|
description: Source not owned by the caller
|
|
/activities/process:
|
|
post:
|
|
tags:
|
|
- activity
|
|
summary: Process new activities for the authenticated user's characters
|
|
operationId: processNewActivities
|
|
responses:
|
|
"202":
|
|
description: Processing started in the background
|
|
/rule-scripts/definitions:
|
|
get:
|
|
tags:
|
|
- rule-script
|
|
summary: Download the TypeScript definitions for the rule script runtime
|
|
operationId: getScriptDefinitions
|
|
responses:
|
|
"200":
|
|
description: The rule-runner.d.ts type definitions
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/me:
|
|
get:
|
|
tags:
|
|
- auth
|
|
summary: Return the authenticated user and the characters they own
|
|
operationId: me
|
|
responses:
|
|
"200":
|
|
description: The authenticated user and their characters
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/MeResponse"
|
|
"401":
|
|
description: Missing or expired access token
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/MeResponse"
|
|
/market/{marketTypeId}/scan:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: "Scan a single market type, returning its volume-weighted price quartiles\
|
|
\ and recent price trend"
|
|
operationId: scanMarketType
|
|
parameters:
|
|
- name: marketTypeId
|
|
in: path
|
|
description: The market type id to scan
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: days
|
|
in: query
|
|
description: Number of most recent days of history to analyse
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
default: 365
|
|
minimum: 1
|
|
- name: brokerFee
|
|
in: query
|
|
description: "Broker fee as a fraction (e.g. 0.015 for 1.5%), paid on both\
|
|
\ buy and sell orders"
|
|
required: false
|
|
schema:
|
|
type: number
|
|
default: 0.015
|
|
maximum: 1
|
|
minimum: 0
|
|
- name: salesTax
|
|
in: query
|
|
description: "Sales tax as a fraction (e.g. 0.03375 for 3.375%), paid on sell\
|
|
\ orders"
|
|
required: false
|
|
schema:
|
|
type: number
|
|
default: 0.03375
|
|
maximum: 1
|
|
minimum: 0
|
|
responses:
|
|
"200":
|
|
description: The scan result for the requested market type
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/MarketScanResponse"
|
|
"400":
|
|
description: The days parameter is not greater than 0
|
|
/market/{marketTypeId}/history:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: "Find the market history of a type, most recent first"
|
|
operationId: findHistory
|
|
parameters:
|
|
- name: marketTypeId
|
|
in: path
|
|
description: Id of the market type
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: days
|
|
in: query
|
|
description: Optional number of most recent days to return; omit for the full
|
|
history
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
responses:
|
|
"200":
|
|
description: The market history of the type
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketHistoryResponse"
|
|
"400":
|
|
description: The days parameter is not greater than 0
|
|
/market/{marketTypeId}/history/quartiles:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: Compute volume-weighted price quartiles and the recent price trend
|
|
from a type's market history
|
|
operationId: findQuartiles
|
|
parameters:
|
|
- name: marketTypeId
|
|
in: path
|
|
description: Id of the market type
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: days
|
|
in: query
|
|
description: Optional number of most recent days to analyze; omit for the
|
|
full history
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
responses:
|
|
"200":
|
|
description: The price quartiles of the type
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/HistoryQuartilesResponse"
|
|
"400":
|
|
description: The days parameter is not greater than 0
|
|
/market/types:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: Return the static market type details for each requested type id
|
|
operationId: findTypes
|
|
parameters:
|
|
- name: ids
|
|
in: query
|
|
description: "Market type ids to look up, e.g. ids=34,35"
|
|
required: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
"200":
|
|
description: The market types found for the requested ids; unknown ids are
|
|
omitted
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the ids parameter is missing
|
|
- an ids value is not a numeric id
|
|
/market/types/search:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: "Search marketable types whose name contains the given text, case-insensitively"
|
|
operationId: searchTypes
|
|
parameters:
|
|
- name: name
|
|
in: query
|
|
description: "Text to match against the type name, e.g. name=tritan"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
description: "Maximum number of results to return, defaults to 50"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
default: 50
|
|
responses:
|
|
"200":
|
|
description: "The marketable types matching the search, ordered by name\
|
|
\ and capped at the requested limit"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the name parameter is missing
|
|
- the limit value is not a number
|
|
/market/scan:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: "Scan every tracked market type, returning volume-weighted price quartiles\
|
|
\ and the recent price trend for each"
|
|
operationId: scanMarket
|
|
parameters:
|
|
- name: days
|
|
in: query
|
|
description: Number of most recent days of history to analyse
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
default: 365
|
|
minimum: 1
|
|
- name: brokerFee
|
|
in: query
|
|
description: "Broker fee as a fraction (e.g. 0.015 for 1.5%), paid on both\
|
|
\ buy and sell orders"
|
|
required: false
|
|
schema:
|
|
type: number
|
|
default: 0.015
|
|
maximum: 1
|
|
minimum: 0
|
|
- name: salesTax
|
|
in: query
|
|
description: "Sales tax as a fraction (e.g. 0.03375 for 3.375%), paid on sell\
|
|
\ orders"
|
|
required: false
|
|
schema:
|
|
type: number
|
|
default: 0.03375
|
|
maximum: 1
|
|
minimum: 0
|
|
responses:
|
|
"200":
|
|
description: "The scan results, one entry per tracked market type"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketScanResponse"
|
|
"400":
|
|
description: The days parameter is not greater than 0
|
|
/market/prices:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: "Return the current order book (highest buy, lowest sell, order count)\
|
|
\ for each requested market type, priced at the given market location (Jita\
|
|
\ by default)"
|
|
operationId: currentPrices
|
|
parameters:
|
|
- name: types
|
|
in: query
|
|
description: "Market type ids to price, e.g. types=34,35"
|
|
required: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
format: int64
|
|
- name: locationId
|
|
in: query
|
|
description: Station or structure id of the market to price against; defaults
|
|
to Jita when omitted
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
"200":
|
|
description: "The order book for each requested type, one entry per type"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketPriceResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the types parameter is missing
|
|
- a types value is not a numeric id
|
|
- locationId is not a market location id
|
|
/market/orders:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: List the open market orders across all characters owned by the authenticated
|
|
user
|
|
operationId: findAllMarketOrders
|
|
responses:
|
|
"200":
|
|
description: The authenticated user's open market orders
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MarketOrderResponse"
|
|
/market/history/quartiles:
|
|
get:
|
|
tags:
|
|
- market
|
|
summary: Compute volume-weighted price quartiles and the recent price trend
|
|
for each requested market type
|
|
operationId: findAllQuartiles
|
|
parameters:
|
|
- name: types
|
|
in: query
|
|
description: "Market type ids to analyze, e.g. types=34,35"
|
|
required: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
format: int64
|
|
- name: days
|
|
in: query
|
|
description: Optional number of most recent days to analyze; omit for the
|
|
full history
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
responses:
|
|
"200":
|
|
description: "The price quartiles for each requested type, one entry per\
|
|
\ type"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/HistoryQuartilesResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the types parameter is missing
|
|
- a types value is not a numeric id
|
|
- the days parameter is not greater than 0
|
|
/locations/{id}:
|
|
get:
|
|
tags:
|
|
- location
|
|
summary: "Resolve a market location id (NPC station or public structure, or\
|
|
\ a private structure reachable by the authenticated caller's characters)\
|
|
\ to its name and containing solar system and region"
|
|
operationId: findLocationById
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: "Market location id (station id) to resolve, e.g. 60003760"
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
"200":
|
|
description: The resolved market location
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/DockableLocationResponse"
|
|
"400":
|
|
description: Returned when the id is not a market location id
|
|
"404":
|
|
description: Returned when no market location has the given id
|
|
/locations/search:
|
|
get:
|
|
tags:
|
|
- location
|
|
summary: "Search market locations (NPC stations and public structures, plus\
|
|
\ private structures reachable by the authenticated caller's characters) whose\
|
|
\ name contains the given text, case-insensitively"
|
|
operationId: searchLocations
|
|
parameters:
|
|
- name: name
|
|
in: query
|
|
description: "Text to match against the location name, e.g. name=jita"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
description: "Maximum number of results to return, defaults to 50"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
default: 50
|
|
responses:
|
|
"200":
|
|
description: "The market locations matching the search, ordered by name\
|
|
\ and capped at the requested limit"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DockableLocationResponse"
|
|
"400":
|
|
description: |-
|
|
Returned when:
|
|
- the name parameter is missing
|
|
- the limit value is not a number
|
|
/ledgers:
|
|
get:
|
|
tags:
|
|
- ledger
|
|
summary: Find all ledgers owned by the authenticated user
|
|
operationId: findAllLedgers
|
|
responses:
|
|
"200":
|
|
description: The authenticated user's ledgers
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/LedgerResponse"
|
|
/ledgers/{ledgerId}:
|
|
get:
|
|
tags:
|
|
- ledger
|
|
summary: Find a ledger by its id
|
|
operationId: findLedgerById
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: The ledger
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/LedgerResponse"
|
|
"400":
|
|
description: The ledger cannot be exposed (system ledger)
|
|
"404":
|
|
description: No ledger with this id
|
|
/ledgers/{ledgerId}/transactions:
|
|
get:
|
|
tags:
|
|
- transaction
|
|
summary: Find all transactions in a ledger
|
|
operationId: finAllTransactionsInLedger
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: All transactions in the ledger
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TransactionResponse"
|
|
"404":
|
|
description: No ledger with this id
|
|
/ledgers/{ledgerId}/profit:
|
|
get:
|
|
tags:
|
|
- transaction
|
|
summary: Get the daily profit series for a single ledger
|
|
operationId: profitPerDayInLedger
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: "Daily profit for the ledger, ascending by date, only for days\
|
|
\ with ISK activity"
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DailyProfitResponse"
|
|
"400":
|
|
description: The ledger is the system ledger or a combined ledger
|
|
"404":
|
|
description: No ledger with this id
|
|
/ledgers/{ledgerId}/balance:
|
|
get:
|
|
tags:
|
|
- ledger
|
|
summary: Find the balance of a ledger
|
|
operationId: findBalanceByLedgerId
|
|
parameters:
|
|
- name: ledgerId
|
|
in: path
|
|
description: Id of the ledger
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: The balance of the ledger
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
$ref: "#/components/schemas/BalanceResponse"
|
|
"404":
|
|
description: No ledger with this id
|
|
/characters:
|
|
get:
|
|
tags:
|
|
- character
|
|
summary: Find the characters owned by the authenticated user
|
|
operationId: findAllCharacters
|
|
responses:
|
|
"200":
|
|
description: The authenticated user's characters
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CharacterResponse"
|
|
/activities/processed:
|
|
get:
|
|
tags:
|
|
- activity
|
|
summary: Stream a notification when the user's activity processing completes
|
|
operationId: streamProcessing
|
|
responses:
|
|
"200":
|
|
description: SSE stream opened
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
$ref: "#/components/schemas/SseEmitter"
|
|
/acquisitions:
|
|
get:
|
|
tags:
|
|
- acquisition
|
|
summary: "Find the caller's acquisitions, optionally filtered by ledger, market\
|
|
\ type and consumption state"
|
|
operationId: findAllAcquisitions
|
|
parameters:
|
|
- name: ledgerId
|
|
in: query
|
|
description: Only return acquisitions held in this ledger
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: marketTypeId
|
|
in: query
|
|
description: Only return acquisitions of this market type
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: includeConsumed
|
|
in: query
|
|
description: Include fully consumed acquisitions (no remaining stock)
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: The matching acquisitions
|
|
content:
|
|
'*/*':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AcquisitionResponse"
|
|
components:
|
|
schemas:
|
|
UpdateRuleBookRequest:
|
|
type: object
|
|
description: Request to update the caller's rule book; replaces its mutable
|
|
fields.
|
|
properties:
|
|
bindings:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
format: uuid
|
|
description: "Ledger references the script writes to, each bound to one\
|
|
\ of the user's ledgers."
|
|
script:
|
|
type: string
|
|
description: The classification script source.
|
|
example: transfer.to('sales')
|
|
required:
|
|
- bindings
|
|
- script
|
|
RuleBookResponse:
|
|
type: object
|
|
description: "The caller's rule book: a script that classifies transactions,\
|
|
\ together with its ledger bindings."
|
|
properties:
|
|
userId:
|
|
type: string
|
|
format: uuid
|
|
description: Owning user identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
bindings:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
format: uuid
|
|
description: "Ledger references the script writes to, each bound to one\
|
|
\ of the user's ledgers."
|
|
script:
|
|
type: string
|
|
description: The classification script source.
|
|
example: transfer.to('sales')
|
|
required:
|
|
- bindings
|
|
- script
|
|
- userId
|
|
UpdateMainLedgerRequest:
|
|
type: object
|
|
description: Request to update an existing main ledger.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: New name for the ledger.
|
|
example: Main wallet
|
|
required:
|
|
- name
|
|
MainLedgerResponse:
|
|
allOf:
|
|
- $ref: "#/components/schemas/LedgerResponse"
|
|
- type: object
|
|
properties:
|
|
ledgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Unique ledger identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
name:
|
|
type: string
|
|
description: Ledger name.
|
|
example: Main wallet
|
|
balance:
|
|
type: number
|
|
description: Current ISK balance of the ledger.
|
|
example: 1500000.0
|
|
description: "A main ledger: a standalone ledger with its own balance."
|
|
required:
|
|
- balance
|
|
- ledgerId
|
|
- name
|
|
UpdateCombinedLedgerRequest:
|
|
type: object
|
|
description: Request to update an existing combined ledger; replaces its name
|
|
and member set.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: New name for the combined ledger.
|
|
example: All wallets
|
|
memberLedgerIds:
|
|
type: array
|
|
description: Ids of the ledgers to aggregate.
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
required:
|
|
- memberLedgerIds
|
|
- name
|
|
CombinedLedgerResponse:
|
|
allOf:
|
|
- $ref: "#/components/schemas/LedgerResponse"
|
|
- type: object
|
|
properties:
|
|
ledgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Unique ledger identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
name:
|
|
type: string
|
|
description: Ledger name.
|
|
example: All wallets
|
|
balance:
|
|
type: number
|
|
description: Aggregate ISK balance across all member ledgers.
|
|
example: 1500000.0
|
|
memberLedgerIds:
|
|
type: array
|
|
description: Ids of the ledgers aggregated by this combined ledger.
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: "A combined ledger: an aggregate whose balance is the sum of its\
|
|
\ member ledgers."
|
|
required:
|
|
- balance
|
|
- ledgerId
|
|
- memberLedgerIds
|
|
- name
|
|
MarketTypeStackRequest:
|
|
type: object
|
|
description: A quantity of a single market type to reprocess.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id to reprocess.
|
|
example: 1230
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units to reprocess.
|
|
example: 1000
|
|
required:
|
|
- marketTypeId
|
|
- quantity
|
|
ReprocessItemsRequest:
|
|
type: object
|
|
description: Request to reprocess a set of item stacks on behalf of a character.
|
|
properties:
|
|
characterId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE character id whose reprocessing skills and facility standings
|
|
are applied.
|
|
example: 2112625428
|
|
items:
|
|
type: array
|
|
description: Item stacks to reprocess.
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeStackRequest"
|
|
required:
|
|
- characterId
|
|
- items
|
|
MarketTypeStackAppraisalResponse:
|
|
type: object
|
|
description: A market type stack valued at current buy and sell prices.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units in the stack.
|
|
example: 1000
|
|
buy:
|
|
type: number
|
|
description: "Total buy value of the stack, in ISK."
|
|
example: 5420.0
|
|
sell:
|
|
type: number
|
|
description: "Total sell value of the stack, in ISK."
|
|
example: 6100.0
|
|
orderCount:
|
|
type: integer
|
|
format: int64
|
|
description: Number of market orders considered for the valuation.
|
|
example: 128
|
|
required:
|
|
- buy
|
|
- marketTypeId
|
|
- orderCount
|
|
- quantity
|
|
- sell
|
|
ReprocessingResultResponse:
|
|
type: object
|
|
description: "Result of reprocessing an item stack: the input stack and the\
|
|
\ resulting material outputs, each valued at market prices."
|
|
properties:
|
|
input:
|
|
$ref: "#/components/schemas/MarketTypeStackAppraisalResponse"
|
|
description: The input stack that was reprocessed.
|
|
output:
|
|
type: array
|
|
description: Material stacks yielded by reprocessing the input.
|
|
items:
|
|
$ref: "#/components/schemas/MarketTypeStackAppraisalResponse"
|
|
required:
|
|
- input
|
|
- output
|
|
RefreshResponse:
|
|
type: object
|
|
description: A freshly minted access token.
|
|
properties:
|
|
accessToken:
|
|
type: string
|
|
description: Short-lived bearer access token (JWT) for the Authorization
|
|
header.
|
|
required:
|
|
- accessToken
|
|
MarketTypeStackResponse:
|
|
type: object
|
|
description: A quantity of a single market type.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units in the stack.
|
|
example: 1000
|
|
required:
|
|
- marketTypeId
|
|
- quantity
|
|
CreateMainLedgerRequest:
|
|
type: object
|
|
description: Request to create a new main ledger.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Name for the new ledger.
|
|
example: Main wallet
|
|
required:
|
|
- name
|
|
CreateCombinedLedgerRequest:
|
|
type: object
|
|
description: Request to create a new combined ledger aggregating the given member
|
|
ledgers.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Name for the new combined ledger.
|
|
example: All wallets
|
|
memberLedgerIds:
|
|
type: array
|
|
description: Ids of the ledgers to aggregate.
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
required:
|
|
- memberLedgerIds
|
|
- name
|
|
ActivitySourceRequest:
|
|
type: object
|
|
description: "Where a manual activity is attributed: a character, a ledger,\
|
|
\ or nothing. CORPORATION is not accepted."
|
|
properties:
|
|
type:
|
|
type: string
|
|
description: The kind of source.
|
|
enum:
|
|
- CHARACTER
|
|
- LEDGER
|
|
- NONE
|
|
example: CHARACTER
|
|
characterId:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
format: int64
|
|
description: "EVE character id, when the source is a character."
|
|
example: 2112625428
|
|
ledgerId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
format: uuid
|
|
description: "Ledger id, when the source is a ledger."
|
|
example: 0199a1b2-c3d4-7e5f-8a90-1b2c3d4e5f60
|
|
required:
|
|
- characterId
|
|
- ledgerId
|
|
- type
|
|
ManualActivityRequest:
|
|
type: object
|
|
description: Request to manually record an acquisition (buy) or consumption
|
|
(sell) of an item.
|
|
properties:
|
|
source:
|
|
$ref: "#/components/schemas/ActivitySourceRequest"
|
|
description: Where the activity is attributed.
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE type id of the traded item.
|
|
example: 34
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units.
|
|
example: 1000
|
|
unitPrice:
|
|
type: number
|
|
description: Price per unit.
|
|
example: 5.42
|
|
datetime:
|
|
type:
|
|
- string
|
|
- "null"
|
|
format: date-time
|
|
description: When the activity happened. Defaults to now when omitted.
|
|
taxes:
|
|
type:
|
|
- number
|
|
- "null"
|
|
description: Taxes paid. Defaults to 0 when omitted.
|
|
example: 0
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description: Free-form description.
|
|
required:
|
|
- datetime
|
|
- description
|
|
- marketTypeId
|
|
- quantity
|
|
- source
|
|
- taxes
|
|
- unitPrice
|
|
CharacterResponse:
|
|
type: object
|
|
description: An EVE Online character.
|
|
properties:
|
|
characterId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE character id.
|
|
example: 2112625428
|
|
name:
|
|
type: string
|
|
description: Character name.
|
|
example: CCP Falcon
|
|
required:
|
|
- characterId
|
|
- name
|
|
MeResponse:
|
|
type: object
|
|
description: The authenticated user and the characters they own.
|
|
properties:
|
|
userId:
|
|
type: string
|
|
format: uuid
|
|
description: Unique user identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
characters:
|
|
type: array
|
|
description: Characters owned by the user.
|
|
items:
|
|
$ref: "#/components/schemas/CharacterResponse"
|
|
required:
|
|
- characters
|
|
- userId
|
|
MarketScanResponse:
|
|
type: object
|
|
description: "Result of a market scan combining current prices, history quartiles\
|
|
\ and a computed profitability score for a market type."
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
buy:
|
|
type: number
|
|
description: "Current best buy price, in ISK."
|
|
example: 5.42
|
|
sell:
|
|
type: number
|
|
description: "Current best sell price, in ISK."
|
|
example: 6.1
|
|
q1:
|
|
type: number
|
|
description: "First quartile (25th percentile) historical price, in ISK."
|
|
example: 4.8
|
|
median:
|
|
type: number
|
|
description: "Median (50th percentile) historical price, in ISK."
|
|
example: 5.42
|
|
q3:
|
|
type: number
|
|
description: "Third quartile (75th percentile) historical price, in ISK."
|
|
example: 6.05
|
|
totalVolume:
|
|
type: integer
|
|
format: int64
|
|
description: Total traded volume over the scanned period.
|
|
example: 15000000
|
|
trend:
|
|
type: string
|
|
description: Overall price trend over the scanned period.
|
|
enum:
|
|
- UP
|
|
- DOWN
|
|
- FLAT
|
|
profit:
|
|
type: number
|
|
description: "Estimated profit per unit after fees and taxes, in ISK."
|
|
example: 0.45
|
|
score:
|
|
type: number
|
|
description: Computed profitability score used to rank scan results.
|
|
example: 0.82
|
|
required:
|
|
- buy
|
|
- marketTypeId
|
|
- median
|
|
- profit
|
|
- q1
|
|
- q3
|
|
- score
|
|
- sell
|
|
- totalVolume
|
|
- trend
|
|
MarketHistoryResponse:
|
|
type: object
|
|
description: A single day of market history for a market type.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
date:
|
|
type: string
|
|
format: date
|
|
description: Date the history entry covers.
|
|
example: 2026-06-22
|
|
average:
|
|
type: number
|
|
description: "Average price for the day, in ISK."
|
|
example: 5.42
|
|
highest:
|
|
type: number
|
|
description: "Highest price for the day, in ISK."
|
|
example: 6.1
|
|
lowest:
|
|
type: number
|
|
description: "Lowest price for the day, in ISK."
|
|
example: 4.8
|
|
orderCount:
|
|
type: integer
|
|
format: int64
|
|
description: Number of orders for the day.
|
|
example: 320
|
|
volume:
|
|
type: integer
|
|
format: int64
|
|
description: Traded volume for the day.
|
|
example: 12500000
|
|
required:
|
|
- average
|
|
- date
|
|
- highest
|
|
- lowest
|
|
- marketTypeId
|
|
- orderCount
|
|
- volume
|
|
HistoryQuartilesResponse:
|
|
type: object
|
|
description: Quartile statistics computed over a market type's price history.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
q1:
|
|
type: number
|
|
description: "First quartile (25th percentile) price, in ISK."
|
|
example: 4.8
|
|
median:
|
|
type: number
|
|
description: "Median (50th percentile) price, in ISK."
|
|
example: 5.42
|
|
q3:
|
|
type: number
|
|
description: "Third quartile (75th percentile) price, in ISK."
|
|
example: 6.05
|
|
totalVolume:
|
|
type: integer
|
|
format: int64
|
|
description: Total traded volume over the period.
|
|
example: 15000000
|
|
trend:
|
|
type: string
|
|
description: Overall price trend over the period.
|
|
enum:
|
|
- UP
|
|
- DOWN
|
|
- FLAT
|
|
required:
|
|
- marketTypeId
|
|
- median
|
|
- q1
|
|
- q3
|
|
- totalVolume
|
|
- trend
|
|
MarketTypeResponse:
|
|
type: object
|
|
description: An EVE Online market type (item) and its static attributes.
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
name:
|
|
type: string
|
|
description: Item name.
|
|
example: Tritanium
|
|
groupId:
|
|
type: integer
|
|
format: int64
|
|
description: Group id the item belongs to.
|
|
example: 18
|
|
marketGroupId:
|
|
type: integer
|
|
format: int64
|
|
description: Market group id the item is listed under.
|
|
example: 1857
|
|
description:
|
|
type: string
|
|
description: Item description.
|
|
example: The main building block in space structures.
|
|
published:
|
|
type: boolean
|
|
description: Whether the item is published and visible in game.
|
|
example: true
|
|
basePrice:
|
|
type:
|
|
- number
|
|
- "null"
|
|
description: "Base price of the item, in ISK, if defined."
|
|
example: 2.99
|
|
volume:
|
|
type: number
|
|
format: double
|
|
description: "Packaged volume of a single unit, in m³."
|
|
example: 0.01
|
|
portionSize:
|
|
type: integer
|
|
format: int32
|
|
description: Number of units produced or reprocessed per portion.
|
|
example: 1
|
|
iconId:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
format: int64
|
|
description: "Icon id for the item, if defined."
|
|
example: 1
|
|
required:
|
|
- basePrice
|
|
- description
|
|
- groupId
|
|
- iconId
|
|
- id
|
|
- marketGroupId
|
|
- name
|
|
- portionSize
|
|
- published
|
|
- volume
|
|
MarketPriceResponse:
|
|
type: object
|
|
description: Current best buy and sell prices for a market type.
|
|
properties:
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
buy:
|
|
type: number
|
|
description: "Best buy price, in ISK."
|
|
example: 5.42
|
|
sell:
|
|
type: number
|
|
description: "Best sell price, in ISK."
|
|
example: 6.1
|
|
orderCount:
|
|
type: integer
|
|
format: int64
|
|
description: Number of market orders considered.
|
|
example: 128
|
|
required:
|
|
- buy
|
|
- marketTypeId
|
|
- orderCount
|
|
- sell
|
|
MarketOrderResponse:
|
|
type: object
|
|
description: An open market order placed by one of the authenticated user's
|
|
characters.
|
|
properties:
|
|
orderId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market order id.
|
|
example: 5266893063
|
|
characterId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE character id that owns the order.
|
|
example: 2112625428
|
|
characterName:
|
|
type: string
|
|
description: Name of the character that owns the order.
|
|
example: CCP Falcon
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id being traded.
|
|
example: 34
|
|
locationId:
|
|
type: integer
|
|
format: int64
|
|
description: Location id (station or structure) the order is placed at.
|
|
example: 60003760
|
|
regionId:
|
|
type: integer
|
|
format: int64
|
|
description: Region id the order resides in.
|
|
example: 10000002
|
|
direction:
|
|
type: string
|
|
description: Trade direction of the order.
|
|
enum:
|
|
- BUY
|
|
- SELL
|
|
example: SELL
|
|
price:
|
|
type: number
|
|
description: "Price per unit, in ISK."
|
|
example: 5.42
|
|
volumeTotal:
|
|
type: integer
|
|
format: int64
|
|
description: Total volume the order was created with.
|
|
example: 1000000
|
|
volumeRemain:
|
|
type: integer
|
|
format: int64
|
|
description: Volume still remaining on the order.
|
|
example: 750000
|
|
minVolume:
|
|
type: integer
|
|
format: int32
|
|
description: Minimum volume that must be bought or sold in a single transaction.
|
|
example: 1
|
|
range:
|
|
type: string
|
|
description: "Order range. For buy orders the matching range, for sell orders\
|
|
\ always 'region'."
|
|
example: region
|
|
duration:
|
|
type: integer
|
|
format: int32
|
|
description: "Duration of the order, in days."
|
|
example: 90
|
|
issued:
|
|
type: string
|
|
format: date-time
|
|
description: When the order was issued.
|
|
example: 2026-06-22T05:12:25
|
|
escrow:
|
|
type: number
|
|
description: ISK held in escrow for a buy order; null for sell orders.
|
|
example: 4065000.0
|
|
required:
|
|
- characterId
|
|
- characterName
|
|
- direction
|
|
- duration
|
|
- escrow
|
|
- issued
|
|
- locationId
|
|
- marketTypeId
|
|
- minVolume
|
|
- orderId
|
|
- price
|
|
- range
|
|
- regionId
|
|
- volumeRemain
|
|
- volumeTotal
|
|
DockableLocationResponse:
|
|
type: object
|
|
description: A market location (NPC station) with its containing solar system
|
|
and region.
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market location id (station id).
|
|
example: 60003760
|
|
name:
|
|
type: string
|
|
description: Location name.
|
|
example: Jita IV - Moon 4 - Caldari Navy Assembly Plant
|
|
systemId:
|
|
type: integer
|
|
format: int64
|
|
description: Id of the solar system the location is in.
|
|
example: 30000142
|
|
systemName:
|
|
type: string
|
|
description: Name of the solar system the location is in.
|
|
example: Jita
|
|
regionId:
|
|
type: integer
|
|
format: int64
|
|
description: Id of the region the location is in.
|
|
example: 10000002
|
|
regionName:
|
|
type: string
|
|
description: Name of the region the location is in.
|
|
example: The Forge
|
|
required:
|
|
- id
|
|
- name
|
|
- regionId
|
|
- regionName
|
|
- systemId
|
|
- systemName
|
|
LedgerResponse:
|
|
description: "A ledger, either a standalone main ledger or a combined ledger\
|
|
\ aggregating others."
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
MAIN: "#/components/schemas/MainLedgerResponse"
|
|
COMBINED: "#/components/schemas/CombinedLedgerResponse"
|
|
oneOf:
|
|
- $ref: "#/components/schemas/MainLedgerResponse"
|
|
- $ref: "#/components/schemas/CombinedLedgerResponse"
|
|
properties:
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
ActivitySourceResponse:
|
|
type: object
|
|
description: "Where an activity or transaction came from: a character, a corporation\
|
|
\ wallet, a ledger, or nothing (a manual entry)."
|
|
properties:
|
|
type:
|
|
type: string
|
|
description: The kind of source.
|
|
enum:
|
|
- CHARACTER
|
|
- CORPORATION
|
|
- LEDGER
|
|
- NONE
|
|
example: CHARACTER
|
|
characterId:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
format: int64
|
|
description: "EVE character id, when the source is a character."
|
|
example: 2112625428
|
|
corporationId:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
format: int64
|
|
description: "EVE corporation id, when the source is a corporation."
|
|
example: 98000001
|
|
division:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
format: int32
|
|
description: "Corporation wallet division (1-7), when the source is a corporation\
|
|
\ and it is known."
|
|
example: 4
|
|
ledgerId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
format: uuid
|
|
description: "Ledger id, when the source is a ledger."
|
|
example: 0199a1b2-c3d4-7e5f-8a90-1b2c3d4e5f60
|
|
required:
|
|
- characterId
|
|
- corporationId
|
|
- division
|
|
- ledgerId
|
|
- type
|
|
IskTransferResponse:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TransferResponse"
|
|
- type: object
|
|
properties:
|
|
fromLedgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Id of the ledger the ISK is debited from.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
toLedgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Id of the ledger the ISK is credited to.
|
|
example: 5c1e6f2a-1234-4562-b3fc-2c963f66afa6
|
|
amount:
|
|
type: number
|
|
description: Amount of ISK transferred.
|
|
example: 1500000.0
|
|
description: A transfer of ISK from one ledger to another.
|
|
required:
|
|
- amount
|
|
- fromLedgerId
|
|
- toLedgerId
|
|
ItemTransferResponse:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TransferResponse"
|
|
- type: object
|
|
properties:
|
|
fromLedgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Id of the ledger the items are debited from.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
toLedgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Id of the ledger the items are credited to.
|
|
example: 5c1e6f2a-1234-4562-b3fc-2c963f66afa6
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id transferred.
|
|
example: 34
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units transferred.
|
|
example: 1000
|
|
description: A transfer of an item stack from one ledger to another.
|
|
required:
|
|
- fromLedgerId
|
|
- marketTypeId
|
|
- quantity
|
|
- toLedgerId
|
|
TransactionResponse:
|
|
type: object
|
|
description: "A transaction: a dated, described group of transfers between ledgers."
|
|
properties:
|
|
transactionId:
|
|
type: string
|
|
format: uuid
|
|
description: Unique transaction identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
source:
|
|
$ref: "#/components/schemas/ActivitySourceResponse"
|
|
description: "Where the transaction is attributed: a character, a corporation,\
|
|
\ or nothing."
|
|
datetime:
|
|
type: string
|
|
format: date-time
|
|
description: When the transaction occurred.
|
|
example: 2026-06-22T14:30:00
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the transaction.
|
|
example: Market sale of Tritanium
|
|
transfers:
|
|
type: array
|
|
description: The transfers that make up this transaction.
|
|
items:
|
|
$ref: "#/components/schemas/TransferResponse"
|
|
required:
|
|
- datetime
|
|
- description
|
|
- source
|
|
- transactionId
|
|
- transfers
|
|
TransferResponse:
|
|
description: "A transfer between two ledgers, either of ISK or of an item stack."
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
ISK: "#/components/schemas/IskTransferResponse"
|
|
ITEM: "#/components/schemas/ItemTransferResponse"
|
|
oneOf:
|
|
- $ref: "#/components/schemas/IskTransferResponse"
|
|
- $ref: "#/components/schemas/ItemTransferResponse"
|
|
properties:
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
DailyProfitResponse:
|
|
type: object
|
|
description: "Profit for a single day: ISK in, ISK out, and their difference."
|
|
properties:
|
|
date:
|
|
type: string
|
|
format: date
|
|
description: The UTC (EVE) day this profit is for.
|
|
example: 2026-06-22
|
|
iskIn:
|
|
type: number
|
|
description: Total ISK that entered the ledger on this day.
|
|
example: 1500000.0
|
|
iskOut:
|
|
type: number
|
|
description: Total ISK that left the ledger on this day.
|
|
example: 500000.0
|
|
profit:
|
|
type: number
|
|
description: "Profit for the day: iskIn minus iskOut."
|
|
example: 1000000.0
|
|
required:
|
|
- date
|
|
- iskIn
|
|
- iskOut
|
|
- profit
|
|
BalanceResponse:
|
|
type: object
|
|
description: "The balance of a ledger: its ISK total plus the quantity of each\
|
|
\ item type held."
|
|
properties:
|
|
iskBalance:
|
|
type: number
|
|
description: ISK balance of the ledger.
|
|
example: 1500000.0
|
|
itemBalances:
|
|
type: array
|
|
description: Per-item-type quantities held in the ledger.
|
|
items:
|
|
$ref: "#/components/schemas/ItemBalanceResponse"
|
|
required:
|
|
- iskBalance
|
|
- itemBalances
|
|
ItemBalanceResponse:
|
|
type: object
|
|
description: Quantity of a single item type held in a ledger.
|
|
properties:
|
|
typeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id.
|
|
example: 34
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Number of units held.
|
|
example: 1000
|
|
required:
|
|
- quantity
|
|
- typeId
|
|
SseEmitter:
|
|
type: object
|
|
properties:
|
|
timeout:
|
|
type: integer
|
|
format: int64
|
|
required:
|
|
- timeout
|
|
AcquisitionResponse:
|
|
type: object
|
|
description: "A single acquisition of a market type, tracking the remaining\
|
|
\ quantity available in the FIFO cost pool."
|
|
properties:
|
|
acquisitionId:
|
|
type: string
|
|
format: uuid
|
|
description: Unique acquisition identifier.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
ledgerId:
|
|
type: string
|
|
format: uuid
|
|
description: Ledger the acquisition is held in.
|
|
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
|
|
source:
|
|
$ref: "#/components/schemas/ActivitySourceResponse"
|
|
description: "Where the acquisition came from: a character, a corporation,\
|
|
\ or nothing."
|
|
marketTypeId:
|
|
type: integer
|
|
format: int64
|
|
description: EVE market type (item) id that was acquired.
|
|
example: 34
|
|
datetime:
|
|
type: string
|
|
format: date-time
|
|
description: When the acquisition occurred.
|
|
example: 2026-06-22T14:30:00
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
description: Quantity originally acquired.
|
|
example: 1000
|
|
remaining:
|
|
type: integer
|
|
format: int64
|
|
description: Quantity still remaining in the FIFO cost pool.
|
|
example: 250
|
|
unitCost:
|
|
type: number
|
|
description: "Cost per unit at acquisition time, in ISK."
|
|
example: 5.42
|
|
required:
|
|
- acquisitionId
|
|
- datetime
|
|
- ledgerId
|
|
- marketTypeId
|
|
- quantity
|
|
- remaining
|
|
- source
|
|
- unitCost
|