Queue skin generation
POST/v2/queue
Add a generation request to the queue.
Generating a single skin usually takes around 2 seconds, but can take longer depending API load and the number of generator jobs ahead of you in the queue.
Use multipart/form-data to upload image files or application/json for url and user requests.
Request
Header Parameters
Custom User-Agent for your application, see user-agent.dev for implementation examples. Alternatively you can also use the 'MineSkin-User-Agent' header.
API key from account.mineskin.org
- application/json
- multipart/form-data
Body
required
- UrlGenerateBody
- UserGenerateBody
oneOf
URL Generate Request Body
Possible values: [classic
, slim
, unknown
]
unknown
Possible values: <= 20 characters
Possible values: [public
, unlisted
, private
]
public
User Generate Request Body
Possible values: [classic
, slim
, unknown
]
unknown
Possible values: <= 20 characters
Possible values: [public
, unlisted
, private
]
public
Player UUID
Possible values: >= 32 characters
and <= 36 characters
Body
required
- UploadGenerateBody
- UrlGenerateBody
- UserGenerateBody
oneOf
File Upload Generate Request Body
Possible values: [classic
, slim
, unknown
]
unknown
Possible values: <= 20 characters
Possible values: [public
, unlisted
, private
]
public
PNG image file to upload. You should use a client library like MineSkin Java Client to properly handle file uploads. See github/examples
URL Generate Request Body
Possible values: [classic
, slim
, unknown
]
unknown
Possible values: <= 20 characters
Possible values: [public
, unlisted
, private
]
public
User Generate Request Body
Possible values: [classic
, slim
, unknown
]
unknown
Possible values: <= 20 characters
Possible values: [public
, unlisted
, private
]
public
Player UUID
Possible values: >= 32 characters
and <= 36 characters
Responses
- 200
- 202
- 400
- 429
- 500
Job Completed
- application/json
- Schema
- Example (from schema)
Schema
- unknown: The job status is unknown
- waiting: The job is waiting to be processed
- active: The job is currently being processed
- failed: The job has failed. The root 'errors' array may contain more details
- completed: The job has completed. The 'result' field will contain the job result
Array [
]
Array [
]
Array [
]
job
object
required
Job ID
Job status
Possible values: [unknown
, waiting
, active
, failed
, completed
]
If the job is finished, this will return the result of the job (e.g. the skin UUID)
skin
object
required
Possible values: [public
, unlisted
, private
]
public
Possible values: [classic
, slim
, unknown
]
unknown
texture
object
required
data
object
required
Skin Value
Skin Signature
hash
object
required
Skin Hash
(optional) Cape Hash
url
object
required
Skin Texture Url
(optional) Cape Texture Url
generator
object
required
rateLimit
object
next
object
required
Absolute timestamp (in milliseconds) after which the next request can be made
1726829503123
Relative delay (in milliseconds) after which the next request can be made
800
delay
object
required
Delay between requests (in milliseconds) - depends on the API key used for this request
1200
Delay between requests (in seconds) - depends on the API key used for this request
1.2
limit
object
Limit of requests in the current window (usually 1 minute). Same as the 'X-RateLimit-Limit' header
60
Remaining requests in the current window. Same as the 'X-RateLimit-Remaining' header
58
usage
object
credits
object
Credits used for this request
1
Remaining credits
23
metered
object
Number of metered units used for this request
1
true
errors
object[]
warnings
object[]
messages
object[]
links
object
Links to related resources
{
"job": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "unknown",
"result": "string"
},
"skin": {
"uuid": "c891dfac4cd247a2a55743e7e82ce76f",
"name": "Test Skin",
"visibility": "public",
"variant": "classic",
"views": 1,
"duplicate": false
},
"rateLimit": {
"next": {
"absolute": 1726829503123,
"relative": 800
},
"delay": {
"millis": 1200,
"seconds": 1.2
},
"limit": {
"limit": 60,
"remaining": 58
}
},
"usage": {
"credits": {
"used": 1,
"remaining": 23
},
"metered": {
"used": 1
}
},
"success": true,
"errors": [],
"warnings": [
{
"code": "string",
"message": "string"
}
],
"messages": [
{
"code": "ok",
"message": "All good!"
}
],
"links": {
"self": "string"
}
}
Job Processing
- application/json
- Schema
- Example (from schema)
Schema
- unknown: The job status is unknown
- waiting: The job is waiting to be processed
- active: The job is currently being processed
- failed: The job has failed. The root 'errors' array may contain more details
- completed: The job has completed. The 'result' field will contain the job result
Array [
]
Array [
]
Array [
]
job
object
required
Job ID
Job status
Possible values: [unknown
, waiting
, active
, failed
, completed
]
If the job is finished, this will return the result of the job (e.g. the skin UUID)
rateLimit
object
next
object
required
Absolute timestamp (in milliseconds) after which the next request can be made
1726829503123
Relative delay (in milliseconds) after which the next request can be made
800
delay
object
required
Delay between requests (in milliseconds) - depends on the API key used for this request
1200
Delay between requests (in seconds) - depends on the API key used for this request
1.2
limit
object
Limit of requests in the current window (usually 1 minute). Same as the 'X-RateLimit-Limit' header
60
Remaining requests in the current window. Same as the 'X-RateLimit-Remaining' header
58
usage
object
credits
object
Credits used for this request
1
Remaining credits
23
metered
object
Number of metered units used for this request
1
true
errors
object[]
warnings
object[]
messages
object[]
links
object
Links to related resources
{
"job": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "unknown",
"result": "string"
},
"rateLimit": {
"next": {
"absolute": 1726829503123,
"relative": 800
},
"delay": {
"millis": 1200,
"seconds": 1.2
},
"limit": {
"limit": 60,
"remaining": 58
}
},
"usage": {
"credits": {
"used": 1,
"remaining": 23
},
"metered": {
"used": 1
}
},
"success": true,
"errors": [],
"warnings": [
{
"code": "string",
"message": "string"
}
],
"messages": [
{
"code": "ok",
"message": "All good!"
}
],
"links": {
"self": "string"
}
}
Bad Request
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Array [
]
false
errors
object[]
warnings
object[]
messages
object[]
links
object
Links to related resources
rateLimit
object
next
object
required
Absolute timestamp (in milliseconds) after which the next request can be made
1726829503123
Relative delay (in milliseconds) after which the next request can be made
800
delay
object
required
Delay between requests (in milliseconds) - depends on the API key used for this request
1200
Delay between requests (in seconds) - depends on the API key used for this request
1.2
limit
object
Limit of requests in the current window (usually 1 minute). Same as the 'X-RateLimit-Limit' header
60
Remaining requests in the current window. Same as the 'X-RateLimit-Remaining' header
58
{
"success": false,
"errors": [
{
"code": "generic_error",
"message": "Something went wrong"
}
],
"warnings": [
{
"code": "string",
"message": "string"
}
],
"messages": [
{
"code": "string",
"message": "string"
}
],
"links": {
"self": "string"
},
"rateLimit": {
"next": {
"absolute": 1726829503123,
"relative": 800
},
"delay": {
"millis": 1200,
"seconds": 1.2
},
"limit": {
"limit": 60,
"remaining": 58
}
}
}
Rate Limited
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Array [
]
false
errors
object[]
warnings
object[]
messages
object[]
links
object
Links to related resources
rateLimit
object
next
object
required
Absolute timestamp (in milliseconds) after which the next request can be made
1726829503123
Relative delay (in milliseconds) after which the next request can be made
800
delay
object
required
Delay between requests (in milliseconds) - depends on the API key used for this request
1200
Delay between requests (in seconds) - depends on the API key used for this request
1.2
limit
object
Limit of requests in the current window (usually 1 minute). Same as the 'X-RateLimit-Limit' header
60
Remaining requests in the current window. Same as the 'X-RateLimit-Remaining' header
58
{
"success": false,
"errors": [
{
"code": "generic_error",
"message": "Something went wrong"
}
],
"warnings": [
{
"code": "string",
"message": "string"
}
],
"messages": [
{
"code": "string",
"message": "string"
}
],
"links": {
"self": "string"
},
"rateLimit": {
"next": {
"absolute": 1726829503123,
"relative": 800
},
"delay": {
"millis": 1200,
"seconds": 1.2
},
"limit": {
"limit": 60,
"remaining": 58
}
}
}
Generator Error
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Array [
]
false
errors
object[]
warnings
object[]
messages
object[]
links
object
Links to related resources
rateLimit
object
next
object
required
Absolute timestamp (in milliseconds) after which the next request can be made
1726829503123
Relative delay (in milliseconds) after which the next request can be made
800
delay
object
required
Delay between requests (in milliseconds) - depends on the API key used for this request
1200
Delay between requests (in seconds) - depends on the API key used for this request
1.2
limit
object
Limit of requests in the current window (usually 1 minute). Same as the 'X-RateLimit-Limit' header
60
Remaining requests in the current window. Same as the 'X-RateLimit-Remaining' header
58
{
"success": false,
"errors": [
{
"code": "generic_error",
"message": "Something went wrong"
}
],
"warnings": [
{
"code": "string",
"message": "string"
}
],
"messages": [
{
"code": "string",
"message": "string"
}
],
"links": {
"self": "string"
},
"rateLimit": {
"next": {
"absolute": 1726829503123,
"relative": 800
},
"delay": {
"millis": 1200,
"seconds": 1.2
},
"limit": {
"limit": 60,
"remaining": 58
}
}
}