Web authentication API: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Removed {{Languages}})
No edit summary
Line 5: Line 5:
<code>https://auth.factorio.com/api-login</code>
<code>https://auth.factorio.com/api-login</code>


Authentication requires sending an HTTP POST request with these parameters:
Authentication requires sending an HTTP POST request (Content-Type: <code>application/x-www-form-urlencoded</code>) with these parameters:


{| class="wikitable"
{| class="wikitable"

Revision as of 11:10, 26 August 2024

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 (Content-Type: application/x-www-form-urlencoded) 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.