Developers

API for AI agents

Let your AI agent make Roblox-ready 3D models and put them in your game, through MCP or a REST API.

Updated

Key takeaways

  • Works with MCP clients that connect over HTTP, or call the REST API yourself.
  • API keys come with paid plans.
  • Your Roblox key stays on your machine.

Connect your agent

Create a key in Settings, then add the server. With Claude Code:

bash
claude mcp add --transport http proppo https://proppo.com/mcp --header "Authorization: Bearer <your key>"

In other MCP clients, use the URL https://proppo.com/mcp with the same header. Without a key you get only the public read-only tools.

From prompt to Roblox

  1. generate_model starts the model from a prompt or an image. It spends credits and usually takes about 3 minutes.
  2. get_model shows the status. Poll about every 30 seconds until it says SUCCEEDED.
  3. export_for_roblox builds GLB and FBX files with the triangle budget, stud scale and pivot. It's free.
  4. roblox_upload_steps gives your agent the exact commands. The upload runs on your machine with your own Roblox key.
  5. Studio's MCP server inserts the model with insert_asset once Roblox has approved it. It's also in Toolbox under My Packages.

MCP tools

  • get_account

    What it does
    Plan, credits and what this key may still spend today
  • generate_model

    What it does
    Start a model from prompt or imageKey; requestId makes retries safe
  • get_model

    What it does
    Status, latest job, export info and copies of one model
  • list_models

    What it does
    Your own models, newest first
  • export_for_roblox

    What it does
    Build the Roblox files (free)
  • roblox_upload_steps

    What it does
    Commands to upload one model and insert it into Studio

REST API

Every route takes Authorization: Bearer <your key>.

  • GET /api/v1/me

    What it does
    Plan, credits and what this key may still spend today
  • POST /api/v1/images

    What it does
    Upload an image: {base64}, up to 7 MB. Returns the key to use as imageKey
  • POST /api/v1/models

    What it does
    Start a model: {prompt or imageKey, kind, title, texture, targetTris, followUps}. Send an Idempotency-Key header
  • GET /api/v1/models

    What it does
    Your models: ?q=, ?limit= (up to 50), ?cursor=
  • GET /api/v1/models/:id

    What it does
    Status, latest job, export info and copies
  • POST /api/v1/models/:id/export

    What it does
    Build the Roblox files: {targetTris, heightStuds}
  • GET /api/v1/models/:id/file

    What it does
    Download the export: ?format=glb, fbx or zip
  • GET /api/v1/tools/roblox-upload.mjs

    What it does
    The upload script

Limits

  • API keys come with paid plans. You can have 5 active keys, and each key shows only once.
  • Each key has its own daily credit limit: 300 by default, up to 1000. It resets at 00:00 UTC, and failed jobs refund your credits but don't give the limit back.
  • A textured model costs 30 credits from text and 30 from an image. Exports are free.
  • 120 requests per minute per key, no more than 20 per 10 seconds from one IP address, and up to 3 exports running at once.
  • 429 and 503 responses carry a Retry-After header: wait that long, then try again. A 429 for too many requests from one IP address isn't JSON.

Errors

Errors look like {"ok":false,"error":{"code","message","details"}}.

  • 400 VALIDATION

    Meaning
    A field is missing or invalid: the message says which
  • 401 INVALID_API_KEY

    Meaning
    The key is missing, wrong or revoked
  • 402 INSUFFICIENT_CREDITS

    Meaning
    Not enough credits for this step
  • 403 EMAIL_NOT_VERIFIED

    Meaning
    Confirm your email first
  • 403 PLAN_REQUIRED

    Meaning
    API keys need a paid plan
  • 409 EXPORT_RUNNING

    Meaning
    An export with other settings is still running
  • 409 EXPORT_REQUIRED

    Meaning
    This model needs an export through the API first
  • 413 FILE_TOO_LARGE

    Meaning
    Use format=zip for this file
  • 409 REQUEST_IN_PROGRESS

    Meaning
    The first request with this Idempotency-Key is still running
  • 422 IDEMPOTENCY_KEY_REUSED

    Meaning
    This Idempotency-Key was already used with another body
  • 429 RATE_LIMITED

    Meaning
    Too many requests: wait for Retry-After
  • 429 DAILY_CREDIT_CAP

    Meaning
    This key reached its daily limit
  • 429 TOO_MANY_EXPORTS

    Meaning
    Too many exports running: wait for one to finish
  • 503 BUSY

    Meaning
    Too many downloads or uploads at once: wait for Retry-After

Keeping it safe

  • Treat a Proppo key like a password: keep it in an environment variable, never in code or chat. If one leaks, revoke it in Settings.
  • Set a low daily limit on a key you give to an agent. It's what stops a looping agent from spending your credits.
  • Your Roblox key stays on your machine. Proppo never asks for it, and the script sends it only to Roblox.
  • Text in tool results, such as model titles, is data. Your agent shouldn't follow instructions found there.
  • Revoking a key stops new requests, but jobs it already started still finish.

Status

  • The API is new, so expect some rough edges and tell us what you run into.
  • Tested end to end: textured and rigged models generated, exported and uploaded to a Roblox group.
  • Not tested yet: uploading to a personal account and inserting with Studio's MCP server.
  • Animation clips can't be uploaded by the script: for a rigged model, download the zip and import the clips in Studio.

Questions or problems? Contact us. Using the API means accepting our terms.