In other languages:

Web authentication API: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
mNo edit summary
(Update to api_version 4)
Line 11: Line 11:
| username
| username
| Required.
| Required.
| Account username.
| Account username or e-mail.
|-
|-
| password
| password
Line 18: Line 18:
|-  
|-  
| api_version
| api_version
| Not required.
| (Technically) not required. API responses will be different than described on this page when not set to 4.
| Currently 2.
| Currently 4.
|-
|-
| require_game_ownership
| require_game_ownership
| Not required.
| Not required.
| If set to 'true', will fail authentication if the user account hasn't actually purchased Factorio.
| If set to 'true', will fail authentication if the user account hasn't actually purchased Factorio.
|-
| email_authentication_code
| Not required.
| If a previous login failed with <code>email-authentication-required</code>, email authentication can be completed by including the code sent to the user via mail.
|}
|}


This endpoint always returns JSON encoded data. If authentication was successful, it will return an HTTP status code of 200 with a JSON list containing a single item: the auth token. The auth token seems to always be a hexadecimal encoded 15-byte string of random bytes.
This endpoint always returns JSON encoded data. If authentication was successful, it will return an HTTP status code of 200 with a JSON object:
 
{| class="wikitable"
| token
| Auth token is a hexadecimal encoded byte string
|-
| username
| The username of the logged in user.  
 
|}
 
On non-200 status codes, the response can be JSON encoded and provide more details about the problem:
 
{| class="wikitable"
| error
| Error codes like <code>login-failed</code> or <code>email-authentication-required</code>
|-
| message
| A more detailed error message that can be shown to the user
 
|}


TODO: exceptions and stuffs.
Clients causing a lot of errors like <code>login-failed</code> will be rate limited.


[[Category:Technical]]
[[Category:Technical]]

Revision as of 16:55, 7 March 2022

Category: Internal API

Factorio's Web Authentication API endpoint gives you a token in exchange for your username and password, which is used by several other Factorio web API endpoints. The authentication endpoint is located at:

https://auth.factorio.com/api-login

Authentication requires sending an HTTP POST request with these parameters:

username Required. Account username or e-mail.
password Required. Account password.
api_version (Technically) not required. API responses will be different than described on this page when not set to 4. Currently 4.
require_game_ownership Not required. If set to 'true', will fail authentication if the user account hasn't actually purchased Factorio.
email_authentication_code Not required. If a previous login failed with email-authentication-required, email authentication can be completed by including the code sent to the user via mail.

This endpoint always returns JSON encoded data. If authentication was successful, it will return an HTTP status code of 200 with a JSON object:

token Auth token is a hexadecimal encoded byte string
username The username of the logged in user.

On non-200 status codes, the response can be JSON encoded and provide more details about the problem:

error Error codes like login-failed or email-authentication-required
message A more detailed error message that can be shown to the user

Clients causing a lot of errors like login-failed will be rate limited.