diff --git a/Cargo.lock b/Cargo.lock
index 99356c7..d4fb4ef 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2294,7 +2294,7 @@ dependencies = [
[[package]]
name = "torn-api"
-version = "1.6.6"
+version = "1.7.0"
dependencies = [
"bon",
"bytes",
@@ -2316,7 +2316,7 @@ dependencies = [
[[package]]
name = "torn-api-codegen"
-version = "0.6.2"
+version = "0.7.0"
dependencies = [
"heck",
"indexmap",
diff --git a/Cargo.toml b/Cargo.toml
index bd0a83c..e7fa4ac 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,8 +4,8 @@ members = ["torn-api", "torn-api-codegen", "torn-key-pool"]
[workspace.package]
license-file = "./LICENSE"
-repository = "https://github.com/TotallyNot/torn-api.rs.git"
-homepage = "https://github.com/TotallyNot/torn-api.rs.git"
+repository = "https://git.elimination.me/pyrite/torn-api.rs.git"
+homepage = "https://git.elimination.me/pyrite/torn-api.rs"
[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
diff --git a/torn-api/Cargo.toml b/torn-api/Cargo.toml
index 262da7f..ee47443 100644
--- a/torn-api/Cargo.toml
+++ b/torn-api/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "torn-api"
-version = "1.6.6"
+version = "1.7.0"
edition = "2021"
description = "Auto-generated bindings for the v2 torn api"
license-file = { workspace = true }
@@ -39,7 +39,7 @@ strum = { version = "0.27.1", features = ["derive"], optional = true }
tokio = { version = "1", features = ["full"] }
[build-dependencies]
-torn-api-codegen = { path = "../torn-api-codegen", version = "0.6.2" }
+torn-api-codegen = { path = "../torn-api-codegen", version = "0.7.0" }
syn = { workspace = true, features = ["parsing"] }
proc-macro2 = { workspace = true }
prettyplease = "0.2"
diff --git a/torn-api/openapi.json b/torn-api/openapi.json
index 88bce60..6fb982b 100644
--- a/torn-api/openapi.json
+++ b/torn-api/openapi.json
@@ -3,7 +3,7 @@
"info": {
"title": "Torn API",
"description": "\n * The development of Torn's API v2 is still ongoing.\n * If selections remain unaltered, they will default to the API v1 version.\n * Unlike API v1, API v2 accepts both selections and IDs as path and query parameters.\n * If any discrepancies or errors are found, please submit a [bug report](https://www.torn.com/forums.php#/p=forums&f=19&b=0&a=0) on the Torn Forums.\n * In case you're using bots to check for changes on openapi.json file, make sure to specificy a custom user-agent header - CloudFlare sometimes prevents requests from default user-agents.",
- "version": "1.8.3"
+ "version": "1.11.4"
},
"servers": [
{
@@ -1161,6 +1161,192 @@
"x-stability": "Stable"
}
},
+ "/user/properties": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get your own properties",
+ "description": "Requires public access key.
Extended responses are available when requesting the data with Limited or higher access keys.",
+ "operationId": "574a416ca46717830f03a2f685955b87",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserPropertiesResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/user/{id}/properties": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get specific user's properties",
+ "description": "Requires public access key.
Extended responses are available when requesting the data with Limited or higher access keys for yourself or your spouse.",
+ "operationId": "601f7b38ac25e1ac47b33fb64120198b",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "User id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/UserId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserPropertiesResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/user/property": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get your current property",
+ "description": "Requires public access key.
",
+ "operationId": "0452cb8fd031b80d3b7e9fcb7b0bdf09",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserPropertyResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/user/{id}/property": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get specific user's property",
+ "description": "Requires public access key.
",
+ "operationId": "f36ce18449194dd9d2b62bccd4bb8343",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "User id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/UserId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserPropertyResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/user/races": {
"get": {
"tags": [
@@ -1221,6 +1407,45 @@
"x-stability": "Stable"
}
},
+ "/user/racingrecords": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get your current racing records",
+ "description": "Requires minimal access key.
",
+ "operationId": "e1b2c1039ea41f7607b9c94660fc72cb",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserRacingRecordsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/user/reports": {
"get": {
"tags": [
@@ -1613,6 +1838,9 @@
{
"$ref": "#/components/schemas/UserCalendarResponse"
},
+ {
+ "$ref": "#/components/schemas/UserRacingRecordsResponse"
+ },
{
"$ref": "#/components/schemas/UserEducationResponse"
},
@@ -1622,6 +1850,9 @@
{
"$ref": "#/components/schemas/UserJobRanksResponse"
},
+ {
+ "$ref": "#/components/schemas/UserPropertiesResponse"
+ },
{
"$ref": "#/components/schemas/UserFactionBalanceResponse"
},
@@ -2288,13 +2519,13 @@
"Faction"
],
"summary": "Get your faction's organized crimes",
- "description": "Requires minimal access key with faction API access permissions.
It's possible to get older entries either by timestamp range (from, to) or with offset.",
+ "description": "Requires minimal access key with faction API access permissions.
It's possible to get older entries either by timestamp range (from, to) or with offset.
Crimes are ordered depending on the category chosen:\n * For categories 'all' & 'available', the ordering field is 'created_at'.\n * For categories 'successful', 'failed' & 'completed', the ordering field is 'executed_at'.\n * For categories 'recruiting' & 'expired', the ordering field is 'expired_at'.\n * For category 'planning', the ordering field is 'ready_at'.",
"operationId": "72e5db8a773908fedff4bb002f3f4406",
"parameters": [
{
"name": "cat",
"in": "query",
- "description": "Category of organized crimes returned. Category 'available' includes both 'recruiting' & 'planning', and category 'completed' includes both 'successful' & 'failure'
Default category is 'all'",
+ "description": "Category of organized crimes returned. Category 'available' includes both 'recruiting' & 'planning', and category 'completed' includes both 'successful' & 'failure'
Default category is 'all'.",
"required": false,
"schema": {
"type": "string",
@@ -2310,6 +2541,21 @@
]
}
},
+ {
+ "name": "filters",
+ "in": "query",
+ "description": "It's possible to set this parameter to specify a field used for the sort, from & to query parameters. If not specified, the field will default to the category sorting as described above.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "created_at",
+ "executed_at",
+ "ready_at",
+ "expired_at"
+ ]
+ }
+ },
{
"$ref": "#/components/parameters/ApiOffset"
},
@@ -2721,19 +2967,165 @@
"x-stability": "Unstable"
}
},
+ "/faction/{raidWarId}/raidreport": {
+ "get": {
+ "tags": [
+ "Faction"
+ ],
+ "summary": "Get raid war details",
+ "description": "Requires public access key.
",
+ "operationId": "9a48477c16e86235efce00a11d56510f",
+ "parameters": [
+ {
+ "name": "raidWarId",
+ "in": "path",
+ "description": "Raid war id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/RaidWarId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FactionRaidWarReportResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/faction/raids": {
+ "get": {
+ "tags": [
+ "Faction"
+ ],
+ "summary": "Get raids history for your faction",
+ "description": "Requires public access key.
",
+ "operationId": "6a2b0604d0ebe31933f93facfa69f171",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiSortDesc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FactionRaidsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/faction/{id}/raids": {
+ "get": {
+ "tags": [
+ "Faction"
+ ],
+ "summary": "Get a faction's raids history",
+ "description": "Requires public access key.
",
+ "operationId": "67622543dbbc4857f1ea575be5af7fcd",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "Faction id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/FactionId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FactionRaidsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/faction/rankedwars": {
"get": {
"tags": [
"Faction"
],
- "summary": "Get ranked wars list",
- "description": "Requires public access key.
When category 'all' is chosen, you can use 'from', 'to' & 'sort' query parameters.
When category 'ongoing' is chosen, all currently active ranked wars are returned.
When no category is chosen, this selection will return ranked war history of your own faction (if any).",
+ "summary": "Get ranked wars history for your faction",
+ "description": "Requires public access key.
",
"operationId": "4f5d624a86e2d389a7a738b6b3ce8c9e",
"parameters": [
{
"name": "cat",
"in": "query",
+ "description": "This parameter is deprecated. The ranked wars list can now instead be fetched via 'faction' -> 'warfare' endpoint. This functionality will be removed on 1st of September 2025.",
"required": false,
+ "deprecated": true,
"schema": {
"$ref": "#/components/schemas/FactionRankedWarsCategoryEnum"
}
@@ -3060,7 +3452,7 @@
"$ref": "#/components/parameters/ApiFactionSearchFilter"
},
{
- "$ref": "#/components/parameters/ApiLimit20"
+ "$ref": "#/components/parameters/ApiLimit50Default20"
},
{
"$ref": "#/components/parameters/ApiOffset"
@@ -3271,14 +3663,16 @@
"tags": [
"Faction"
],
- "summary": "Get territory wars list",
- "description": "Requires public access key.
When category 'finished' is chosen, you can use 'from', 'to' & 'sort' query parameters.
When category 'ongoing' is chosen, all currently active territory wars are returned.
When no category is chosen, this selection will return territory war history of your own faction (if any).",
+ "summary": "Get territory wars history for your faction",
+ "description": "Requires public access key.
",
"operationId": "0258963246159d1e3e54547c32aac7c8",
"parameters": [
{
"name": "cat",
"in": "query",
+ "description": "This parameter is deprecated. The territory wars list can now instead be fetched via 'faction' -> 'warfare' endpoint. This functionality will be removed on 1st of September 2025.",
"required": false,
+ "deprecated": true,
"schema": {
"$ref": "#/components/schemas/FactionTerritoryWarsCategoryEnum"
}
@@ -3460,6 +3854,65 @@
"x-stability": "Unstable"
}
},
+ "/faction/warfare": {
+ "get": {
+ "tags": [
+ "Faction"
+ ],
+ "summary": "Get faction warfare",
+ "description": "Requires public access key.
The response depends on the selected category.",
+ "operationId": "ae7f06db4618d3e7927fd700cfa58f16",
+ "parameters": [
+ {
+ "name": "cat",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/FactionWarfareTypeEnum"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100"
+ },
+ {
+ "$ref": "#/components/parameters/ApiSort"
+ },
+ {
+ "$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FactionWarfareResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Stable"
+ }
+ },
"/faction/wars": {
"get": {
"tags": [
@@ -3668,6 +4121,9 @@
},
{
"$ref": "#/components/schemas/TerritoryWarId"
+ },
+ {
+ "$ref": "#/components/schemas/RaidWarId"
}
]
}
@@ -3717,6 +4173,9 @@
{
"$ref": "#/components/schemas/ReportTypeEnum"
},
+ {
+ "$ref": "#/components/schemas/FactionWarfareTypeEnum"
+ },
{
"$ref": "#/components/schemas/FactionTerritoryWarsCategoryEnum"
}
@@ -3732,6 +4191,20 @@
"$ref": "#/components/schemas/FactionStatEnum"
}
},
+ {
+ "name": "filters",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "created_at",
+ "executed_at",
+ "ready_at",
+ "expired_at"
+ ]
+ }
+ },
{
"$ref": "#/components/parameters/ApiStripTags"
},
@@ -3785,6 +4258,9 @@
{
"$ref": "#/components/schemas/FactionBalanceResponse"
},
+ {
+ "$ref": "#/components/schemas/FactionRaidWarReportResponse"
+ },
{
"$ref": "#/components/schemas/FactionTerritoriesOwnershipResponse"
},
@@ -3815,6 +4291,12 @@
{
"$ref": "#/components/schemas/FactionCrimeResponse"
},
+ {
+ "$ref": "#/components/schemas/FactionRaidsResponse"
+ },
+ {
+ "$ref": "#/components/schemas/FactionWarfareResponse"
+ },
{
"$ref": "#/components/schemas/FactionRankedWarReportResponse"
},
@@ -4455,6 +4937,102 @@
"x-stability": "Stable"
}
},
+ "/market/bazaar": {
+ "get": {
+ "tags": [
+ "Market"
+ ],
+ "summary": "Get bazaar directory",
+ "description": "Requires public access key.
The default response is of type 'BazaarWeekly', but if a category is chosen, the response will be of type 'BazaarSpecialized'.",
+ "operationId": "422876deda064e2f3a2cc3c4bf6d73a9",
+ "parameters": [
+ {
+ "name": "cat",
+ "in": "query",
+ "description": "Category of specialized bazaars returned",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/MarketSpecializedBazaarCategoryEnum"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BazaarResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/market/{id}/bazaar": {
+ "get": {
+ "tags": [
+ "Market"
+ ],
+ "summary": "Get item specialized bazaar directory",
+ "description": "Requires public access key.
",
+ "operationId": "8254489388603bf1b21740e6f71bef06",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "Item id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/ItemId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BazaarResponseSpecialized"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/market/{id}/itemmarket": {
"get": {
"tags": [
@@ -4515,6 +5093,120 @@
"x-stability": "Unstable"
}
},
+ "/market/{propertyTypeId}/properties": {
+ "get": {
+ "tags": [
+ "Market"
+ ],
+ "summary": "Get properties market listings",
+ "description": "Requires public access key.
",
+ "operationId": "17e406574ff1eb686891c0fb0e15343a",
+ "parameters": [
+ {
+ "name": "propertyTypeId",
+ "in": "path",
+ "description": "Property type id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/PropertyTypeId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiSort"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MarketPropertiesResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/market/{propertyTypeId}/rentals": {
+ "get": {
+ "tags": [
+ "Market"
+ ],
+ "summary": "Get properties rental listings",
+ "description": "Requires public access key.
",
+ "operationId": "38cd1a2c47e266a703a13e0dd401f4a9",
+ "parameters": [
+ {
+ "name": "propertyTypeId",
+ "in": "path",
+ "description": "Property type id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/PropertyTypeId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiSort"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MarketRentalsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/market/lookup": {
"get": {
"tags": [
@@ -4622,7 +5314,23 @@
"description": "selection id",
"required": false,
"schema": {
- "$ref": "#/components/schemas/ItemId"
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/ItemId"
+ },
+ {
+ "$ref": "#/components/schemas/PropertyTypeId"
+ }
+ ]
+ }
+ },
+ {
+ "name": "cat",
+ "in": "query",
+ "description": "Category of specialized bazaars returned",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/MarketSpecializedBazaarCategoryEnum"
}
},
{
@@ -4650,6 +5358,9 @@
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
},
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
{
"$ref": "#/components/parameters/ApiTimestamp"
},
@@ -4667,9 +5378,21 @@
"application/json": {
"schema": {
"anyOf": [
+ {
+ "$ref": "#/components/schemas/BazaarResponse"
+ },
+ {
+ "$ref": "#/components/schemas/BazaarResponseSpecialized"
+ },
{
"$ref": "#/components/schemas/MarketItemMarketResponse"
},
+ {
+ "$ref": "#/components/schemas/MarketRentalsResponse"
+ },
+ {
+ "$ref": "#/components/schemas/MarketPropertiesResponse"
+ },
{
"$ref": "#/components/schemas/MarketLookupResponse"
},
@@ -4882,7 +5605,7 @@
"Racing"
],
"summary": "Get track records",
- "description": "Requires public access key.
Returns a list of 10 best lap records for the chosen track and car class. Results are cached globally 1 hour.",
+ "description": "Requires public access key.
Returns a list of 5 best lap records for the chosen track and car class.",
"operationId": "5fbc62db3b9380b155d7e33100620da7",
"parameters": [
{
@@ -5175,6 +5898,204 @@
"x-stability": "Stable"
}
},
+ "/property/{id}/property": {
+ "get": {
+ "tags": [
+ "Property"
+ ],
+ "summary": "Get a specific property",
+ "description": "Requires public access key.
",
+ "operationId": "87bd73ddaf3749bce7cbf5aa28e921e2",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "Property id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/PropertyId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserPropertyResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/property/lookup": {
+ "get": {
+ "tags": [
+ "Property"
+ ],
+ "summary": "Get all available property selections",
+ "description": "Requires public access key.
",
+ "operationId": "87fe6e3a7ec186e108922fed781c8d6d",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PropertyLookupResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Stable"
+ }
+ },
+ "/property/timestamp": {
+ "get": {
+ "tags": [
+ "Property"
+ ],
+ "summary": "Get current server time",
+ "description": "Requires public access key.
",
+ "operationId": "423c130a5cdf6bc801c42537c07fddec",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TimestampResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Stable"
+ }
+ },
+ "/property": {
+ "get": {
+ "tags": [
+ "Property"
+ ],
+ "summary": "Get any property selection",
+ "description": "Requires public access key.
Choose one or more selections (comma separated).",
+ "operationId": "2a45b6d9d77224d9a1e13d0b698f6c4b",
+ "parameters": [
+ {
+ "name": "selections",
+ "in": "query",
+ "description": "Selection names",
+ "required": false,
+ "style": "form",
+ "explode": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertySelectionName"
+ }
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "description": "Property id",
+ "required": true,
+ "schema": {
+ "$ref": "#/components/schemas/PropertyId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyResponse"
+ },
+ {
+ "$ref": "#/components/schemas/PropertyLookupResponse"
+ },
+ {
+ "$ref": "#/components/schemas/TimestampResponse"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Stable"
+ }
+ },
"/torn/attacklog": {
"get": {
"tags": [
@@ -5852,6 +6773,45 @@
"x-stability": "Stable"
}
},
+ "/torn/properties": {
+ "get": {
+ "tags": [
+ "Torn"
+ ],
+ "summary": "Get properties details",
+ "description": "Requires public access key.
",
+ "operationId": "c44f572f4672071280a28e6f8217c3b6",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TornProperties"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/torn/{crimeId}/subcrimes": {
"get": {
"tags": [
@@ -6175,6 +7135,9 @@
{
"$ref": "#/components/schemas/TornItemAmmoResponse"
},
+ {
+ "$ref": "#/components/schemas/TornProperties"
+ },
{
"$ref": "#/components/schemas/TornFactionTreeResponse"
},
@@ -10401,6 +11364,7 @@
"gymtrains",
"gymstrength",
"gymspeed",
+ "gymenergy",
"gymdefense",
"gymdexterity",
"candyused",
@@ -10440,6 +11404,35 @@
"custom"
]
},
+ "MarketSpecializedBazaarCategoryEnum": {
+ "type": "string",
+ "enum": [
+ "Alcohol",
+ "Artifact",
+ "Booster",
+ "Candy",
+ "Car",
+ "Clothing",
+ "Collectible",
+ "Defensive",
+ "Drug",
+ "Energy Drink",
+ "Enhancer",
+ "Flower",
+ "Jewelry",
+ "Material",
+ "Medical",
+ "Melee",
+ "Other",
+ "Plushie",
+ "Primary",
+ "Secondary",
+ "Special",
+ "Supply Pack",
+ "Temporary",
+ "Tool"
+ ]
+ },
"FactionPositionAbilityEnum": {
"type": "string",
"enum": [
@@ -10826,7 +11819,8 @@
"enum": [
"accepted",
"declined",
- "withdrawn"
+ "withdrawn",
+ "active"
]
},
"FactionRankedWarsCategoryEnum": {
@@ -10857,6 +11851,18 @@
"type": "integer",
"format": "int32"
},
+ "PropertyTypeId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "PropertyId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "DirtyBombId": {
+ "type": "integer",
+ "format": "int32"
+ },
"RaceTrackId": {
"type": "integer",
"format": "int32"
@@ -10889,6 +11895,10 @@
"type": "integer",
"format": "int32"
},
+ "RaidWarId": {
+ "type": "integer",
+ "format": "int32"
+ },
"ItemUid": {
"type": "integer",
"format": "int64"
@@ -11064,6 +12074,47 @@
"Unknown"
]
},
+ "FactionWarfareTypeEnum": {
+ "type": "string",
+ "enum": [
+ "ranked",
+ "territory",
+ "raid",
+ "chain",
+ "db"
+ ]
+ },
+ "PropertyModificationEnum": {
+ "type": "string",
+ "enum": [
+ "Hot Tub",
+ "Sauna",
+ "Open Bar",
+ "Small Pool",
+ "Medium Pool",
+ "Large Pool",
+ "Small Vault",
+ "Medium Vault",
+ "Large Vault",
+ "Extra Large Vault",
+ "Medical Facility",
+ "Advanced Shooting Range",
+ "Airstrip",
+ "Private Yacht",
+ "Sufficient Interior Modification",
+ "Superior Interior Modification"
+ ]
+ },
+ "PropertyStaffEnum": {
+ "type": "string",
+ "enum": [
+ "Maid",
+ "Guard",
+ "Doctor",
+ "Pilot",
+ "Butler"
+ ]
+ },
"FactionCrimeStatusEnum": {
"type": "string",
"enum": [
@@ -11594,7 +12645,8 @@
"required": [
"id",
"name",
- "faction"
+ "faction",
+ "skill"
],
"properties": {
"id": {
@@ -11624,6 +12676,18 @@
"type": "null"
}
]
+ },
+ "skill": {
+ "description": "Entries before 16/06/2025 will have this field set as null.",
+ "oneOf": [
+ {
+ "type": "number",
+ "format": "float"
+ },
+ {
+ "type": "null"
+ }
+ ]
}
},
"type": "object"
@@ -12306,6 +13370,315 @@
}
]
},
+ "BasicUser": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "UserPropertyBasicDetails": {
+ "required": [
+ "id",
+ "owner",
+ "property",
+ "happy",
+ "upkeep",
+ "market_price",
+ "modifications",
+ "staff"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/PropertyId"
+ },
+ "owner": {
+ "$ref": "#/components/schemas/BasicUser"
+ },
+ "property": {
+ "$ref": "#/components/schemas/BasicProperty"
+ },
+ "happy": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "upkeep": {
+ "required": [
+ "property",
+ "staff"
+ ],
+ "properties": {
+ "property": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "staff": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ },
+ "market_price": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "modifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertyModificationEnum"
+ }
+ },
+ "staff": {
+ "type": "array",
+ "items": {
+ "required": [
+ "type",
+ "amount"
+ ],
+ "properties": {
+ "type": {
+ "$ref": "#/components/schemas/PropertyStaffEnum"
+ },
+ "amount": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "UserPropertyDetailsExtended": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "required": [
+ "status",
+ "used_by"
+ ],
+ "properties": {
+ "used_by": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "none",
+ "in_use"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "UserPropertyDetails": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "required": [
+ "used_by"
+ ],
+ "properties": {
+ "used_by": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "UserPropertyDetailsExtendedRented": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "required": [
+ "status",
+ "used_by",
+ "cost",
+ "cost_per_day",
+ "rental_period",
+ "rental_period_remaining"
+ ],
+ "properties": {
+ "used_by": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "rented"
+ ]
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "cost_per_day": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "rental_period": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rental_period_remaining": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "UserPropertyDetailsExtendedForRent": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "required": [
+ "status",
+ "used_by",
+ "cost",
+ "cost_per_day",
+ "rental_period"
+ ],
+ "properties": {
+ "used_by": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "for_rent"
+ ]
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "cost_per_day": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "rental_period": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "renter_asked": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "UserPropertyDetailsExtendedForSale": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "required": [
+ "status",
+ "used_by",
+ "cost"
+ ],
+ "properties": {
+ "used_by": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "for_sale"
+ ]
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "UserPropertiesResponse": {
+ "required": [
+ "properties",
+ "_metadata"
+ ],
+ "properties": {
+ "properties": {
+ "type": "object",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserPropertyBasicDetails"
+ },
+ {
+ "$ref": "#/components/schemas/UserPropertyDetailsExtended"
+ },
+ {
+ "$ref": "#/components/schemas/UserPropertyDetailsExtendedRented"
+ },
+ {
+ "$ref": "#/components/schemas/UserPropertyDetailsExtendedForRent"
+ },
+ {
+ "$ref": "#/components/schemas/UserPropertyDetailsExtendedForSale"
+ }
+ ]
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
+ "UserPropertyResponse": {
+ "required": [
+ "property"
+ ],
+ "properties": {
+ "property": {
+ "$ref": "#/components/schemas/UserPropertyDetails"
+ }
+ },
+ "type": "object"
+ },
"UserCurrentEducation": {
"required": [
"id",
@@ -12436,12 +13809,6 @@
"type": "integer",
"format": "int32"
},
- "sci-fi": {
- "description": "This is replaced with 'sci_fi' field and will be removed on 1st June 2025.",
- "type": "integer",
- "format": "int32",
- "deprecated": true
- },
"sci_fi": {
"type": "integer",
"format": "int32"
@@ -13703,7 +15070,7 @@
"UserSelectionName": {
"oneOf": [
{
- "description": "The following selections will fallback to API v1 and may change at any time: 'ammo','bars','basic','battlestats','bazaar','cooldowns','criminalrecord','discord','display','education','equipment','events','gym','honors','icons','inventory','jobpoints','log','medals','merits','messages','missions','money','networth','newevents','newmessages','notifications','perks','profile','properties','refills','reports','skills','stocks','travel','weaponexp','workstats'.",
+ "description": "The following selections will fallback to API v1 and may change at any time: 'ammo','bars','basic','battlestats','bazaar','cooldowns','criminalrecord','discord','display','education','equipment','events','gym','honors','icons','inventory','jobpoints','log','medals','merits','messages','missions','money','networth','newevents','newmessages','notifications','perks','profile','refills','reports','skills','stocks','travel','weaponexp','workstats'.",
"type": "string",
"enum": [
"attacks",
@@ -13725,7 +15092,10 @@
"lookup",
"organizedcrime",
"personalstats",
+ "properties",
+ "property",
"races",
+ "racingrecords",
"revives",
"revivesfull",
"timestamp",
@@ -13758,7 +15128,6 @@
"notifications",
"perks",
"profile",
- "properties",
"refills",
"reports",
"skills",
@@ -16826,6 +18195,339 @@
"scammingskill"
]
},
+ "FactionRaidReport": {
+ "required": [
+ "id",
+ "start",
+ "end",
+ "aggressor",
+ "defender"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/RaidWarId"
+ },
+ "start": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "end": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "aggressor": {
+ "$ref": "#/components/schemas/FactionRaidReportFaction"
+ },
+ "defender": {
+ "$ref": "#/components/schemas/FactionRaidReportFaction"
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidReportFaction": {
+ "required": [
+ "id",
+ "name",
+ "score",
+ "attackers",
+ "non_attackers"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "score": {
+ "type": "number",
+ "format": "float"
+ },
+ "attackers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRaidReportAttacker"
+ }
+ },
+ "non_attackers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRaidReportUser"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidReportAttacker": {
+ "required": [
+ "user",
+ "attacks",
+ "damage"
+ ],
+ "properties": {
+ "user": {
+ "$ref": "#/components/schemas/FactionRaidReportUser"
+ },
+ "attacks": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "damage": {
+ "type": "number",
+ "format": "float"
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidReportUser": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidWarReportResponse": {
+ "required": [
+ "raidreport"
+ ],
+ "properties": {
+ "raidreport": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRaidReport"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "FactionWarfareDirtyBomb": {
+ "required": [
+ "id",
+ "planted_at",
+ "detonated_at",
+ "faction",
+ "user"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/DirtyBombId"
+ },
+ "planted_at": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "detonated_at": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "faction": {
+ "$ref": "#/components/schemas/FactionWarfareDirtyBombTargetFaction"
+ },
+ "user": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/FactionWarfareDirtyBombPlanter"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "FactionWarfareDirtyBombTargetFaction": {
+ "required": [
+ "id",
+ "name",
+ "respect_lost"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "respect_lost": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ },
+ "FactionWarfareDirtyBombPlanter": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidWarfare": {
+ "required": [
+ "id",
+ "start",
+ "end",
+ "aggressor",
+ "defender"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/RaidWarId"
+ },
+ "start": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "end": {
+ "oneOf": [
+ {
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "aggressor": {
+ "$ref": "#/components/schemas/FactionRaidWarfareFaction"
+ },
+ "defender": {
+ "$ref": "#/components/schemas/FactionRaidWarfareFaction"
+ }
+ },
+ "type": "object"
+ },
+ "FactionRaidWarfareFaction": {
+ "description": "The field 'chain' exists only if the field 'end' is NOT populated in FactionRaidWarfare schema.",
+ "required": [
+ "id",
+ "name",
+ "score"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "score": {
+ "type": "number",
+ "format": "float"
+ },
+ "chain": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ },
+ "FactionTerritoryWarfare": {
+ "required": [
+ "id",
+ "territory",
+ "start",
+ "end",
+ "target",
+ "aggressor",
+ "defender",
+ "result"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/TerritoryWarId"
+ },
+ "territory": {
+ "$ref": "#/components/schemas/FactionTerritoryEnum"
+ },
+ "start": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "end": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "target": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "aggressor": {
+ "$ref": "#/components/schemas/FactionTerritoryWarFaction"
+ },
+ "defender": {
+ "$ref": "#/components/schemas/FactionTerritoryWarFaction"
+ },
+ "result": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "FactionTerritoryWarFactionWallPlayers": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "FactionTerritoryWarFaction": {
+ "description": "The fields 'chain' and 'players_on_wall' exist only for wars with the result 'in_progress'.",
+ "required": [
+ "id",
+ "name",
+ "score"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "score": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "chain": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "players_on_wall": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionTerritoryWarFactionWallPlayers"
+ }
+ }
+ },
+ "type": "object"
+ },
"FactionTerritoryWarFinishedFaction": {
"required": [
"id",
@@ -17885,10 +19587,6 @@
"leader_id": {
"$ref": "#/components/schemas/UserId"
},
- "co-leader_id": {
- "$ref": "#/components/schemas/UserId",
- "description": "This is replaced with 'co_leader_id' field and will be removed on 1st June 2025."
- },
"co_leader_id": {
"$ref": "#/components/schemas/UserId"
},
@@ -18290,6 +19988,24 @@
},
"type": "object"
},
+ "FactionRaidsResponse": {
+ "required": [
+ "raids",
+ "_metadata"
+ ],
+ "properties": {
+ "raids": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRaidWarfare"
+ }
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
"FactionAttacksResponse": {
"required": [
"attacks",
@@ -18505,6 +20221,36 @@
},
"type": "object"
},
+ "FactionChainWarfare": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/FactionChain"
+ },
+ {
+ "required": [
+ "faction"
+ ],
+ "properties": {
+ "faction": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
"FactionChainsResponse": {
"required": [
"chains",
@@ -18575,14 +20321,6 @@
"$ref": "#/components/schemas/FactionChainReportAttacker"
}
},
- "non-attackers": {
- "description": "This is replaced with 'non_attackers' field and will be removed on 1st June 2025.",
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/UserId"
- },
- "deprecated": true
- },
"non_attackers": {
"type": "array",
"items": {
@@ -19211,6 +20949,8 @@
"news",
"positions",
"rackets",
+ "raidreport",
+ "raids",
"rankedwars",
"rankedwarreport",
"reports",
@@ -19224,6 +20964,7 @@
"territorywars",
"timestamp",
"upgrades",
+ "warfare",
"wars",
"armor",
"boosters",
@@ -19341,6 +21082,52 @@
},
"type": "object"
},
+ "FactionWarfareResponse": {
+ "required": [
+ "warfare",
+ "_metadata"
+ ],
+ "properties": {
+ "warfare": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRankedWarDetails"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionTerritoryWarfare"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionChainWarfare"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionRaidWarfare"
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionWarfareDirtyBomb"
+ }
+ }
+ ]
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
"FactionRankedWarReportResponse": {
"required": [
"rankedwarreport"
@@ -20188,6 +21975,437 @@
}
]
},
+ "BasicProperty": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/PropertyTypeId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "MarketRentalDetails": {
+ "required": [
+ "listings",
+ "property"
+ ],
+ "properties": {
+ "listings": {
+ "type": "array",
+ "items": {
+ "required": [
+ "happy",
+ "cost",
+ "cost_per_day",
+ "rental_period",
+ "market_price",
+ "upkeep",
+ "modifications"
+ ],
+ "properties": {
+ "happy": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "cost_per_day": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "rental_period": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "market_price": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "upkeep": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "modifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertyModificationEnum"
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
+ "property": {
+ "$ref": "#/components/schemas/BasicProperty"
+ }
+ },
+ "type": "object"
+ },
+ "MarketRentalsResponse": {
+ "required": [
+ "properties",
+ "_metadata"
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/components/schemas/MarketRentalDetails"
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
+ "MarketPropertyDetails": {
+ "required": [
+ "listings",
+ "property"
+ ],
+ "properties": {
+ "listings": {
+ "type": "array",
+ "items": {
+ "required": [
+ "happy",
+ "cost",
+ "market_price",
+ "upkeep",
+ "modifications"
+ ],
+ "properties": {
+ "happy": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "market_price": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "upkeep": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "modifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertyModificationEnum"
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
+ "property": {
+ "$ref": "#/components/schemas/BasicProperty"
+ }
+ },
+ "type": "object"
+ },
+ "MarketPropertiesResponse": {
+ "required": [
+ "properties",
+ "_metadata"
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/components/schemas/MarketPropertyDetails"
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
+ "BazaarWeekly": {
+ "required": [
+ "busiest",
+ "most_popular",
+ "trending",
+ "top_grossing",
+ "bulk",
+ "advanced_item",
+ "bargain",
+ "dollar_sale"
+ ],
+ "properties": {
+ "busiest": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarWeeklyCustomers"
+ }
+ },
+ "most_popular": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarTotalFavorites"
+ }
+ },
+ "trending": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarRecentFavorites"
+ }
+ },
+ "top_grossing": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarWeeklyIncome"
+ }
+ },
+ "bulk": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarBulkSales"
+ }
+ },
+ "advanced_item": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarAdvancedItemSales"
+ }
+ },
+ "bargain": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarBargainSales"
+ }
+ },
+ "dollar_sale": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarDollarSales"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "BazaarSpecialized": {
+ "required": [
+ "specialized"
+ ],
+ "properties": {
+ "specialized": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BazaarWeeklyCustomers"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "BazaarResponse": {
+ "required": [
+ "bazaar"
+ ],
+ "properties": {
+ "bazaar": {
+ "description": "If there's a specific item ID passed or a category chosen, the response will be of type 'BazaarSpecialized', otherwise it will be 'BazaarWeekly'.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/BazaarWeekly"
+ },
+ {
+ "$ref": "#/components/schemas/BazaarSpecialized"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "BazaarResponseSpecialized": {
+ "required": [
+ "bazaar"
+ ],
+ "properties": {
+ "bazaar": {
+ "$ref": "#/components/schemas/BazaarSpecialized"
+ }
+ },
+ "type": "object"
+ },
+ "Bazaar": {
+ "required": [
+ "id",
+ "name",
+ "is_open"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "is_open": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "BazaarWeeklyCustomers": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "weekly_customers"
+ ],
+ "properties": {
+ "weekly_customers": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarTotalFavorites": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "total_favorites"
+ ],
+ "properties": {
+ "total_favorites": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarRecentFavorites": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "recent_favorites"
+ ],
+ "properties": {
+ "recent_favorites": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarWeeklyIncome": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "weekly_income"
+ ],
+ "properties": {
+ "weekly_income": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarBulkSales": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "bulk_sales"
+ ],
+ "properties": {
+ "bulk_sales": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarAdvancedItemSales": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "advanced_item_sales"
+ ],
+ "properties": {
+ "advanced_item_sales": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarBargainSales": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "bargain_sales"
+ ],
+ "properties": {
+ "bargain_sales": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "BazaarDollarSales": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bazaar"
+ },
+ {
+ "required": [
+ "dollar_sales"
+ ],
+ "properties": {
+ "dollar_sales": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
"ItemMarketListingItemBonus": {
"required": [
"id",
@@ -20413,11 +22631,13 @@
"description": "The following selections will fallback to API v1 and may change at any time: 'pointsmarket'.",
"type": "string",
"enum": [
+ "bazaar",
"itemmarket",
+ "properties",
+ "rentals",
"lookup",
"timestamp",
- "pointsmarket",
- "bazaar"
+ "pointsmarket"
]
},
{
@@ -20439,6 +22659,64 @@
},
"type": "object"
},
+ "UserRacingRecordsResponse": {
+ "required": [
+ "racingrecords"
+ ],
+ "properties": {
+ "racingrecords": {
+ "type": "array",
+ "items": {
+ "required": [
+ "track",
+ "records"
+ ],
+ "properties": {
+ "track": {
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/RaceTrackId"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "required": [
+ "car_id",
+ "car_name",
+ "lap_time"
+ ],
+ "properties": {
+ "car_id": {
+ "$ref": "#/components/schemas/ItemId"
+ },
+ "car_name": {
+ "type": "string"
+ },
+ "lap_time": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "type": "object"
+ },
"RacingCarsResponse": {
"required": [
"cars"
@@ -20674,7 +22952,8 @@
"laps",
"participants",
"schedule",
- "requirements"
+ "requirements",
+ "is_official"
],
"properties": {
"id": {
@@ -20804,6 +23083,9 @@
}
},
"type": "object"
+ },
+ "is_official": {
+ "type": "boolean"
}
},
"type": "object"
@@ -20945,6 +23227,7 @@
},
{
"required": [
+ "is_official",
"results"
],
"properties": {
@@ -20953,6 +23236,9 @@
"items": {
"$ref": "#/components/schemas/RacerDetails"
}
+ },
+ "is_official": {
+ "type": "boolean"
}
},
"type": "object"
@@ -20996,6 +23282,87 @@
},
"type": "object"
},
+ "PropertySelectionName": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": [
+ "property",
+ "lookup",
+ "timestamp"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "PropertyLookupResponse": {
+ "required": [
+ "selections"
+ ],
+ "properties": {
+ "selections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertySelectionName"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "TornProperties": {
+ "properties": {
+ "properties": {
+ "type": "array",
+ "items": {
+ "required": [
+ "id",
+ "name",
+ "cost",
+ "happy",
+ "upkeep",
+ "modifications",
+ "staff"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/PropertyTypeId"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cost": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "happy": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "upkeep": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "modifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertyModificationEnum"
+ }
+ },
+ "staff": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PropertyStaffEnum"
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "type": "object"
+ },
"TornEducationRewards": {
"required": [
"working_stats",
@@ -21465,7 +23832,20 @@
"format": "int32"
},
"value": {
- "description": "Value representing the chosen category. Traveltime is shown in seconds. If the chosen category is 'rank', the value is of type string. If the chosen category is 'racingskill', the value is of type float. Otherwise it is an integer."
+ "description": "Value representing the chosen category. Traveltime is shown in seconds. If the chosen category is 'rank', the value is of type string. If the chosen category is 'racingskill', the value is of type float. Otherwise it is an integer.",
+ "oneOf": [
+ {
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "number",
+ "format": "float"
+ }
+ ]
},
"rank": {
"type": "string"
@@ -22416,7 +24796,7 @@
"TornSelectionName": {
"oneOf": [
{
- "description": "The following selections will fallback to API v1 and may change at any time: 'bank','cards','cityshops','companies','competition','dirtybombs','gyms','honors','itemdetails','itemstats','medals','organisedcrimes','pawnshop','pokertables','properties','raidreport','raids','rockpaperscissors','searchforcash','shoplifting','stats','stocks'.\n * The following selections are not available in API v2: 'chainreport', 'rackets', 'rankedwarreport', 'rankedwars', 'territorynames', 'territorywarreport', 'territorywars'.",
+ "description": "The following selections will fallback to API v1 and may change at any time: 'bank','cards','cityshops','companies','competition','gyms','honors','itemdetails','itemstats','medals','organisedcrimes','pawnshop','pokertables','rockpaperscissors','searchforcash','shoplifting','stats','stocks'.\n * The following selections are not available in API v2: 'dirtybombs','raidreport','raids', 'chainreport', 'rackets', 'rankedwarreport', 'rankedwars', 'territorynames', 'territorywarreport', 'territorywars'.",
"type": "string",
"enum": [
"attacklog",
@@ -22433,6 +24813,7 @@
"logcategories",
"logtypes",
"lookup",
+ "properties",
"subcrimes",
"territory",
"timestamp",
@@ -22441,7 +24822,6 @@
"cityshops",
"companies",
"competition",
- "dirtybombs",
"gyms",
"honors",
"itemdetails",
@@ -22450,9 +24830,6 @@
"organisedcrimes",
"pawnshop",
"pokertables",
- "properties",
- "raidreport",
- "raids",
"rockpaperscissors",
"searchforcash",
"shoplifting",
@@ -22612,6 +24989,18 @@
"minimum": 1
}
},
+ "ApiLimit50Default20": {
+ "name": "limit",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 20,
+ "maximum": 50,
+ "minimum": 1
+ }
+ },
"ApiLimit100": {
"name": "limit",
"in": "query",
@@ -22834,6 +25223,10 @@
"name": "Forum",
"description": "Part of Forum section"
},
+ {
+ "name": "Property",
+ "description": "Part of Property section"
+ },
{
"name": "Key",
"description": "Part of Key section"