Factoriodex API
Factoriodex is an API that provides data and information about the game Factorio, by Wube Software LTD. It offers access to data about items, research, and enemies.
Factoriodex offers a fully documented public API for developers to use in their own apps or websites.
📌Important Usage Notes
The API is completely free and while not required, it is always appreciated if you mention somewhere that your app or site is making use of the Factoriodex API.
🔑Authorization & Rate Limiting
One of the most frequent inquiries concerns the need for API Keys. The API is completely public and does not require any authorization or API Key. You can start using it immediately!
To maintain server performance, Factoriodex enforces rate limits on API calls. Exceeding these limits results in a temporary block with a 429 HTTP status code, automatically lifted after a set period. All users face the same limits.
The API fully supports CORS, allowing requests directly from users' browsers or apps. This approach minimizes the likelihood of encountering rate limiting problems.
🙋♂️Help & Support
If you encounter any issues, need assistance with your implementation, or simply want to share how you're using the API, don't hesitate to reach out.
You can contact me, Eric, through the contact channels at ericlighthall.com. I'm always eager to help!
📢Updates
The API may receive updates in the future; however, these are not guaranteed. Keep an eye on the website for any changes that might enhance functionality or extend the range of features.
Enemies
GET /api/enemies
Get a paged list of all enemies matching any number of criteria, all of the following filtering parameters are optional
Parameter | Description |
---|---|
type | (optional, string) Only returns enemeies of the specified type. |
name | (optional, string) Returns enemies containing 'name'. |
minDamage | (optional, number) Returns enemies with a damage value greater than this amount. Min: 7 |
maxDamage | (optional, number) Returns enemies with a damage value less than this amount. Max: 96 |
minSpeed | (optional, number) Returns enemies with a speed value greater than this amount. Min: 32.4 |
maxSpeed | (optional, number) Returns enemies with a speed value less than this amount. Max: 64.8 |
minRange | (optional, number) Returns enemies with an attack range value greater than this amount. Min: 1 |
maxRange | (optional, number) Returns enemies with an attack range value less than this amount. Max: 48 |
Example Request
// Javascript
fetch('/api/enemies?type=biter&name=big?minRange=20')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Sample Response
[
{
"name": "Big Worm",
"description": "Big worms are not as much more dangerous as resilient. They are almost immune to common gunfire of any sort.",
"attributes": {
"health": 750,
"range": 38,
"attack_speed": 0.66,
"area_of_effect_size": 1.75,
"damage": {
"type": "Acid",
"amount": 72
},
"acid_puddle": {
"lifetime": 32,
"damage_per_second": 259,
"effect": {
"movement_vehicle_speed_modifier": 40,
"duration": 2
}
}
},
"resistances": {
"explosion": {
"damage_reduction": 10,
"resistance_percentage": 30
},
"fire": {
"damage_reduction": 3,
"resistance_percentage": 70
},
"physical": {
"damage_reduction": 10,
"resistance_percentage": 0
}
}
}
]
Items
GET /api/items
Returns a list of game items with the specified parameters.
Parameter | Description |
---|---|
name | (optional, string) The name of the item to search for. |
category | (optional, string) The category of the item to filter by. |
dimensions | (optional, string) The dimensions of the item (e.g., 1x1, 2x2). |
maxCraftingTime | (optional, number) Only returns items with a crafting time less than this value |
Example Request
// Javascript
fetch('/api/items?name=armor&type=combat')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Sample Response
[
{
"name": "Light armor",
"type": "item",
"category": "combat"
},
{
"name": "Heavy armor",
"type": "item",
"category": "combat"
},
{
"name": "Modular armor",
"type": "item",
"category": "combat"
},
{
"name": "Power armor",
"type": "item",
"category": "combat"
},
{
"name": "Power armor MK2",
"type": "item",
"category": "combat"
}
]
Research
GET /api/research
Parameter | Description |
---|---|
name | (optional, string) The name of the research item to search for. |
sciencePacks | (optional, string) The science pack types required for the research, separated by commas. |
Example Request
// Javascript
fetch('/api/research?name=automation')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Sample Response
[
{
"name": "Automation",
"cost": {
"Automation science pack": 10
},
"effects": [
"Assembling machine 1",
"Long-handed inserter"
]
},
{
"name": "Automation 2",
"cost": {
"Automation science pack": 40,
"Logistic science pack": 40
},
"effects": [
"Assembling machine 2"
]
},
{
"name": "Automation 3",
"cost": {
"Automation science pack": 150,
"Logistic science pack": 150,
"Military science pack": 150,
"Production science pack": 150
},
"effects": [
"Assembling machine 3"
]
}
]