Developers

VULK is callable

Build VULK projects from Claude Desktop, Cursor, ChatGPT, custom GPTs, or any OpenAPI-aware agent. Public REST API + machine-readable spec.

TL;DR

Generate an API key in your VULK settings, point your agent at https://vulk.dev/openapi.json, and call POST https://app.vulk.dev/api/v1/projects with { "prompt": "..." }. Auth is Authorization: Bearer vk_.... Cost is debited from the user’s credit balance.

Discovery

OpenAPI 3.1 spec

Every public endpoint is described in a machine-readable spec at https://vulk.dev/openapi.json. Drop the URL into Claude Desktop, Cursor, ChatGPT custom GPT, or any tool that imports OpenAPI — the agent gets typed tools for every operation, with descriptions, request shapes, and error codes.

MethodPathPurpose
POST/projectsCreate a project from a prompt
GET/projectsList the user’s projects
GET/projects/{id}Fetch a single project
GET/projects/{id}/filesFetch every file in a project
DELETE/projects/{id}Delete a project
GET/credits/balanceCheck credits before generating
GET/modelsList available models
GET/usageAPI-key usage stats

Base URL: https://app.vulk.dev/api/v1

Quickstart

Generate a project from curl

curl -X POST https://app.vulk.dev/api/v1/projects \
  -H "Authorization: Bearer vk_$YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Build a SaaS dashboard with auth + Stripe + Postgres" }'

# → 201 Created
# {
#   "project": {
#     "id": "8c1a2b3d-...",
#     "prompt": "Build a SaaS dashboard with auth + Stripe + Postgres",
#     "createdAt": "2026-05-08T..."
#   }
# }

Generation runs asynchronously. Poll GET /projects/{id} for status, or fetch the source tree via GET /projects/{id}/files once ready.

MCP

Claude Desktop, Cursor, Windsurf

For native tool-calling without writing HTTP code, install the VULK MCP server. The MCP client auto-exposes vulk_generate, vulk_export, and vulk_deploy as native tools.

{
  "mcpServers": {
    "vulk": {
      "command": "npx",
      "args": ["vulk-mcp-server"],
      "env": {
        "VULK_API_KEY": "vk_your_key_here"
      }
    }
  }
}

Drop into ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop) or ~/.cursor/mcp.json (Cursor). See the vulk-mcp-server npm page for the full tool list.

Auth

Keys, rate limits, and credits

  • Generate keys at app.vulk.dev/settings/api-keys. Each key is scoped to a single user account and starts with vk_. Revoke any time.
  • Auth header: Authorization: Bearer vk_<key>. No query parameter, no cookie auth — Bearer only.
  • Rate limits are enforced via the credit ledger, not a per-second quota. Each generation debits credits based on prompt complexity and model. Check GET /credits/balance before triggering a generation; you’ll get HTTP 402 if the user is out of credits.
  • Errors: 401 = bad key, 402 = no credits, 404 = project not owned by this key, 400 = missing prompt.

Beta — limits in effect

  • 30 project creates per 5 minutes per API key. Beyond that the API returns HTTP 429 with a Retry-After header.
  • Floor of 25 credits checked synchronously when calling POST /projects. Below that the API returns HTTP 402 with the current balance — the user needs to top up before retrying.
  • model parameter is whitelisted against the live catalog. Unknown ids return HTTP 400. Call GET /models for the current set.
  • Treat deploymentUrl and deployedUrl as the same field — one or the other is set depending on which endpoint returned the project. Legacy DB artifact ( #318 ).
  • Never put your API key in browser code. The API has no CORS headers — keys belong server-side or in MCP-client configs only.

Start Building Apps with AI Today

Start Building
VULK for Developers — Public API + Agent Tools | VULK