diff --git a/torn-api/openapi.json b/torn-api/openapi.json
index c2c9a3d..d1535bd 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": "2.0.2"
+ "version": "3.0.3"
},
"servers": [
{
@@ -975,6 +975,77 @@
"x-stability": "Stable"
}
},
+ "/user/log": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get your logs",
+ "description": "Requires limited access key.
It's possible to pass a list of log ids or a log category id.
",
+ "operationId": "f354f40bc5d6cbadf57fdecb453c976f",
+ "parameters": [
+ {
+ "name": "log",
+ "in": "query",
+ "description": "Log ids, comma separated, e.g. 105,4900,4905",
+ "required": false,
+ "style": "form",
+ "explode": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogId"
+ }
+ }
+ },
+ {
+ "name": "cat",
+ "in": "query",
+ "description": "Log category id",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/LogCategoryId"
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyFull"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserLogsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
"/user/organizedcrime": {
"get": {
"tags": [
@@ -5932,7 +6003,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/UserPropertyResponse"
+ "$ref": "#/components/schemas/PropertyPropertyResponse"
}
}
}
@@ -11585,6 +11656,17 @@
"rank"
]
},
+ "TornOrganizedCrimePositionId": {
+ "type": "string",
+ "enum": [
+ "P1",
+ "P2",
+ "P3",
+ "P4",
+ "P5",
+ "P6"
+ ]
+ },
"FactionTerritoryWarResultEnum": {
"type": "string",
"enum": [
@@ -11957,6 +12039,9 @@
"type": "integer",
"format": "int32"
},
+ "UserLogId": {
+ "type": "string"
+ },
"LogCategoryId": {
"type": "integer",
"format": "int32"
@@ -13412,6 +13497,70 @@
}
]
},
+ "UserLog": {
+ "required": [
+ "id",
+ "timestamp",
+ "details",
+ "data",
+ "params"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/UserLogId"
+ },
+ "timestamp": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "details": {
+ "required": [
+ "id",
+ "title",
+ "category"
+ ],
+ "properties": {
+ "id": {
+ "$ref": "#/components/schemas/LogId"
+ },
+ "title": {
+ "type": "string"
+ },
+ "category": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "data": {
+ "description": "Dynamic key-value pairs related to the log.",
+ "type": "object"
+ },
+ "params": {
+ "description": "Dynamic key-value pairs related to the log.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "UserLogsResponse": {
+ "required": [
+ "log",
+ "_metadata"
+ ],
+ "properties": {
+ "log": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserLog"
+ }
+ },
+ "_metadata": {
+ "$ref": "#/components/schemas/RequestMetadataWithLinks"
+ }
+ },
+ "type": "object"
+ },
"BasicUser": {
"required": [
"id",
@@ -13530,6 +13679,38 @@
}
]
},
+ "UserPropertyDetailsExtendedWithRent": {
+ "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"
+ ]
+ },
+ "rented_by": {
+ "$ref": "#/components/schemas/BasicUser"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
"UserPropertyDetails": {
"allOf": [
{
@@ -13559,6 +13740,7 @@
{
"required": [
"status",
+ "rented_by",
"used_by",
"cost",
"cost_per_day",
@@ -13593,6 +13775,9 @@
"rental_period_remaining": {
"type": "integer",
"format": "int32"
+ },
+ "rented_by": {
+ "$ref": "#/components/schemas/BasicUser"
}
},
"type": "object"
@@ -13723,6 +13908,17 @@
},
"type": "object"
},
+ "PropertyPropertyResponse": {
+ "required": [
+ "property"
+ ],
+ "properties": {
+ "property": {
+ "$ref": "#/components/schemas/UserPropertyDetailsExtendedWithRent"
+ }
+ },
+ "type": "object"
+ },
"UserCurrentEducation": {
"required": [
"id",
@@ -20724,6 +20920,8 @@
"FactionCrimeSlot": {
"required": [
"position",
+ "position_id",
+ "position_number",
"item_requirement",
"user",
"checkpoint_pass_rate"
@@ -20732,6 +20930,13 @@
"position": {
"type": "string"
},
+ "position_id": {
+ "$ref": "#/components/schemas/TornOrganizedCrimePositionId"
+ },
+ "position_number": {
+ "type": "integer",
+ "format": "int32"
+ },
"item_requirement": {
"description": "Details of item required for the slot, if applicable.",
"oneOf": [
@@ -21888,6 +22093,24 @@
},
"type": "object"
},
+ "KeyInfoAvailableLog": {
+ "required": [
+ "category_id",
+ "log_ids"
+ ],
+ "properties": {
+ "category_id": {
+ "$ref": "#/components/schemas/LogCategoryId"
+ },
+ "log_ids": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogId"
+ }
+ }
+ },
+ "type": "object"
+ },
"KeyInfoResponse": {
"required": [
"info"
@@ -21896,7 +22119,8 @@
"info": {
"required": [
"selections",
- "access"
+ "access",
+ "user"
],
"properties": {
"selections": {
@@ -21969,12 +22193,48 @@
},
"type": "object"
},
+ "user": {
+ "required": [
+ "id",
+ "faction_id",
+ "company_id"
+ ],
+ "properties": {
+ "faction_id": {
+ "description": "Null only if the user is not in a faction.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "company_id": {
+ "description": "Null only if the user is not in a company.",
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CompanyId"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "$ref": "#/components/schemas/UserId"
+ }
+ },
+ "type": "object"
+ },
"access": {
"required": [
"level",
"type",
"faction",
- "company"
+ "company",
+ "log"
],
"properties": {
"level": {
@@ -21988,6 +22248,8 @@
"type": "boolean"
},
"faction_id": {
+ "description": "This field is replaced with 'user'.'faction_id' field and will be removed on 1st of September 2025. Populated only if 'faction' field is true.",
+ "deprecated": true,
"oneOf": [
{
"$ref": "#/components/schemas/FactionId"
@@ -22001,6 +22263,8 @@
"type": "boolean"
},
"company_id": {
+ "description": "This field is replaced with 'user'.'company_id' field and will be removed on 1st of September 2025. Populated only if 'company' field is true.",
+ "deprecated": true,
"oneOf": [
{
"$ref": "#/components/schemas/CompanyId"
@@ -22009,6 +22273,25 @@
"type": "null"
}
]
+ },
+ "log": {
+ "required": [
+ "custom_permissions",
+ "available"
+ ],
+ "properties": {
+ "custom_permissions": {
+ "description": "Shows if key has custom log permissions enabled.",
+ "type": "boolean"
+ },
+ "available": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/KeyInfoAvailableLog"
+ }
+ }
+ },
+ "type": "object"
}
},
"type": "object"
@@ -23476,7 +23759,7 @@
],
"properties": {
"id": {
- "type": "string"
+ "$ref": "#/components/schemas/TornOrganizedCrimePositionId"
},
"name": {
"type": "string"
@@ -23982,7 +24265,7 @@
},
"type": "object"
},
- "TornHof": {
+ "TornHofBasic": {
"required": [
"id",
"username",
@@ -24056,6 +24339,35 @@
},
"type": "object"
},
+ "TornHofWithOffenses": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/TornHofBasic"
+ },
+ {
+ "required": [
+ "criminal_offenses"
+ ],
+ "properties": {
+ "criminal_offenses": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "TornHof": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/TornHofBasic"
+ },
+ {
+ "$ref": "#/components/schemas/TornHofWithOffenses"
+ }
+ ]
+ },
"TornHofResponse": {
"required": [
"hof",
@@ -25089,6 +25401,15 @@
"type": "string"
}
},
+ "ApiKeyFull": {
+ "name": "key",
+ "in": "query",
+ "description": "API key (Full).
It's not required to use this parameter when passing the API key via the Authorization header.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
"ApiTimestamp": {
"name": "timestamp",
"in": "query",