The 'API' is a new tool made by Torn you can use to build your own applications / extensions for Torn. The info on this page is copied directly from the API's site (with info added from several people spread out over Torn ), so make sure to read it carefully before using the API.

To start using the API go here and then click on the 'try it' button. Then you can fill in your API key at the top, this can be found under the 'API key' section on this page. Then select for example the user section, fill in your id and a selection of your choice.

If you do not know the selections and they are not displayed on the 'try it' section, you can always go to http://api.torn.com/user/?selections=lookup&key=apikeyhere to see what the possible selections are.


Firstly what does API stand for? It stands for Application Programming Interface. A full definition can be found here, but what's more important is what it can do, and you can find in the details section of this page.

The goal of the Torn API is to provide a fully supported and read-only method for players to pull useful information from Torn about their player, faction, or company. This can be used individually to retrieve information about your account, or you can build a website that the entire community can use to do interesting things with the data exposed via the API.


Whether you're making a browser extension to aid factions during wartime, a mobile application to offer instant notifications, or a website to track data for graphing - the possibilities are endless - simply using the 16 character API keys. We encourage you to be creative, building features and tools that expand Torn's gameplay and enjoyment.

Acceptable usage

This system has been developed so that you only ever need to request an API key from the user. All of the user's information can be obtained with just their key, there shouldn't be any requirement to ask for a name or user ID. Torn passwords should never be requested from any users, ever.

You must keep keys, and the data obtained from them, securely protected and confidential unless permitted by the key owner. By accepting other user's keys, they are placing their trust in you - do not exploit this. We will permanently ban offending applications from accessing the API at a moment's notice.

We respectfully request that you follow Torn's no-advertising policy when building websites or applications that use our API system to ensure optimal user experience, however, exceptions can be made. Please contact us if you would like to advertise, accept voluntary real-money donations or charge users for usage.

Please make sure your scripts are optimised to retrieve only the information required for the specific request they're making. They should be retrieving as little information as possible; this will improve loading time and reduce stress on Torn's servers.

Unfair advantage

We understand that crafting an API system for Torn could give some users an unfair advantage. We want the system to expand & enhance gameplay rather than giving users an advantage which makes it easier to compete against others. We have taken this into account during development, but we will be listening to feedback and making any appropriate changes that are required.


Please be aware, we log all details and inputs of requests and make routine checks. If misuse occurs, we will permanently ban IP addresses, keys, and users from accessing the system without notice.

Automatic limits & blocks

Each user key can make up to 100 individual requests per minute, this should be more than enough for almost anything to be achievable. Multiple requests using invalid keys may result in a temporary IP ban - you must account for this by removing disabled or invalid keys upon error.

These limits may change without notice to ensure the Torn servers remain stable.

Access Levels

Users can create different keys for use in different scripts or tools. Users can hold 10 keys with different levels of access to their player data and each key can be separately deleted whenever the user wants it. Each access level has restrictions on data that can be fetched by the script using the key.

There are 4 access levels for each key, namely "Public Only", "Minimal Access", "Limited Access", "Full Access" and the information which can be accessed by the key can be found in the API Documentation.

Error codes

0 => Unknown error : Unhandled error, should not occur.

1 => Key is empty : Private key is empty in current request.

2 => Incorrect Key : Private key is wrong/incorrect format.

3 => Wrong type : Requesting an incorrect basic type.

4 => Wrong fields : Requesting incorrect selection fields.

5 => Too many requests : Current private key is banned for a small period of time because of too many requests (max 100 per minute).

6 => Incorrect ID : Wrong ID value.

7 => Incorrect ID-entity relation : A requested selection is private (For example, personal data of another user / faction).

8 => IP block : Current IP is banned for a small period of time because of abuse.

9 => API disabled : API system is currently disabled.

10 => Key owner is in federal jail : Current key can't be used because owner is in federal jail.

11 => Key change error : You can only change your API key once every 60 seconds.

12 => Key read error : Error reading key from Database.

13 => The key is temporarily disabled due to owner inactivity : An inactive player's key may not make API calls after 7 days.

14 => Daily read limit reached : Too many records have been pulled today by this user from our cloud services.

15 => Temporary error : An error code specifically for testing purposes that has no dedicated meaning.

16 => Access level of this key is not high enough : A selection is being called of which this key does not have permission to access.


Here there'll be short examples of code in several languages to see how you can use it.

  • JavaScript:
fetch("https://api.torn.com/user/?selections=skills&key=APIKEY") // Fetches data from API
.then((response) => response.json()) // Converts the fetched data into JSON
.then((jsonResponse) => console.log(jsonResponse)); // Prints the JSON

  • Python:
import requests

r = requests.get("apiurl") # queries "apiurl" and returns response from Torn

data = r.json()            # translates that response into a dict variable

print(data)                # prints that variable

  • PHP:
    $jsonurl = "http://api.torn.com/user/[MyID]?selections=networth&key=[MyKey]";
    $json = file_get_contents($jsonurl); //gets output of API
    $decodedString = json_decode($json, true); //parses API JSON output
    $nwtotal = $decodedString["networth"]; //Pulls networth out of JSON array
    echo "Stock Market: ".$nwtotal["stockmarket"]."</br>"; // Spits out networth from stocks
    echo "Networth Total: ".$nwtotal["total"]."</br>"; // Spits out total networth

Safe to use applications

Here there'll be a list of well known safe to use applications that require your API: