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_sk_.... 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/projectsStart a build from a brief
GET/projectsList the account’s projects
GET/projects/{id}Read a project, its versions and addresses
DELETE/projects/{id}Delete a project
GET/projects/{id}/filesRead the delivered files, or one file
POST/projects/{id}/messagesSend the next instruction, or answer a question
GET/operations/{requestId}Follow a build: status, replies, questions, links
POST/operations/{requestId}/stopStop a running build
GET/modelsThe models your account may use
GET/usagePlan, credit balance and the last 30 days

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_sk_$YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Build a SaaS dashboard with auth + Stripe + Postgres",
        "requestId": "7a1c0b7e-6a0f-4b0e-9a63-0f5c1b2d3e4f" }'

# → 202 Accepted
# {
#   "requestId": "7a1c0b7e-6a0f-4b0e-9a63-0f5c1b2d3e4f",
#   "accepted": true,
#   "operationStatus": "running",
#   "projectId": "cmgp3x8d7000a0wz4h2k1qv9r",
#   "editorUrl": "https://app.vulk.dev/chat/cmgp3x8d7000a0wz4h2k1qv9r",
#   "nextAction": "Read GET /operations/7a1c0b7e-… until operationStatus is done, waiting or failed."
# }

curl https://app.vulk.dev/api/v1/operations/7a1c0b7e-6a0f-4b0e-9a63-0f5c1b2d3e4f \
  -H "Authorization: Bearer vk_sk_$YOUR_KEY"

Generation runs asynchronously. Poll GET /operations/{requestId} 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 create_project, get_project_files, and deploy_project as native tools.

{
  "mcpServers": {
    "vulk": {
      "command": "npx",
      "args": ["vulk-mcp-server"],
      "env": {
        "VULK_API_KEY": "vk_sk_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.

Or connect with your VULK account

If your client supports remote MCP servers with sign-in, you need no API key. Add the address below to your client, and it sends you to VULK to sign in and allow access.

https://app.vulk.dev/mcp

The connection can read your projects (and, on a paid plan, their files), plus your plan, credits and usage. It can also create a project or send the next instruction to one, using your plan’s credits as the editor does, and stop a running request. You can remove it at any time in your VULK settings, under Integrations.

Setup steps and the tool list are in the MCP docs.

Auth

Keys, rate limits, and credits

  • Create keys in Settings › API keys. Each key belongs to one account, carries the scopes you choose, and starts with vk_sk_. Revoke any time.
  • Auth header: Authorization: Bearer vk_sk_<key>. No query parameter, no cookie auth — Bearer only.
  • Rate limit: 60 requests per minute per key. Every answer carries X-RateLimit-* headers; past the limit the API returns HTTP 429 with Retry-After. Reads never spend credits; a build the plan or balance does not cover returns HTTP 402.
  • Errors share one shape — error, code, status: 400 = a wrong field, 401 = no or invalid key, 402 = plan or credits do not cover it, 403 = the key lacks the scope, 404 = not on this account, 409 = no delivered files yet, 413 = body over 64 KB, 429 = rate limit.

API usage rules

  • 60 requests per minute per API key. Beyond that the API returns HTTP 429 with a Retry-After header.
  • Builds spend your plan’s credits. POST /projects starts a build as the editor would; a brief the plan or balance does not cover returns HTTP 402 before anything starts.
  • The model parameter takes a model id from GET /models, or auto. A model your plan does not include is listed as locked, with the plan that unlocks it, and returns HTTP 402.
  • Retry with the same requestId. Send a UUID you make with every build; if the answer is lost, the same requestId returns the operation already created instead of starting a second one. Bodies are JSON, at most 64 KB.
  • Never put your API key in browser code. The API answers any origin (CORS) so tools can call it, but a key belongs server-side or in an MCP-client config, never in a page.

Your idea, built and live in minutes.

Build my app
VULK Support

Online

Hi! How can I help you today?

Popular topics

AI support • support.vulk.dev