3DLogo.io

3DLogo.io, a browser 3D logo maker: 3D logos, 3D coins, 3D models from photos or prompts, embeds.

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
78%
이름 품질
97%
오염 위험
100%
권한 일치
80%
프로토콜 준수
100%

발견 사항 (3)

  • LOWTool 'create_invite_link' description lacks action verbcreate_invite_link에서
  • LOWTool 'browse_looks' suggests web access but openWorldHint=falsebrowse_looks에서
  • LOWTool 'fetch' suggests web access but openWorldHint=falsefetch에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~15,059토큰 (도구 정의)
~4.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 11.76%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "3dlogo": {
      "url": "https://3dlogo.io/api/mcp"
    }
  }
}

원격 엔드포인트

https://3dlogo.io/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (29)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_materials(category)

Use when you need a material id: the presets the 3D logo editor renders (chrome, gold, glass, holographic, neon, clay, wood...), each with its category and whether it needs Pro. Ids are exact strings for build_logo_editor_link, create_text_logo_project and update_project. Do not use to show the user what a look is like; browse_looks has example images.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "description": "Only this category",
      "type": "string",
      "enum": [
        "chrome",
        "gold",
        "abstract",
        "holographic",
        "metal",
        "gradient",
        "glass",
        "plastic",
        "clay",
        "neon",
        "fabric",
        "composite",
        "wood",
        "stone",
        "enamel",
        "anodized"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "materials": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "categoryLabel": {
            "type": "string"
          },
          "pro": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "category",
          "categoryLabel",
          "pro"
        ],
        "additionalProperties": false
      }
    },
    "categories": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "materials",
    "categories"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_coin_looks

Use before build_coin_studio_link or a coin restyle: the preset looks (gold, chrome, silver, bronze), blank edges (reeded, milled, smooth), motions, lighting rooms and fonts the coin studio accepts. Read-only, no account needed.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "looks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "coinColor": {
            "type": "string"
          },
          "logoColor": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "coinColor",
          "logoColor"
        ],
        "additionalProperties": false
      }
    },
    "blanks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "hint": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "hint"
        ],
        "additionalProperties": false
      }
    },
    "motions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "environments": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fonts": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "looks",
    "blanks",
    "motions",
    "environments",
    "fonts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢build_logo_editor_link(text, mark, upload, font, material, ...)

Returns a link that opens the 3D logo editor already styled, from a wordmark (text), from a stored logo image (mark, see upload_logo_image), or on the upload panel (upload=true) when the person will drop the file themselves. Works without an account. Use list_materials for material ids.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "description": "The wordmark, up to 40 characters (omit when passing mark or upload)",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "mark": {
      "type": "string",
      "pattern": "^m[a-z0-9]{31}$",
      "description": "Mark id from upload_logo_image or request_logo_image_upload"
    },
    "upload": {
      "description": "Open on the upload panel with the look prepared; the person drops their own file",
      "type": "boolean"
    },
    "font": {
      "type": "string",
      "enum": [
        "outfit",
        "oswald",
        "montserrat",
        "archivo",
        "bebas",
        "anton",
        "russo",
        "orbitron",
        "blackops",
        "pacifico"
      ]
    },
    "material": {
      "description": "Material id from list_materials (e.g. gold-clean-optimised)",
      "type": "string"
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "orbit",
        "rotate",
        "tumble",
        "reveal",
        "pulse"
      ]
    },
    "depth": {
      "description": "Extrusion depth, default 30",
      "type": "number",
      "minimum": 1,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "text": {
      "type": [
        "string",
        "null"
      ]
    },
    "mark": {
      "type": [
        "string",
        "null"
      ]
    },
    "upload": {
      "type": "boolean"
    },
    "material": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "url",
    "text",
    "mark",
    "upload",
    "material"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢build_coin_studio_link(text, look, font, coinColor, logoColor, ...)

Returns a link that opens the 3D coin studio with a mark struck into a coin. Looks: gold, chrome, silver, bronze. Works without an account.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 24,
      "description": "The mark text, up to 24 characters"
    },
    "look": {
      "type": "string",
      "enum": [
        "gold",
        "chrome",
        "silver",
        "bronze"
      ]
    },
    "font": {
      "type": "string",
      "enum": [
        "outfit",
        "oswald",
        "montserrat",
        "archivo",
        "bebas",
        "anton",
        "russo",
        "orbitron",
        "blackops",
        "pacifico"
      ]
    },
    "coinColor": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "logoColor": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "blank": {
      "type": "string",
      "enum": [
        "reeded",
        "milled",
        "smooth"
      ]
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "rotate",
        "tumble",
        "reveal",
        "float",
        "bounce"
      ]
    }
  },
  "required": [
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "text": {
      "type": "string"
    }
  },
  "required": [
    "url",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_plans

Use when the user asks what is free, what Pro or Ultra add, or what a Generate run costs in credits: the plan features (exports, watermark, credits, saves) and the one-time credit packs, with what packs do and do not unlock. Read-only. Do not use to check the connected user's own plan; get_account does that.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "free": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "included": {
            "type": "boolean"
          }
        },
        "required": [
          "label",
          "included"
        ],
        "additionalProperties": false
      }
    },
    "pro": {
      "type": "object",
      "properties": {
        "priceUsd": {
          "type": "object",
          "properties": {
            "monthly": {
              "type": "object",
              "properties": {
                "amountUsd": {
                  "type": "number"
                },
                "label": {
                  "type": "string"
                },
                "period": {
                  "type": "string"
                }
              },
              "required": [
                "amountUsd",
                "label",
                "period"
              ],
              "additionalProperties": false
            },
            "yearly": {
              "type": "object",
              "properties": {
                "amountUsd": {
                  "type": "number"
                },
                "label": {
                  "type": "string"
                },
                "period": {
                  "type": "string"
                },
                "monthlyEquivalent": {
                  "type": "string"
                }
              },
              "required": [
                "amountUsd",
                "label",
                "period",
                "monthlyEquivalent"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "monthly",
            "yearly"
          ],
          "additionalProperties": false
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "included": {
                "type": "boolean"
              }
            },
            "required": [
              "label",
              "included"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "priceUsd",
        "features"
      ],
      "additionalProperties": false
    },
    "ultra": {
      "type": "object",
      "properties": {
        "priceUsd": {
          "type": "object",
          "properties": {
            "monthly": {
              "type": "object",
              "properties": {
                "amountUsd": {
                  "type": "number"
                },
                "label": {
                  "type": "string"
                },
                "period": {
                  "type": "string"
                }
              },
              "required": [
                "amountUsd",
                "label",
                "period"
              ],
              "additionalProperties": false
            },
            "yearly": {
              "type": "object",
              "properties": {
                "amountUsd": {
                  "type": "number"
                },
                "label": {
                  "type": "string"
                },
                "period": {
                  "type": "string"
                },
                "monthlyEquivalent": {
                  "type": "string"
                }
              },
              "required": [
                "amountUsd",
                "label",
                "period",
                "monthlyEquivalent"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "monthly",
            "yearly"
          ],
          "additionalProperties": false
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "included": {
                "type": "boolean"
              }
            },
            "required": [
              "label",
              "included"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "priceUsd",
        "features"
      ],
      "additionalProperties": false
    },
    "creditPacks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "priceUsd": {
            "type": "number"
          },
          "credits": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "priceUsd",
          "credits"
        ],
        "additionalProperties": false
      }
    },
    "creditPackNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pricingUrl": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    }
  },
  "required": [
    "free",
    "pro",
    "ultra",
    "creditPacks",
    "creditPackNotes",
    "pricingUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢browse_looks

Use when the user wants to see what is possible or pick a style before designing: the example looks (chrome, gold, glass, holographic, brushed metal, gradient, 3D text, animated), each with a rendered example image, what it is best for, the presets behind it, and an editor link that applies it. Works without an account. Do not use to get material ids for another tool; list_materials has the full catalogue.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "looks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string",
            "format": "uri",
            "description": "A render of the look"
          },
          "editorUrl": {
            "type": "string",
            "format": "uri",
            "description": "Opens the editor with the look applied"
          },
          "guideUrl": {
            "type": "string",
            "format": "uri",
            "description": "The guide page for the look"
          },
          "bestFor": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "presets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "note": {
                  "type": "string"
                },
                "editorUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "Absolute https URL the user can open"
                }
              },
              "required": [
                "name",
                "note",
                "editorUrl"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "slug",
          "name",
          "summary",
          "imageUrl",
          "editorUrl",
          "guideUrl",
          "bestFor",
          "presets"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "looks"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡upload_logo_image(image, image_url, image_data, file_name, material, ...)

Stores a logo image (PNG, JPEG, GIF, WebP up to 8 MB; SVG up to 1 MB) so the 3D logo editor can extrude it, and returns a mark id plus an editor link already styled. Give exactly one source: image (a file the user attached in chat), image_url (a public https link to the image file itself, not a page), or image_data (a base64 data URL, small files only). Marks expire after 7 days. For a file on the user's own machine use request_logo_image_upload instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "image": {
      "description": "The image the user attached in chat",
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "Temporary download URL for the attached file"
        },
        "file_id": {
          "type": "string",
          "minLength": 1,
          "description": "The host's file id"
        },
        "mime_type": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ]
    },
    "image_url": {
      "description": "Public https URL of the image file",
      "type": "string",
      "maxLength": 2048,
      "format": "uri"
    },
    "image_data": {
      "description": "data:image/png;base64,... for small images only; most hosts cap this well under 1 MB",
      "type": "string",
      "maxLength": 3000000
    },
    "file_name": {
      "description": "Shown in the editor; defaults to the file name",
      "type": "string",
      "maxLength": 120
    },
    "material": {
      "description": "Material id from list_materials (e.g. gold-clean-optimised)",
      "type": "string"
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "orbit",
        "rotate",
        "tumble",
        "reveal",
        "pulse"
      ]
    },
    "depth": {
      "description": "Extrusion depth, default 30",
      "type": "number",
      "minimum": 1,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "markId": {
      "type": "string"
    },
    "editorUrl": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "contentType": {
      "type": "string"
    },
    "bytes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "fileName": {
      "type": "string"
    },
    "expiresAt": {
      "type": "string"
    },
    "material": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "markId",
    "editorUrl",
    "contentType",
    "bytes",
    "fileName",
    "expiresAt",
    "material"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡request_logo_image_upload(file_name)

For a logo file on the user's machine that cannot be sent inside a tool call: returns a mark id and a one-shot HTTPS PUT URL. Upload the raw file bytes to it (for example `curl -T logo.png "<uploadUrl>"`), then call build_logo_editor_link with the mark id (or create_image_logo_project when signed in). Accepts PNG, JPEG, GIF, WebP (8 MB) and SVG (1 MB).

입력 스키마

{
  "type": "object",
  "properties": {
    "file_name": {
      "description": "The file name, used as the project title later",
      "type": "string",
      "maxLength": 120
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "markId": {
      "type": "string"
    },
    "uploadUrl": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "method": {
      "type": "string",
      "const": "PUT"
    },
    "accept": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "maxBytes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "maxSvgBytes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "example": {
      "type": "string"
    },
    "next": {
      "type": "string"
    }
  },
  "required": [
    "markId",
    "uploadUrl",
    "method",
    "accept",
    "maxBytes",
    "maxSvgBytes",
    "example",
    "next"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_account

Use to know what the connected account can do before acting: plan, remaining Generate credits (period and purchased), project and share-link counts against their caps, and export limits. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": "string"
    },
    "plan": {
      "type": "string"
    },
    "isPro": {
      "type": "boolean"
    },
    "isUltra": {
      "type": "boolean"
    },
    "creditsRemaining": {
      "type": "number"
    },
    "periodCreditsRemaining": {
      "type": "number"
    },
    "purchasedCredits": {
      "type": "number"
    },
    "purchasedCreditsExpireAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "creditsRollOver": {
      "type": "boolean"
    },
    "canUsePaidDensity": {
      "type": "boolean"
    },
    "creditsExpireAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "projectCount": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "projectLimit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "shareLimit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "exportWatermark": {
      "type": "boolean"
    },
    "canExportHdVideo": {
      "type": "boolean"
    },
    "maxImagePx": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "accountUrl": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    }
  },
  "required": [
    "name",
    "email",
    "plan",
    "isPro",
    "isUltra",
    "creditsRemaining",
    "periodCreditsRemaining",
    "purchasedCredits",
    "purchasedCreditsExpireAt",
    "creditsRollOver",
    "canUsePaidDensity",
    "creditsExpireAt",
    "projectCount",
    "projectLimit",
    "shareLimit",
    "exportWatermark",
    "canExportHdVideo",
    "maxImagePx",
    "accountUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_projects(query, kind, page)

The user's saved logos, coins and generated meshes, newest first. Optional title search and kind filter.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Match against the title",
      "type": "string",
      "maxLength": 40
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "logo",
              "coin",
              "mesh"
            ]
          },
          "kindLabel": {
            "type": "string"
          },
          "inputType": {
            "type": [
              "string",
              "null"
            ]
          },
          "isPublic": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Opens the project in its studio"
          },
          "shareUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Public page, when published"
          },
          "modelUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Public GLB, for published meshes"
          },
          "thumbnailUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Saved thumbnail; needs the owner's browser session"
          },
          "updatedAt": {
            "description": "ISO 8601",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "kindLabel",
          "inputType",
          "isPublic",
          "url",
          "shareUrl",
          "modelUrl",
          "thumbnailUrl",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "page": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "totalPages": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "projects",
    "total",
    "page",
    "totalPages"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_project(id, include_config)

Details and links for one saved project by id: where it opens, its public page if published, the GLB for meshes, and with include_config the saved workspace settings (material, lighting, motion). For a picture of it, call get_project_preview.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "include_config": {
      "default": false,
      "description": "Also return the saved workspace config (large)",
      "type": "boolean"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    },
    "accessRole": {
      "type": "string"
    },
    "canEdit": {
      "type": "boolean"
    },
    "hasArtwork": {
      "type": "boolean",
      "description": "False until the project has been opened and saved once in the studio"
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt",
    "accessRole",
    "canEdit",
    "hasArtwork"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_text_logo_project(text, title, material, font, environment, ...)

Saves a new 3D logo project from a wordmark with a material and lighting, so it appears in the user's Projects and opens in the editor. Does not spend credits.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "title": {
      "description": "Project name; defaults to the text",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "material": {
      "description": "Material id from list_materials",
      "type": "string"
    },
    "font": {
      "type": "string",
      "enum": [
        "outfit",
        "oswald",
        "montserrat",
        "archivo",
        "bebas",
        "anton",
        "russo",
        "orbitron",
        "blackops",
        "pacifico"
      ]
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "orbit",
        "rotate",
        "tumble",
        "reveal",
        "pulse"
      ]
    },
    "depth": {
      "type": "number",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt",
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_image_logo_project(mark, title, material, environment, background, ...)

Saves a new 3D logo project from a mark stored with upload_logo_image or request_logo_image_upload, with a material and lighting, so it appears in the user's Projects. The image is traced into 3D the first time the project opens; open it once and save before publishing. Does not spend credits.

입력 스키마

{
  "type": "object",
  "properties": {
    "mark": {
      "type": "string",
      "pattern": "^m[a-z0-9]{31}$",
      "description": "Mark id from upload_logo_image or request_logo_image_upload"
    },
    "title": {
      "description": "Project name; defaults to the file name",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "material": {
      "description": "Material id from list_materials (e.g. gold-clean-optimised)",
      "type": "string"
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "orbit",
        "rotate",
        "tumble",
        "reveal",
        "pulse"
      ]
    },
    "depth": {
      "description": "Extrusion depth, default 30",
      "type": "number",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "mark"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    },
    "mark": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt",
    "mark",
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_invite_link(id, role)

A link that lets a signed-in person join the project as an editor or viewer (up to 50 uses, 7 days). Owner only.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "role": {
      "default": "editor",
      "type": "string",
      "enum": [
        "editor",
        "viewer"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "role": {
      "type": "string",
      "enum": [
        "editor",
        "viewer"
      ]
    },
    "expiresAt": {
      "type": "string"
    }
  },
  "required": [
    "url",
    "role",
    "expiresAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴delete_project(id, confirm)

Permanently deletes a saved project, its share page and invites. Confirm with the user first. Owner only.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true"
    }
  },
  "required": [
    "id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "deleted": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "id",
    "deleted"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢quote_generation(mode, density)

Use before generate_3d_model so the user knows the cost: the credits a text or image run charges at a density. Read-only, spends nothing.

입력 스키마

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "text",
        "image"
      ]
    },
    "density": {
      "default": "standard",
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "pro",
        "ultra"
      ]
    }
  },
  "required": [
    "mode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "text",
        "image"
      ]
    },
    "density": {
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "pro",
        "ultra"
      ]
    },
    "quote": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Credits the run will charge"
    }
  },
  "required": [
    "mode",
    "density",
    "quote"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢generate_3d_model(mode, prompt, image_url, density, texture)

Starts an AI generate from a text prompt or a public image URL. Spends the user's credits (see quote_generation). Returns a run id to poll with get_generation_status.

입력 스키마

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "text",
        "image"
      ]
    },
    "prompt": {
      "description": "For text mode",
      "type": "string",
      "maxLength": 1024
    },
    "image_url": {
      "description": "For image mode: a public https image (PNG/JPEG/WebP)",
      "type": "string",
      "format": "uri"
    },
    "density": {
      "default": "standard",
      "type": "string",
      "enum": [
        "fast",
        "standard",
        "pro",
        "ultra"
      ]
    },
    "texture": {
      "default": true,
      "type": "boolean"
    }
  },
  "required": [
    "mode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "runId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "status": {
      "type": "string"
    },
    "creditsCharged": {
      "type": "number"
    },
    "statusUrl": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    }
  },
  "required": [
    "runId",
    "status",
    "creditsCharged",
    "statusUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_generation_status(run_id)

Status of a run started by generate_3d_model (or from the user's history). When completed, save it with save_generation_as_project.

입력 스키마

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "runId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "processing",
        "completed",
        "failed",
        "cancelled",
        "expired"
      ]
    },
    "modelName": {
      "type": "string"
    },
    "queuePosition": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "creditsCharged": {
      "type": [
        "number",
        "null"
      ]
    },
    "refunded": {
      "type": "boolean"
    },
    "error": {
      "type": [
        "string",
        "null"
      ]
    },
    "openUrl": {
      "type": "string",
      "format": "uri",
      "description": "The run in the Generate studio"
    },
    "hasPreview": {
      "type": "boolean",
      "description": "True once a render of the mesh exists; get_generation_preview returns it"
    }
  },
  "required": [
    "runId",
    "status",
    "modelName",
    "queuePosition",
    "creditsCharged",
    "refunded",
    "error",
    "openUrl",
    "hasPreview"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_generations(limit)

Use to find an earlier Generate run (to check, preview or save it): the recent runs with status, prompt and whether a render exists, newest first. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 12,
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "mode": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "prompt": {
            "type": [
              "string",
              "null"
            ]
          },
          "modelName": {
            "type": "string"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "hasPreview": {
            "type": "boolean"
          },
          "openUrl": {
            "type": "string",
            "format": "uri",
            "description": "Absolute https URL the user can open"
          }
        },
        "required": [
          "runId",
          "mode",
          "status",
          "prompt",
          "modelName",
          "createdAt",
          "hasPreview",
          "openUrl"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "runs"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡save_generation_as_project(run_id, title, public)

Keeps a completed run in Projects (idempotent per run). With public=true it is also published, which gives a share page and a public GLB URL the user can download.

입력 스키마

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "public": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_project_preview(id, include_image_data)

Use when the user wants to see a saved project, or you need to describe it: returns a signed URL of the studio's last saved render, valid for an hour, and the PNG inline when include_image_data is true (only on hosts that display image content; elsewhere it costs many tokens for nothing). Nothing to show until the project has been opened and saved once. Do not use for Generate runs; get_generation_preview covers those.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "include_image_data": {
      "default": false,
      "description": "Also return the image inline as image content",
      "type": "boolean"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "imageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Signed image URL, valid about an hour; fetch or show it before then"
    },
    "expiresAt": {
      "type": "string",
      "description": "ISO 8601, when imageUrl stops working"
    },
    "contentType": {
      "type": "string"
    },
    "bytes": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "openUrl": {
      "type": "string",
      "format": "uri",
      "description": "The studio page for it"
    },
    "projectId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "imageUrl",
    "expiresAt",
    "contentType",
    "bytes",
    "openUrl",
    "projectId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_generation_preview(run_id, include_image_data)

Use once get_generation_status reports completed with hasPreview true: returns a signed URL of the provider's render of the mesh, valid for an hour, and the image inline when include_image_data is true (only on hosts that display image content). Do not use for saved logo or coin projects; get_project_preview covers those.

입력 스키마

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "include_image_data": {
      "default": false,
      "description": "Also return the image inline as image content",
      "type": "boolean"
    }
  },
  "required": [
    "run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "imageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Signed image URL, valid about an hour; fetch or show it before then"
    },
    "expiresAt": {
      "type": "string",
      "description": "ISO 8601, when imageUrl stops working"
    },
    "contentType": {
      "type": "string"
    },
    "bytes": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "openUrl": {
      "type": "string",
      "format": "uri",
      "description": "The studio page for it"
    },
    "runId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "imageUrl",
    "expiresAt",
    "contentType",
    "bytes",
    "openUrl",
    "runId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_share_link(id, visibility, allow_download, title)

Use when the user wants to send a saved design to someone, post it, or embed it on a site: returns the share page, the iframe embed snippet, the oEmbed endpoint and a poster image URL. Unlisted (default) works for anyone holding the link without making the project public; public makes the page indexable. Reuses the project's active link of the same visibility, so calling twice is safe. The project must have been opened and saved once. Owner only. Do not use to let someone edit; create_invite_link does that.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "visibility": {
      "default": "unlisted",
      "type": "string",
      "enum": [
        "unlisted",
        "public"
      ]
    },
    "allow_download": {
      "default": true,
      "description": "Let viewers download the file from the page",
      "type": "boolean"
    },
    "title": {
      "description": "Title on the share page; defaults to the project title",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The share page"
    },
    "embedUrl": {
      "type": "string",
      "format": "uri",
      "description": "The iframe source"
    },
    "posterUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Rendered still of the design, when one exists"
    },
    "videoUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Turntable MP4, when one has been rendered"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "The GLB, for shares of generated meshes"
    },
    "oembedUrl": {
      "type": "string",
      "format": "uri",
      "description": "oEmbed endpoint for this share"
    },
    "embedHtml": {
      "type": "string",
      "description": "Copy-paste iframe snippet with attribution"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "title": {
      "type": "string"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "unlisted",
        "public"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "revoked",
        "expired",
        "removed"
      ]
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "allowDownload": {
      "type": "boolean"
    },
    "embedEnabled": {
      "type": "boolean"
    },
    "viewCount": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "projectId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "createdAt": {
      "type": "string"
    }
  },
  "required": [
    "token",
    "url",
    "embedUrl",
    "posterUrl",
    "videoUrl",
    "modelUrl",
    "oembedUrl",
    "embedHtml",
    "kind",
    "title",
    "visibility",
    "status",
    "expiresAt",
    "allowDownload",
    "embedEnabled",
    "viewCount",
    "projectId",
    "createdAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_share_links(id)

The account's active share links, or one project's when id is given, each with page, embed and poster URLs and a view count.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only this project's links",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "shares": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The share page"
          },
          "embedUrl": {
            "type": "string",
            "format": "uri",
            "description": "The iframe source"
          },
          "posterUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Rendered still of the design, when one exists"
          },
          "videoUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Turntable MP4, when one has been rendered"
          },
          "modelUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "The GLB, for shares of generated meshes"
          },
          "oembedUrl": {
            "type": "string",
            "format": "uri",
            "description": "oEmbed endpoint for this share"
          },
          "embedHtml": {
            "type": "string",
            "description": "Copy-paste iframe snippet with attribution"
          },
          "kind": {
            "type": "string",
            "enum": [
              "logo",
              "coin",
              "mesh"
            ]
          },
          "title": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "unlisted",
              "public"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "revoked",
              "expired",
              "removed"
            ]
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "allowDownload": {
            "type": "boolean"
          },
          "embedEnabled": {
            "type": "boolean"
          },
          "viewCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "projectId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "url",
          "embedUrl",
          "posterUrl",
          "videoUrl",
          "modelUrl",
          "oembedUrl",
          "embedHtml",
          "kind",
          "title",
          "visibility",
          "status",
          "expiresAt",
          "allowDownload",
          "embedEnabled",
          "viewCount",
          "projectId",
          "createdAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "shares"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴revoke_share_link(token)

Turns a share link off by token: the page, the embed and the poster stop serving within minutes. Cannot be undone; create_share_link makes a fresh one. Owner only.

입력 스키마

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{22}$"
    }
  },
  "required": [
    "token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The share page"
    },
    "embedUrl": {
      "type": "string",
      "format": "uri",
      "description": "The iframe source"
    },
    "posterUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Rendered still of the design, when one exists"
    },
    "videoUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Turntable MP4, when one has been rendered"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "The GLB, for shares of generated meshes"
    },
    "oembedUrl": {
      "type": "string",
      "format": "uri",
      "description": "oEmbed endpoint for this share"
    },
    "embedHtml": {
      "type": "string",
      "description": "Copy-paste iframe snippet with attribution"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "title": {
      "type": "string"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "unlisted",
        "public"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "revoked",
        "expired",
        "removed"
      ]
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "allowDownload": {
      "type": "boolean"
    },
    "embedEnabled": {
      "type": "boolean"
    },
    "viewCount": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "projectId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "createdAt": {
      "type": "string"
    }
  },
  "required": [
    "token",
    "url",
    "embedUrl",
    "posterUrl",
    "videoUrl",
    "modelUrl",
    "oembedUrl",
    "embedHtml",
    "kind",
    "title",
    "visibility",
    "status",
    "expiresAt",
    "allowDownload",
    "embedEnabled",
    "viewCount",
    "projectId",
    "createdAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡update_project(id, title, public, text, font, ...)

Use when the user wants an existing project changed without opening the studio: its title, whether it is public (a public project has a share page and, for meshes, a public GLB URL), and on logo and coin projects the style: material, lighting room, background, motion, depth, font, the wordmark on text projects; on coins also the look, coin and mark colours, and the blank edge. Only the fields given change. Making a project public needs a saved render. Style changes render the next time the project is opened and saved. Do not use for a share link that keeps the project private (create_share_link) or to make something new (create_text_logo_project, duplicate_project).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "description": "New project title",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "public": {
      "description": "Turn the public page on or off; owner only",
      "type": "boolean"
    },
    "text": {
      "description": "New wordmark; text projects only (coins: 24 characters)",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "font": {
      "type": "string",
      "enum": [
        "outfit",
        "oswald",
        "montserrat",
        "archivo",
        "bebas",
        "anton",
        "russo",
        "orbitron",
        "blackops",
        "pacifico"
      ]
    },
    "material": {
      "description": "Material id from list_materials; logo projects",
      "type": "string"
    },
    "environment": {
      "type": "string",
      "enum": [
        "studio",
        "sunset",
        "dawn",
        "night",
        "warehouse",
        "forest",
        "apartment",
        "city"
      ],
      "description": "Lighting room"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Hex colour, e.g. #1a1a1a"
    },
    "motion": {
      "type": "string",
      "enum": [
        "none",
        "orbit",
        "rotate",
        "tumble",
        "reveal",
        "pulse",
        "float",
        "bounce"
      ]
    },
    "depth": {
      "description": "Extrusion depth; logo projects",
      "type": "number",
      "minimum": 1,
      "maximum": 500
    },
    "look": {
      "description": "Coin projects",
      "type": "string",
      "enum": [
        "gold",
        "chrome",
        "silver",
        "bronze"
      ]
    },
    "coin_color": {
      "description": "Coin projects: the coin body",
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    },
    "logo_color": {
      "description": "Coin projects: the struck mark",
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    },
    "blank": {
      "description": "Coin projects: the edge",
      "type": "string",
      "enum": [
        "reeded",
        "milled",
        "smooth"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    },
    "changed": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt",
    "changed",
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡duplicate_project(id, title)

Use when the user wants a variant without touching the original ("a gold version of this one"): copies a saved logo or coin project with its artwork, optionally under a new title; restyle the copy with update_project. Counts against the project cap. Does not spend credits.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "logo",
        "coin",
        "mesh"
      ]
    },
    "kindLabel": {
      "type": "string"
    },
    "inputType": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Opens the project in its studio"
    },
    "shareUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public page, when published"
    },
    "modelUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Public GLB, for published meshes"
    },
    "thumbnailUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "description": "Saved thumbnail; needs the owner's browser session"
    },
    "updatedAt": {
      "description": "ISO 8601",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "title",
    "kind",
    "kindLabel",
    "inputType",
    "isPublic",
    "url",
    "shareUrl",
    "modelUrl",
    "thumbnailUrl",
    "updatedAt"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search(query)

Searches the user's saved projects by title and returns ids with links (the ChatGPT search contract). Use fetch for the detail of one result; list_projects for browsing with filters.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Absolute https URL the user can open"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢fetch(id)

Full detail for one project id returned by search (the ChatGPT fetch contract): a text summary, the opening URL and metadata.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Absolute https URL the user can open"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "logo",
            "coin",
            "mesh"
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "shareUrl": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelUrl": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "kind",
        "isPublic",
        "shareUrl",
        "modelUrl"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 29개
검증됨버전이 기록되지 않음도구 29개
검증됨버전이 기록되지 않음도구 29개