Create an account
const url = 'https://api.gampeon.com/v1/accounts';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"hello@example.com","displayName":"example","handle":"example","password":"example","birthMonth":"example","acceptTerms":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.gampeon.com/v1/accounts \ --header 'Content-Type: application/json' \ --data '{ "email": "hello@example.com", "displayName": "example", "handle": "example", "password": "example", "birthMonth": "example", "acceptTerms": "example" }'Creates an account. Without a wished handle, one is derived from the display name. When email is active, the account must confirm its address before the first login.
The minimum age is 13. Under 16, stricter privacy defaults apply (see GET /v1/me/social-settings). The birth month is only visible to the account itself.
acceptTerms must be the current version from GET /v1/legal/terms: the person has to agree to the Terms of Use and the Community Guidelines (links in that answer). The Privacy Policy is information, not consent.
Rate limit: 5 per hour per IP.
Request Bodyrequired
Section titled “Request Bodyrequired”object
3 to 32 letters, digits, spaces, _ or -
Optional wished handle
Password, 10 to 200 characters
Birth month as YYYY-MM. Minimum age 13. Self-declared, only visible to the account itself.
Current version from GET /v1/legal/terms. Sending it means the person accepts the Terms of Use and the Community Guidelines in that version.
Example generated
{ "email": "hello@example.com", "displayName": "example", "handle": "example", "password": "example", "birthMonth": "example", "acceptTerms": "example"}Responses
Section titled “Responses”Account created
object
An email with a confirmation link was sent
Example generated
{ "id": 1, "email": "example", "displayName": "example", "handle": "example", "verificationRequired": true}Error codes: invalid_field
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: signup_closed, too_young
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: email_taken, handle_taken
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: terms_required
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Limit: 5 per hour per IP. Error codes: rate_limited
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}