Start smart topology for a model
Start smart topology for a model.
curl --request POST \
--url https://api.mint.gg/v1/models/{modelId}:retopologize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"polygonType": "quadrilateral",
"faceLevel": "medium",
"name": "<string>"
}
'import requests
url = "https://api.mint.gg/v1/models/{modelId}:retopologize"
payload = {
"polygonType": "quadrilateral",
"faceLevel": "medium",
"name": "<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({polygonType: 'quadrilateral', faceLevel: 'medium', name: '<string>'})
};
fetch('https://api.mint.gg/v1/models/{modelId}:retopologize', 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/models/{modelId}:retopologize",
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([
'polygonType' => 'quadrilateral',
'faceLevel' => 'medium',
'name' => '<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/models/{modelId}:retopologize"
payload := strings.NewReader("{\n \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<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/models/{modelId}:retopologize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mint.gg/v1/models/{modelId}:retopologize")
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 \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "model_retopology",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "model",
"id": "model_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "model_retopology",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "model",
"id": "model_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}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 - 255Path Parameters
Body
Optional settings for creating a retopologized copy of a Mint 3D Model.
Mesh topology to create; quadrilateral topology is currently supported.
quadrilateral Target mesh detail level for the retopologized copy.
low, medium, high Optional title for the retopologized 3D Model shown in Mint.
1 - 120Response
An earlier request with the same retry key returned this operation.
A long-running operation acting on one Mint model.
Stable object discriminator.
"operation"Mint operation ID used for polling.
The work this operation performs.
model_retopology Workflow mode for this operation.
auto, review Current operation lifecycle status.
queued, running, preview_ready, billing_required, succeeded, partially_succeeded, failed, canceled The Mint model affected by this operation.
Show child attributes
Show child attributes
When the operation was created.
When the operation last changed.
Requested topology reduction strength.
light, moderate, aggressive 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/models/{modelId}:retopologize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"polygonType": "quadrilateral",
"faceLevel": "medium",
"name": "<string>"
}
'import requests
url = "https://api.mint.gg/v1/models/{modelId}:retopologize"
payload = {
"polygonType": "quadrilateral",
"faceLevel": "medium",
"name": "<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({polygonType: 'quadrilateral', faceLevel: 'medium', name: '<string>'})
};
fetch('https://api.mint.gg/v1/models/{modelId}:retopologize', 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/models/{modelId}:retopologize",
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([
'polygonType' => 'quadrilateral',
'faceLevel' => 'medium',
'name' => '<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/models/{modelId}:retopologize"
payload := strings.NewReader("{\n \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<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/models/{modelId}:retopologize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mint.gg/v1/models/{modelId}:retopologize")
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 \"polygonType\": \"quadrilateral\",\n \"faceLevel\": \"medium\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "model_retopology",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "model",
"id": "model_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"object": "operation",
"id": "op_01JEXAMPLE",
"type": "model_retopology",
"generationMode": "auto",
"status": "running",
"resource": {
"type": "model",
"id": "model_01JEXAMPLE"
},
"createdAt": "2026-07-21T20:00:00.000Z",
"updatedAt": "2026-07-21T20:00:01.000Z"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"errors": [
{
"path": "<string>",
"message": "<string>"
}
],
"operationId": "<string>",
"billing": {
"requiredCredits": 1,
"actionUrl": "<string>",
"availableCredits": 1,
"committedCredits": 1,
"stageCredits": 1,
"completionCredits": 1
}
}