# Vercel Emulator (service host) Create an instance: curl -s -X POST https://vercel.emulators.dev/_emulate/instances # Hosted deployments create instances lazily when the returned URL is first used. The instance URL is a capability: anyone who has it can read and modify the instance, so save the returned URLs. Never store real secrets in an emulator. # The server generates an unguessable name. An optional {"instance":""} body adds a readable prefix. Then use the returned providerBaseUrl / controlBaseUrl. Example below uses a sample instance. # Vercel Emulator Stateful Vercel API emulator for projects, deployments, domains, teams, users, env vars, and integration OAuth flows. Provider base URL: https://vercel.your-instance.emulators.dev Control base URL: https://vercel.your-instance.emulators.dev/_emulate Supported surfaces: - REST API: partial at / - Integration OAuth: supported at /oauth Control endpoints: - https://vercel.your-instance.emulators.dev/_emulate/manifest - https://vercel.your-instance.emulators.dev/_emulate/coverage - https://vercel.your-instance.emulators.dev/_emulate/connections - https://vercel.your-instance.emulators.dev/_emulate/state - https://vercel.your-instance.emulators.dev/_emulate/ledger - https://vercel.your-instance.emulators.dev/_emulate/faults - POST https://vercel.your-instance.emulators.dev/_emulate/credentials - POST https://vercel.your-instance.emulators.dev/_emulate/seed - POST https://vercel.your-instance.emulators.dev/_emulate/reset Fault injection: Arm a one-shot provider failure with a glob pathPattern, then inspect /ledger for faulted: true. curl -s -X POST https://vercel.your-instance.emulators.dev/_emulate/faults \ -H "content-type: application/json" \ -d '{"match":{"method":"GET","pathPattern":"/v1/*"},"response":{"status":503,"body":{"error":"temporary"}}}' Connect: ## Vercel SDK (TypeScript) import { Vercel } from "@vercel/sdk"; const vercel = new Vercel({ serverURL: "https://vercel.your-instance.emulators.dev", bearerToken: "", }); const { projects } = await vercel.projects.getProjects({}); ## fetch (TypeScript) const res = await fetch("https://vercel.your-instance.emulators.dev/v2/user", { headers: { authorization: "Bearer " }, }); const { user } = await res.json(); ## Vercel API base URL (env) VERCEL_API_URL=https://vercel.your-instance.emulators.dev VERCEL_TOKEN= ## curl curl -s https://vercel.your-instance.emulators.dev/v2/user -H "authorization: Bearer " ## Base URL (env) VERCEL_BASE_URL=https://vercel.your-instance.emulators.dev ## Create a credential curl -s -X POST https://vercel.your-instance.emulators.dev/_emulate/credentials \ -H "content-type: application/json" \ -d '{"type":"bearer-token"}' ## Inspect requests curl -s https://vercel.your-instance.emulators.dev/_emulate/ledger