HomeGetting Started

Getting Started

Set up your API key and make your first generation request in under 5 minutes.

Prerequisites

Before you begin, you will need:

Every new account receives 10 free credits - enough to try all four generation modes without spending a dime.

Using with AI Agents

If you're pointing an AI agent at MeshRoom, sign up and generate an API key yourself first, then hand the agent the key - don't ask an agent to sign up on your behalf. Signup is rate-limited and screened server-side (disposable email domains and per-IP account caps are rejected), so an agent-driven signup attempt won't work anyway.

We publish /llms.txt for agents that need machine-readable guidance on the public pages and API endpoints, including this same rule.

Authentication

All API requests require an API key passed in the Authorization header. You can generate keys from the API Keys page in your dashboard.

Authorization: Bearer mr_live_xxxxxxxxxxxx
Keep your API key secret. Never expose it in client-side code or public repositories. If compromised, rotate it immediately from the dashboard.
Terminal
$  

Your First Request

Generate a 3D model with a single cURL command. The API accepts a JSON body with a mode and prompt.

curl -X POST https://webassets.art/api/v1/generate \
-H "Authorization: Bearer mr_live_..." \
-H "Content-Type: application/json" \
-d '{
"mode": "trellis",
"prompt": "a medieval treasure chest",
"options": {
"meshSimplify": 0.95,
"textureSize": 1024
}
}'

Understanding the Response

Generation runs asynchronously. The request above returns immediately - credits are charged up front - with a generation id to poll:

{
"id": "gen_abc123",
"status": "pending",
"creditsRemaining": 48
}

Poll the same id until it finishes:

curl https://webassets.art/api/v1/generate/gen_abc123 \
-H "Authorization: Bearer mr_live_..."
{
"id": "gen_abc123",
"status": "complete",
"modelUrl": "https://webassets.art/assets/gen_abc123.glb",
"assetId": "asset_xyz"
}
FieldTypeDescription
idstringUnique generation identifier - use this to poll
statusstring"pending" → mode-specific steps → "complete" or "failed"
modelUrl / imageUrlstringDirect URL to the generated asset file, once complete
assetIdstringId of the saved asset, once complete - visible in your dashboard
creditsRemainingnumberYour balance after this generation was charged