# AI3D API v2 model: tripo-retopology Retopologize or decimate an existing 3D model with Tripo's mesh decimate endpoint. - AI3D model ID: `tripo-retopology` (native Tripo API, `mesh/decimate`) - Task: `model_to_model` - Provider adapter: `tripo` - Default provider model version: `v2.0` (smart retopology); `v1.0` is basic decimation - Availability: listed in `GET /v2/models` only once Tripo operations are enabled on the deployment. Until then `POST /v2/jobs` returns `400 unknown model`. - Provider reference: Create a normal prepaid AI3D job. Do not call Tripo directly or put a provider key in a client. ```http POST https://api.ai3d.dev/v2/jobs Authorization: Bearer Content-Type: application/json Idempotency-Key: ``` ```json { "model": "tripo-retopology", "source_job_id": "3f6c0e2e-6a3f-4f1e-9d0c-1b2a3c4d5e6f", "input": { "face_limit": 5000, "quad": false } } ``` Source model: send exactly one of these top-level fields. Do not put them inside `input`. - `source_job_id`: the UUID of your own completed Tripo job (`tripo-h31-image`, `tripo-h31-text`, `tripo-p1-image`, `tripo-p1-text`, or `tripo-p1-multiview`). - `model_url`: a public HTTPS link to a GLB, GLTF, FBX, OBJ, or STL file (up to 150 MB at Tripo). AI3D does not fetch it; Tripo does. URL input is not verified for this operation; prefer `source_job_id`. Jobs created by Fal-hosted Tripo models or any other provider cannot be used as `source_job_id` and return 422. Use `model_url` instead; for a public GLB or GLTF job you can pass its public viewer artifact URL. Optional `input` settings: `model` (`v2.0` or `v1.0`), `face_limit` (required), `quad`, and `bake` (v2.0 only; rejected for `v1.0`). `face_limit` windows: - `v2.0`: 500 to 20,000 faces, or 500 to 10,000 when `quad` is true. - `v1.0`: 1 to 2,000,000, or 1 to 150,000 when `quad` is true. Reserve (an upper bound, in Tripo credits at $0.01 each): | `model` | Credits | USD | | --- | --- | --- | | `v2.0` or omitted | 30 | 0.30 | | `v1.0` | 10 | 0.10 | AI3D reserves before dispatch and settles against Tripo's reported credits, never more than the reserve. A job that fails at Tripo is not charged. Errors: `404` source job not found (also returned for another account's job), `409` source job has not completed successfully, `422` invalid settings or a source job that cannot be used. Failed jobs report `provider_input_invalid`, `provider_request_rejected`, or `provider_insufficient_credits`. Output: the retopologized model is archived in `artifacts` (usually GLB) together with a preview image. Poll `GET /v2/jobs/{job_id}` until `succeeded`, `failed`, or `submission_unknown`. Use the same idempotency key when safely retrying a timed-out request.