Record listing

GET /records/

Pagination:
This endpoint supports pagination and filtering via query parameters. Please see the documentation on pagination for information on the additional request and response fields headers.

Allows to retrieve a list of records.

If you do not have LIST_HELPER or higher permissions, or don't send an access token along, you will only receive APPROVED records, and have the submitter field always set to null.

Filtering:

The result can be filtered by any of the following fields: id, progress, status, player, demon.

Pagination is done via the id field.

Request:

Header Expected Value Optional
Authorization Pointercrate access token true

Response: 200 OK

Header Value
Content-Type application/json
Field Type Description
- List[Record] A list of records

Example request:

GET /api/v1/records/
     Accept: application/json

Submitting Records

POST /records/

Rate Limits:
This endpoint is ratelimited at 5 requests per 10 minutes, unless you have at least LIST_HELPER permissions, or set the check field to true.

Submits a record to the list mods for approval. The record must meet the demons requirement and the holder in question needn't be banned.

The video value, if provided, must meet the requirements specified here.

Request:

Header Expected Value Optional
Content-Type application/json or multipart/form-data false
Field Type Description Optional
progress integer The records progress false
player string The name of the player holding the record false
demon string The name of the demon the record is made on false
video URL The video of the record true
check boolean Value indication whether the record to be submitted should only be validated, but not actually submitted. Checking records does not count towards the rate limit true

Response: 201 CREATED

Header Value
Content-Type application/json
Location The location of the newly created record
ETag base64 encoded hash of the newly created record
Field Type Description
data Record The newly created record object

Response: 204 NO RESPONSE

When check is set to true, and the record passed all internal validation, meaning it can be submitted.

Errors:

Status code Error code Description
403 40304 You have been banned from submitting records
404 40401 The provided demon does not exist
422 42218 The record holder is banned
422 42219 The demon is on the legacy list
422 42215 The record does not meat the demons requirement
422 42220 The demon is on the extended list but the record's progress isn't 100
422 42217 The record has already been approved/rejected/submitted/approved

Example request:

POST /api/v1/records/
     Accept: application/json
     Content-Type: application/json
     
     {
         "progress": 79,
         "player": "stadust",
         "demon": "Bloodlust"
     }

Record retrieval

GET /records/ record_id /

Acces Restrictions:
Access to this endpoint requires at least EXTENDED_ACCESS permissions.

Retrieves detailed information about the record with id record_id

Request:

Header Expected Value Optional
Authorization Pointercrate access token false
If-Match Conditional request header. If the etag value of the requested data matches any of the here provided values, the data is returned as requested. Otherwise a 412 PRECONDITION FAILED response is generated true
If-None-Match Conditional request header. If the etag value of the requested data does not match any of the here provided values, if it returned as requested. Otherwise, a 304 NOT MODIFED response is generated true

Response: 200 OK

Header Value
Content-Type application/json
ETag base64 encoded hash of the record object
Field Type Description
data Record The requested record object

Response: 304 NOT MODIFIED

Returned if the If-None-Match header is set, and the etag for the record object matches one of the set values.

Header Value
ETag base64 encoded hash of the record object

Errors:

Status code Error code Description
404 40401 No record with id record_id was found

Example request:

GET /records/2/
     Accept: application/json
     Authorization: Bearer <omitted>

Modifying a record

PATCH /records/ record_id /

Access Restrictions:
Access to this endpoint requires at least LIST_HELPER permissions.

Modifies a given record.

Request:

Header Expected Value Optional
Content-Type application/merge-patch+json false
Authorization Pointercrate access token false
If-Match Conditional request header. Needs to be set to the current etag value of the record object false
Field Type Description Optional
progress integer Set to update the progress true
video URL Set to update the video. Can be null true
status RecordStatus Set to update the record's status true
player string Set to update the record holder. Needs to be the name of the player true
demon string Set to update the demon the record was made on. Needs to be the name of the demon true

Response: 200 OK

Header Value
Content-Type application/json
ETag base64 encoded hash of the updated record
Field Type Description
data Record The updated record object

Response: 304 NOT MODIFIED

Returned when the PATCH operation did not make any changes.

Header Value
ETag base64 encoded hash of the record

Errors:

Status code Error code Description
400 40003 Invalid data type for requested field
403 40302 The requested field cannot be updated via this endpoint
404 40401 No record with id record_id was found
404 40401 The updated value for demon does not exist
412 41200 The value provided in the If-Match header doesn't match the current state of the object
418 41800 No If-Match header was provided
422 42215 The updated progress value does not meat the demons requirement
422 42216 The update status value is not a valid member of the RecordStatus enum
422 42221 The record holder is banned and you tried to set the record status to APPROVED

Example request:

PATCH /api/v1/records/2/
     Accept: application/json
     Authorization: Bearer <omitted>
     Content-Type: application/merge-patch+json
     If-Match: VV4v4HlCVToXCSqxdpaV3IQGRLw=
     
     {
         "status": "approved"
     }

Deleting a record

DELETE /records/ record_id /

Access Restrictions:
Access to this endpoint requires at least LIST_ADMIN permissions.

Deletes the record with the given ID. This action is irrevesible. Note that if you simply wans to reject a submission, you should use PATCH /records/record_id/ and change its status to REJECTED to ensure it isn't submitted again.

Request:

Header Expected Value Optional
Authorization Pointercrate access token false
If-Match Conditional request header. Needs to be set to the current etag value of the record object false

Response: 204 NO CONTENT

Nothing

Errors:

Status code Error code Description
404 40401 No record with id record_id was found
412 41200 The value provided in the If-Match header doesn't match the current state of the object
418 41800 No If-Match header was provided

Example request:

DELETE /records/1/
     Accept: application/json
     Authorization: Bearer <omitted>
     If-Match: FmdyN2c4jElWBIOVzGOuFKJhgrE=