Sleipner3D, homeV1 · Open beta: what’s in it

Developers

Make 3D objects from code.

An HTTP API and an MCP server, on your credits and at the same prices as the site. One request makes an object; you follow it and download the files.

Brass ship lantern
Brass ship lantern, from the library: made by the same pipeline the API runs. About 50k triangles · GLB 20.2 MB. One Quick request: 200 credits (about $2).

API quick start

From a key to a GLB in four requests

  1. 01Get a key

    In Settings, under API keys. The key starts with slp_ and is shown once: keep it in an environment variable and send it as a bearer token. Check it by reading your balance.

    Shell
    export SLEIPNER_API_KEY=slp_...
    
    curl -H "Authorization: Bearer $SLEIPNER_API_KEY" https://3d.sleipner.ai/api/credits
    200 OK (shortened)
    HTTP/1.1 200 OK
    {
      "balance": 600,
      "prices": [{ "tier": "quick", "label": "Quick", "credits": 200, "list_price": 350, … }, …],
      "entries": [ … ]
    }
  2. 02Make an object

    Describe one object. tier is quick (200 credits) or standard (600). request_id makes a retry safe: the same id returns the first object and charges nothing.

    curl
    curl -X POST https://3d.sleipner.ai/api/objects \
      -H "Authorization: Bearer $SLEIPNER_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"kind":"generate","prompt":"A brass ship lantern with a glass chimney",
           "tier":"quick","request_id":"lantern-1"}'
    201 Created
    HTTP/1.1 201 Created
    {
      "object_id": "6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f",
      "status": "queued",
      "page_url": "https://3d.sleipner.ai/objects/6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f",
      "api_url": "https://3d.sleipner.ai/api/objects/6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f",
      "price": 200,
      "list_price": 350,
      "balance": 400,
      "already_submitted": false
    }
  3. 03Follow it

    Poll api_url every 10 to 15 seconds. status goes queued → running → ready (or failed, with the credits refunded). job.fraction and job.stepLabel say how far it is. A Quick object usually takes under 10 minutes.

    curl
    curl -H "Authorization: Bearer $SLEIPNER_API_KEY" \
      https://3d.sleipner.ai/api/objects/6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f
    200 OK (shortened)
    HTTP/1.1 200 OK
    {
      "id": "6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f",
      "title": "Brass ship lantern",
      "status": "running",
      "job": { "status": "running", "tier": "quick", "fraction": 0.45, "stepLabel": "Building the 3D shape", … },
      "files": null,                       // renders, size and formats once "status" is "ready"
      …
    }
  4. 04Download

    Formats: glb, gltf, fbx, usdz, blend, obj; detail standard or low. The answer is a redirect to a link that works for 5 minutes, so let your client follow it (-L). Downloads are free.

    curl
    curl -L -o lantern.glb -H "Authorization: Bearer $SLEIPNER_API_KEY" \
      "https://3d.sleipner.ai/api/objects/6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f/download?format=glb&detail=standard"
    303 See Other
    HTTP/1.1 303 See Other
    Location: <presigned URL, valid 5 minutes>

Next: change an object (one change per request, on yours or a library model; a new colour, material or wear costs 50 credits), or the same flow in JavaScript and Python.

Change it
curl -X POST https://3d.sleipner.ai/api/objects \
  -H "Authorization: Bearer $SLEIPNER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"edit","object_id":"6f1c2d3e-4a5b-4c6d-8e7f-0a1b2c3d4e5f","instruction":"make it dark green",
       "tier":"quick","request_id":"lantern-green"}'

Reference

Endpoints

JSON in and out. Errors are {"error": "…"} with an HTTP status, and a refusal to make or change something adds a code. Each endpoint’s parameters, example request and response and errors are in the API reference.

RequestWhat it does
POST /api/objectsMake an object
POST /api/objectsChange an object
POST /api/objectsMake or change with reference images
GET /api/objectsList your objects
GET /api/objects/{id}Get an object
GET /api/objects/{id}/downloadDownload a file
POST /api/objects/{id}/cancelCancel an object
GET /api/creditsBalance and prices
POST /api/credits/redeemRedeem a credit code
GET /api/capabilitiesCapabilities
GET /library.jsonLibrary catalog
GET /api/healthHealth

Rules

Credits, scope and limits

Credits

Quick 200 (about $2), Standard 600 (about $6), a surface change 50 (launch prices until 31 Dec; list 350 and 1,000). A job keeps the price it started at. Charged when the request is accepted, refunded if it fails or is cancelled. Not enough credits: 402 with your balance and what is needed.

Pricing

What a key can do

A key acts as you: it spends your credits and sees your objects. It can’t buy credits, manage keys or change your account. Up to 10 keys; revoking one works from the next request.

Manage keys

Rate limits

Per key: 60 requests at once, then 1 a second. New builds: 5 at once, then one every 30 seconds. Up to 2 builds in the works per account. Over a rate limit: 429 with Retry-After; too many builds in the works: 429 with the code too_many_active. During the beta there is no uptime guarantee; if making objects is paused, the API says so and nothing is charged.

Limits and errors

Every make and change gets a capabilities check before anything is charged: a held request is a 422 whose scope.status is uncertain (send accept_uncertain: true once the user accepts) or not_yet (with suggestions, a roadmap and a notify_url; make_anyway: true tries it anyway). The full list: GET /api/capabilities. What’s in V1

MCP

For AI agents

The MCP server is https://3d.sleipner.ai/mcp (Streamable HTTP). Apps that connect through a browser sign in with OAuth and need no key; clients that send headers can use your key. The tools search the library, make and change objects, follow them and fetch the files, on the same credits.

MCP config
{
  "mcpServers": {
    "sleipner-3d": {
      "url": "https://3d.sleipner.ai/mcp",
      "headers": { "Authorization": "Bearer slp_..." }
    }
  }
}

Step-by-step for ChatGPT, Claude, Claude Code, Cursor, VS Code, Windsurf and others: Connect your AI. New to Sleipner? Getting started, FAQ and support. For language models reading this site: llms.txt.