Complete social login REST API
POST
/api/auth/social/complete
const url = 'http://127.0.0.1:25737/api/auth/social/complete';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"completion_token":"example","email":"hello@example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://127.0.0.1:25737/api/auth/social/complete \ --header 'Content-Type: application/json' \ --data '{ "completion_token": "example", "email": "hello@example.com" }'Consumes a short-lived completion token once, resolves or safely links the immutable identity, accepts a bound invitation when applicable, and returns the standard login or MFA-required shape. Microsoft first links require HitKeep email confirmation unless an authenticated session or valid invitation proves the account.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
completion_token
required
string
email
HitKeep target email required for a first unauthenticated Microsoft link.
string format: email
Examplegenerated
{ "completion_token": "example", "email": "hello@example.com"}Responses
Section titled “Responses”Social login result
Media typeapplication/json
object
challenge_token
string
factors
Array<string>
passkey
object
key
additional properties
any
status
required
string
completion_token
Replacement one-time token returned only when signup details are required.
string
redirect_url
string
status
required
string
Example
{ "factors": [ "totp" ], "status": "ok"}Invalid flow or target email
Media typeapplication/json
object
message
string
Examplegenerated
{ "message": "example"}Account unavailable
Media typeapplication/json
object
message
string
Examplegenerated
{ "message": "example"}Completion replay or identity conflict
Media typeapplication/json
object
message
string
Examplegenerated
{ "message": "example"}