---
title: "Paid: text→3D / image→3D generation (returns a job token)"
method: POST
path: "/api/x402/forge"
---

# Paid: text→3D / image→3D generation (returns a job token)

`POST /api/x402/forge`

## Request

- Base URL: `https://three.ws`
- URL: `https://three.ws/api/x402/forge`
- Auth: none required

Pay per quality tier in USDC ($0.05 draft / $0.15 standard / $0.50 high) to generate a 3D model. Submit a prompt for text→3D, or up to four public https reference views of one object for image→3D. Runs the FLUX→TRELLIS pipeline. The response returns a job token; poll it for FREE at GET /api/forge?job=<id> to retrieve the finished GLB URL. The 402 challenge quotes the exact price for the requested tier.

## Request body

- object
  - `prompt` string: Describe one subject for text→3D. Omit when supplying image_urls.
  - `image_urls` string[]: Up to six public https reference views of one object for image→3D.
  - `tier` 'draft' | 'standard' | 'high'
  - `aspect_ratio` '1:1' | '4:3' | '3:4' | '16:9' | '9:16'

## Response `200`

Generation job accepted; poll poll_url for the GLB

- object
  - `job_id` string, required
  - `status` string, required
  - `poll_url` string, required: Free, provider-aware status endpoint.
  - `mode` 'text_to_3d' | 'image_to_3d'
  - `tier` string
  - `backend` string
  - `eta_seconds` integer
  - `price_usdc` string

## Other responses

- `400`: Missing or invalid input
- `402`: Payment Required (x402)
- `503`: Generation backend not configured

---

[API](https://skmtc.dev/three/apis/three-ws-api.md) · [All operations](https://skmtc.dev/three/apis/three-ws-api/llms.txt) · [OpenAPI document](https://skmtc.dev/three/apis/three-ws-api/revisions/dbc5e3a81b79?raw)
