@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api MineSkin API
@base https://api.mineskin.org
@version 1.0.0
@auth Bearer bearer
@common_fields {User-Agent: str}
@endpoints 9
@toc generate(3), get(4), validate(2)

@group generate
@endpoint POST /generate/url
@optional {Authorization: str}
@returns(200)
@errors {400, 429, 500}

@endpoint POST /generate/upload
@optional {Authorization: str}
@returns(200)
@errors {400, 429, 500}

@endpoint POST /generate/user
@optional {Authorization: str}
@returns(200)
@errors {400, 429, 500}

@endgroup

@group get
@endpoint GET /get/delay
@optional {Authorization: str}
@returns(200) {millis: int, seconds: int, nextRequest: map{time: int, relative: int}, lastRequest: map{time: int}}

@endpoint GET /get/id/{id}
@required {id: num(integer)}
@returns(200) {id: int, idStr: str, uuid: str, name: str, model: str, variant: str, data: map{uuid: str, texture: map{value: str, signature: str, url: str}}, timestamp: num, duration: num, accountId: int, account: int, server: str, private: bool, views: num}

@endpoint GET /get/uuid/{uuid}
@required {uuid: str(uuid)}
@optional {Authorization: str}
@returns(200) {id: int, idStr: str, uuid: str, name: str, model: str, variant: str, data: map{uuid: str, texture: map{value: str, signature: str, url: str}}, timestamp: num, duration: num, accountId: int, account: int, server: str, private: bool, views: num}

@endpoint GET /get/list/{page}
@required {page: num(integer)}
@returns(200) {skins: [map], page: map{index: int, amount: int, total: int}, filter: str}

@endgroup

@group validate
@endpoint GET /validate/name/{name}
@required {name: str}
@returns(200) {valid: bool, uuid: str, name: str}

@endpoint GET /validate/uuid/{uuid}
@required {uuid: str}
@returns(200) {valid: bool, uuid: str, name: str}

@endgroup

@end
