Skip to content
GAMPEONCreate
New project

Create an account after a sign-in with a provider

POST
/v1/auth/signup
curl --request POST \
--url https://api.gampeon.com/v1/auth/signup \
--header 'Content-Type: application/json' \
--data '{ "ticket": "example", "email": "hello@example.com", "displayName": "example", "handle": "example", "birthMonth": "example", "acceptTerms": "example" }'

Creates an account connected to the provider account from the ticket. Same rules as POST /v1/accounts (minimum age 13, accepting the current terms, email confirmation), but without a password. A password can be set later with “Forgot password”. When email confirmation is off, the answer also contains a session.

Rate limit: 5 per hour per IP (shared with POST /v1/accounts).

Media typeapplication/json
object
ticket
required

ticket from POST /v1/auth/{provider}/callback

string
/^[A-Za-z0-9_-]{43}$/
email
required
string format: email
<= 254 characters
displayName
required

3 to 32 letters, digits, spaces, _ or -

string
>= 3 characters <= 32 characters
handle

Optional wished handle

string
/^$|^[a-z0-9_]{3,24}$/
birthMonth
required

Birth month as YYYY-MM. Minimum age 13.

string
/^\d{4}-(0[1-9]|1[0-2])$/
acceptTerms
required

Current version from GET /v1/legal/terms. Sending it means the person accepts the Terms of Use and the Community Guidelines in that version.

string
<= 40 characters

Example generated

{
"ticket": "example",
"email": "hello@example.com",
"displayName": "example",
"handle": "example",
"birthMonth": "example",
"acceptTerms": "example"
}

Account created

Media typeapplication/json
object
id
required
integer
email
required
string
displayName
required
string
handle
required
string
verificationRequired
required

An email with a confirmation link was sent

boolean
token

Only when no confirmation is needed

string
expiresAt

Unix time in milliseconds

integer format: int64

Example generated

{
"id": 1,
"email": "example",
"displayName": "example",
"handle": "example",
"verificationRequired": true,
"token": "example",
"expiresAt": 1
}

Error codes: invalid_field, invalid_ticket

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: signup_closed, too_young

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: email_taken, handle_taken, identity_taken

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: terms_required

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Limit: 5 per hour per IP (shared with POST /v1/accounts). Error codes: rate_limited

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Report a problem with this pageOther ways to give feedback