Start a material-pack generation operation
Start a material-pack generation operation.
curl --request POST \
--url https://api.mint.gg/v1/material-packs:generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"items": [
{
"label": "<string>",
"prompt": "<string>"
}
],
"name": "<string>",
"generationPreset": "standard",
"imageUrl": "<string>",
"mode": "generate",
"itemCount": 13,
"styleGuide": "<string>"
}
'import requests
url = "https://api.mint.gg/v1/material-packs:generate"
payload = {
"prompt": "<string>",
"items": [
{
"label": "<string>",
"prompt": "<string>"
}
],
"name": "<string>",
"generationPreset": "standard",
"imageUrl": "<string>",
"mode": "generate",
"itemCount": 13,
"styleGuide": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
items: [{label: '<string>', prompt: '<string>'}],
name: '<string>',
generationPreset: 'standard',
imageUrl: '<string>',
mode: 'generate',
itemCount: 13,
styleGuide: '<string>'
})
};
fetch('https://api.mint.gg/v1/material-packs:generate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mint.gg/v1/material-packs:generate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'items' => [
[
'label' => '<string>',
'prompt' => '<string>'
]
],
'name' => '<string>',
'generationPreset' => 'standard',
'imageUrl' => '<string>',
'mode' => 'generate',
'itemCount' => 13,
'styleGuide' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mint.gg/v1/material-packs:generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mint.gg/v1/material-packs:generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mint.gg/v1/material-packs:generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "material_pack_generation",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "material_pack",
"id": "material_pack_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "material_pack_generation",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "material_pack",
"id": "material_pack_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}Authorizations
Mint API key sent as a Bearer token.
Headers
Optional stable key for safely retrying an uncertain mutating request. Mint creates an internal key when this header is omitted. Reusing a supplied key with different parameters returns 409.
1 - 255Body
Instructions for creating a coordinated Material Pack.
Describe the shared purpose of the Material Pack.
1 - 8000The individual Materials Mint should create.
2 - 25 elementsShow child attributes
Show child attributes
Optional Material Pack title shown in Mint; Mint derives one when omitted.
1 - 120Quality, speed, and cost tier applied across the pack.
fast, standard, production Optional public HTTPS image shared as source context.
How Mint should create or derive the Material maps.
generate, image_to_maps, extract Number of requested Materials; when supplied, it must equal the items array length.
2 <= x <= 25Optional visual rules shared by every Material in the pack.
1 - 4000Response
An earlier request with the same retry key returned this operation.
A long-running operation acting on one Mint material_pack.
Stable object discriminator.
"operation"Mint operation ID used for polling.
The work this operation performs.
material_pack_generation Workflow mode for this operation.
auto, review Current operation lifecycle status.
queued, running, preview_ready, billing_required, succeeded, partially_succeeded, failed, canceled The Mint asset created by this operation, or null before the asset exists.
Show child attributes
Show child attributes
When the operation was created.
When the operation last changed.
Developer-supplied generation brief or revision feedback.
Public generation preset selected for this operation.
fast, standard, production The billing action required before this operation can continue.
Show child attributes
Show child attributes
Credit estimate, active reservation, finalized charge, and post-reservation balance for this operation.
Show child attributes
Show child attributes
Terminal failure details when the operation failed.
Show child attributes
Show child attributes
When the operation completed.
When the operation was canceled.
curl --request POST \
--url https://api.mint.gg/v1/material-packs:generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"items": [
{
"label": "<string>",
"prompt": "<string>"
}
],
"name": "<string>",
"generationPreset": "standard",
"imageUrl": "<string>",
"mode": "generate",
"itemCount": 13,
"styleGuide": "<string>"
}
'import requests
url = "https://api.mint.gg/v1/material-packs:generate"
payload = {
"prompt": "<string>",
"items": [
{
"label": "<string>",
"prompt": "<string>"
}
],
"name": "<string>",
"generationPreset": "standard",
"imageUrl": "<string>",
"mode": "generate",
"itemCount": 13,
"styleGuide": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
items: [{label: '<string>', prompt: '<string>'}],
name: '<string>',
generationPreset: 'standard',
imageUrl: '<string>',
mode: 'generate',
itemCount: 13,
styleGuide: '<string>'
})
};
fetch('https://api.mint.gg/v1/material-packs:generate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mint.gg/v1/material-packs:generate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'items' => [
[
'label' => '<string>',
'prompt' => '<string>'
]
],
'name' => '<string>',
'generationPreset' => 'standard',
'imageUrl' => '<string>',
'mode' => 'generate',
'itemCount' => 13,
'styleGuide' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mint.gg/v1/material-packs:generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mint.gg/v1/material-packs:generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mint.gg/v1/material-packs:generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"items\": [\n {\n \"label\": \"<string>\",\n \"prompt\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"generationPreset\": \"standard\",\n \"imageUrl\": \"<string>\",\n \"mode\": \"generate\",\n \"itemCount\": 13,\n \"styleGuide\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "material_pack_generation",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "material_pack",
"id": "material_pack_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "material_pack_generation",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "material_pack",
"id": "material_pack_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}{
"type": "https://api.mint.gg/problems/animation-actions-not-in-set",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"code": "custom",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"reason": "subscription_required",
"resource": "preview",
"stage": "preview",
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1,
"ctaKind": "view_plans"
}
}