close
Skip to content
  • Function invocations now billed per unit

    Function invocations are moving from package-based to per-unit pricing for Pro and new Enterprise customers. You’ll continue paying the same effective rate until the end of your current billing cycle. Starting with your next billing cycle you’ll be billed per unit to align costs directly with your usage.

    The new rate is $0.0000006 per invocation (previously $0.60 per 1M invocations) for Pro customers.

    Per‑unit billing scales more smoothly across team sizes and usage patterns. It also helps teams on Pro use function invocations without immediately consuming a large portion of the included monthly usage credit.

    Get started or learn more about Vercel Functions usage and pricing.

    BERJAYABERJAYA

    Pranav Kanchi, Wilson Wang

  • Run Docker containers inside Vercel Sandbox

    Vercel Sandbox now supports installing and running Docker inside a sandbox. An agent can build containers, install system packages, and modify files without touching your host system.

    Install Docker, start the daemon, and serve a containerized application:

    import { Sandbox } from "@vercel/sandbox";
    const sandbox = await Sandbox.create();
    await sandbox.runCommand({
    sudo: true,
    cmd: "dnf",
    args: ["install", "-y", "docker"]
    });
    // Start docker daemon and wait for it to be ready
    await sandbox.runCommand({ sudo: true, cmd: "dockerd", detached: true });
    await sandbox.runCommand({
    cmd: "sh",
    args: [ "-lc", "until sudo docker info >/dev/null 2>&1; do sleep 1; done"]
    });
    await sandbox.runCommand({
    cmd: "docker",
    args: [
    "run", "--rm", "-d",
    "--name", "redis",
    "redis:alpine"
    ]
    });
    await sandbox.runCommand({
    cmd: "docker",
    args: ["exec", "redis", "redis-cli", "PING" ]
    });

    Docker in a Sandbox is useful for running containerized services like Redis or Postgres as test dependencies, validating container images before deploying, or previewing applications served from a container. Combined with persistent sandboxes, the Docker installation and pulled images carry over between sessions.

    As well as adding support for Docker, sandboxes now support FUSE filesystem drivers and VPN clients, unlocking unlimited capabilities to what can be built.

    Learn more about these new system specifications in the documentation.

    BERJAYA

    Brandon Tuttle

  • Port 8080 is now available in Vercel Sandboxes

    Vercel Sandboxes now allow opening and binding to port 8080 as an ingress domain.

    This port was used as a controller port, and that has now moved to port 23456.

    import { Sandbox } from "@vercel/sandbox";
    const sandbox = await Sandbox.create({
    ports: [8080],
    });
    await sandbox.runCommand({
    cmd: "python3",
    args: ["-m", "http.server", "8080", "--bind", "0.0.0.0"],
    detached: true,
    });
    console.log(`url: ${sandbox.domain(8080)}`);

    Create a sandbox with port 8080 open

    Learn more about Sandbox in the documentation.

    BERJAYABERJAYABERJAYA+2

    Marc C, Tom L, Andy W, Luke P

  • Opus 4.8 on AI Gateway

    Claude Opus 4.8 is now available on Vercel AI Gateway.

    Claude Opus 4.8 is built for long-horizon agentic execution and handles complex, multi-step coding tasks like refactors that previously required human correction mid-task. The model also produces clearer, less hedgy prose for knowledge work like drafting documents, analyzing data, and building presentations.

    To use Opus 4.8, set model to anthropic/claude-opus-4.8 in the AI SDK.

    import { streamText } from 'ai';
    const result = streamText({
    model: 'anthropic/claude-opus-4.8',
    prompt: 'Find and fix the root cause of these intermittent test failures.',
    providerOptions: {
    anthropic: {
    thinking: { type: 'adaptive' },
    effort: 'high',
    },
    },
    });

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in custom reporting, Zero Data Retention support, dynamic provider sorting by latency & cost, and more. AI Gateway reflects provider pricing with no markup and does not charge a platform fee on inference, including on Bring Your Own Key (BYOK) requests.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.

  • Team-wide provider allowlist on AI Gateway

    AI Gateway now supports a team-wide provider allowlist. Teams can restrict which providers can serve requests, so traffic only routes to approved providers. The allowlist applies to every request through AI Gateway, including Bring Your Own Key (BYOK) traffic.

    Regulated teams typically vet AI providers across multiple dimensions with security and legal sign-off, ending up with a vendor set that reflects the specific requirements of their org. The allowlist turns that approved-vendor list into a routing guarantee:

    • Enforcement happens at the gateway level, not at the request level. A developer on the team cannot route traffic to a provider the org hasn't approved.

    • This restriction also applies to coding agents. Even if an agent omits or modifies request-level provider filters, AI Gateway still blocks unapproved providers.

    • Only team owners can modify the provider allowlist, keeping control centralized and auditable.

    • New providers are disabled by default once the allowlist is on, so the approved set doesn't silently expand when AI Gateway integrates a new vendor.

    Link to headingHow to configure

    BERJAYABERJAYA

    Toggle on Provider Allowlist in the AI Gateway Settings tab. All current providers are allowed by default, so existing traffic is unaffected. Disable any providers your team shouldn't use.

    The allowlist filters by provider, not by model. AI Gateway falls back to other allowed providers for the same model if the initial provider fails. The allowlist also functions as an and with other restrictions applied to the team, like Zero Data Retention (ZDR) or request-level filtering.

    For example, if a team has disabled DeepSeek in their allowlist and a request pins routing to only the DeepSeek provider:

    import { streamText } from 'ai';
    const result = streamText({
    model: 'deepseek/deepseek-v4-pro',
    prompt,
    providerOptions: {
    gateway: {
    only: ['deepseek'],
    },
    },
    });

    Removes all routing options except for the DeepSeek provider

    Since DeepSeek is not in the allowlist, AI Gateway rejects the request.

    {
    "error": {
    "type": "no_providers_available",
    "message": "Your team has restricted access to this provider. Contact the owner of the account for more details. Providers considered: deepseek"
    }
    }

    Error when accessing provider that is not in the allowlist

    Provider Allowlist works across every API format supported by AI Gateway, including AI SDK, OpenAI Chat Completions API, and Anthropic Messages API.

    Read the provider allowlist documentation for more information. For other account-level security and compliance functionality, check the Zero Data Retention and Disallow Prompt Training documentation.

  • Amazon OpenSearch Serverless is now available in the Vercel Marketplace

    Amazon OpenSearch Serverless is now available in the Vercel Marketplace, with guided setup and automatic project configuration built into the Vercel dashboard.

    Link to headingBuilt for agentic infrastructure

    By bringing Amazon OpenSearch Serverless into the Vercel Marketplace, teams benefit from a unified workflow:

    • In-dashboard provisioning: Spin up OpenSearch collections directly from the Vercel dashboard

    • Automatic configuration: Environment variables are automatically injected into your projects on provisioning

    • Unified management: View and manage search resources alongside the rest of your application infrastructure in the Marketplace resource view, with quick links to AWS for deeper configuration

    lib/opensearch.ts
    import { createOpenSearch } from '@vercel/aws';
    const os = createOpenSearch();

    An OpenSearch client authenticated through Vercel OIDC, with no static AWS keys.

    app/api/ask/route.ts
    import { opensearch } from "@/lib/opensearch";
    import { embed, generateText } from "ai";
    export async function POST(req: Request) {
    const { question } = await req.json();
    // Turn the question into a vector
    const { embedding } = await embed({
    model: "openai/text-embedding-3-small",
    value: question,
    });
    // Retrieve the 5 most semantically similar docs
    const { body } = await opensearch.search({
    index: "docs",
    body: {
    size: 5,
    query: { knn: { embedding: { vector: embedding, k: 5 } } },
    },
    });
    const context = body.hits.hits
    .map((h: any) => h._source.content)
    .join("\n\n");
    // Answer grounded in the retrieved context
    const { text } = await generateText({
    model: "anthropic/claude-sonnet-4-5",
    prompt: `Answer using only this context:\n\n${context}\n\nQuestion: ${question}`,
    });
    return Response.json({ answer: text });
    }

    A RAG route that embeds the question, retrieves the top-5 nearest documents from OpenSearch, and answers grounded in them.

    This integration is powered by the next generation of Amazon OpenSearch Serverless APIs, with Vercel participating as a key design partner alongside AWS during development.

    • Unified support for vector, lexical, hybrid, and agentic search in a single collection

    • Autoscales up to 20× faster, built for the bursty, unpredictable load patterns of agentic workloads

    • Scale to zero with no idle costs

    • Up to 60% cost savings by paying for actual usage instead of peak capacity

    Link to headingGet started

    To help you get started, you can create a new AWS Account directly through Vercel and receive $100 USD in credits to try Amazon OpenSearch Serverless. If you already have an active AWS account, you can link it instantly, manage your plan, and view usage details right from your Vercel dashboard.

    Ready to build? Install Amazon OpenSearch from the Vercel Marketplace or deploy a starter template to see the integration in action.

    BERJAYABERJAYA

    Michael Toth, Hedi Zandi

  • Experimental native binaries for Vercel CLI

    The Vercel CLI now ships an optional experimental native binary that starts faster, is even more secure, and requires no Node.js runtime dependency.

    Binaries are code-signed, allowing your OS to verify that they came from Vercel and haven't been modified. Additionally, on macOS, credentials are stored in the system Keychain scoped to the binary, so other processes cannot access them without explicit permission.

    You can opt in by installing the experimental package:

    pnpm i -g @vercel/vc-native -f

    The -f flag is required because @vercel/vc-native installs the same global vercel and vc bin names as the standard CLI. Once installed, vercel and vc run the native binary across macOS, Linux, and Windows on x64 and arm64.

    Let us know what you think on GitHub.

  • Redesigned Deployments List

    Deployments List DarkDeployments List Dark

    The deployments list has been redesigned with a denser layout, so you can see more deployments at once. Environments are now grouped with statuses, and the updated layout makes branches and commits easier to scan. The mobile experience has also been improved, making it easier to scan deployment activity on busy projects.
    Open your dashboard to see the updated design.