# API All API endpoints are accessible with this base URL: `https://api.nerdcult.net/`. Some API endpoints require an Authorization HTTP header. The token for this can be aquired using the `/account/authenticate` endpoint. ## Endpoints ### `/account/register` - POST Requests a new nerdcult account. This sends a verification E-Mail which contains a link to the veriication frontend with an verification token as url parameter. This verification link will time out after 10 minutes. #### HTTP Headers | Header | Content | |--------------|--------------------| | Content-Type | `application/json` | #### Content - JSON | Field | Description | |----------|----------------------------------------| | username | The accounts username / userid. | | password | The password used for authentication. | | email | The email address used for validation. | #### Responses ##### 200 - Success The verification request was sent. ##### 400 - Error: Bad Request The request was malformed. ##### 403 - Error: Forbidden Blocked for security reasons. ##### 409 - Error: Conflict The requested username or email is already taken. __Content - JSON:__ | Field | Description | |----------|----------------------------------------------------------------------| | conflict | Can be `username` or `email`, depending on what caused the conflict. | ##### 422 - Error: Unprocessable Entity Malformed email address. ### `/account/verify` - POST Verifies a requested account. #### HTTP Headers | Header | Content | |--------------|--------------------| | Content-Type | `application/json` | #### Content - JSON | Field | Description | |-------|--------------------------------------------------------------------------------| | token | The verification token you received via an email after requesting the account. | #### Responses ##### 200 - Success The account was verified. You can login now. ##### 400 - Error: Bad Request The request was malformed. ##### 403 - Error: Forbidden Blocked for security reasons. ##### 404 - Error: Forbidden The provided token is unknown. ### `/account/authenticate` - POST Generates an authentication token for an account. #### HTTP Headers | Header | Content | |--------------|--------------------| | Content-Type | `application/json` | #### Content - JSON | Field | Description | |----------|---------------------------------| | username | The accounts username / userid. | | password | The accounts password. | #### Responses ##### 200 - Success The authentication was successfull. __Content - JSON:__ | Field | Description | |-------|------------------------| | token | A unique access token. | ##### 400 - Error: Bad Request The request was malformed. ##### 401 - Error: Unauthorized The provided password was wrong. ##### 403 - Error: Forbidden Blocked for security reasons. ##### 404 - Error: Not Found The provided username was not found. ##### 424 - Error: Failed Dependency The account isn't verified yet. ### `/account/delete` - DELETE Deletes the account. #### HTTP Headers | Header | Content | |---------------|--------------------| | Authorization | `Bearer {token}` | #### Responses ##### 200 - Success The account was deleted. ##### 401 - Error: Unauthorized The provided auth token doesn't allow you to perform this operation. ##### 403 - Error: Forbidden Blocked for security reasons. ### `/account/tokens` - DELETE Deletes a token of the authenticated account. #### HTTP Headers | Header | Content | |---------------|--------------------| | Authorization | `Bearer {token}` | | Content-Type | `application/json` | #### Content - JSON | Field | Description | |-------|-----------------------------------| | token | The token that should be deleted. | #### Responses ##### 200 - Success The token was deleted. ##### 401 - Error: Unauthorized The provided auth token doesn't allow you to perform this operation. ##### 403 - Error: Forbidden Blocked for security reasons. ##### 404 - Error: Not Found The token that should be deleted wasn't found. ### `/account/tokens` - GET Lists all active auth tokens for the account. #### HTTP Headers | Header | Content | |---------------|--------------------| | Authorization | `Bearer {token}` | #### Responses ##### 200 - Success __Content - JSON:__ | Field | Description | |--------|-------------------------------------------------------------------------------------------------| | tokens | A list of (token, expiration date) pairs. The expiration date is given as a UTC UNIX timestamp. | ##### 401 - Error: Unauthorized The provided auth token doesn't allow you to perform this operation. ##### 403 - Error: Forbidden Blocked for security reasons.