---
title: "Provision a Vercel Marketplace resource"
method: POST
path: "/v1/installations/{installationId}/resources"
tags: ["Vercel Resources"]
---

# Provision a Vercel Marketplace resource

`POST /v1/installations/{installationId}/resources`

## Request

- Base URL: `https://api.xata.tech`
- URL: `https://api.xata.tech/v1/installations/{installationId}/resources`
- Auth: none declared

Create a resource (a Xata project and its branches) and return it with
the connection secrets. Vercel calls this when a customer creates a
resource. Idempotent when an Idempotency-Key header is sent: a retry with
the same key returns the existing resource unchanged, and reusing the key
with a different body is a conflict (409). Without the header there is no
stable key, so each call provisions a new resource.

## Path parameters

- `installationId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- ProvisionResourceRequest: Vercel Provision Resource request body.
  - `productId` string, required: The partner-specific product id/slug.
  - `name` string, required: User-inputted resource name.
  - `metadata` object, required: User-inputted metadata based on the registered metadata schema.
  - `billingPlanId` string, required: Selected Vercel billing plan id.
  - `externalId` string: Partner-provided identifier indicating the source of provisioning.

## Response `200`

The provisioned resource, with connection secrets.

- ProvisionedResource: A newly provisioned resource: the Resource fields plus the connection secrets. Provision Resource is the only endpoint that returns secrets.
  - `id` string, required: The partner-specific resource id.
  - `productId` string, required: The partner-specific product id/slug.
  - `name` string, required: User-inputted resource name.
  - `metadata` object, required: User-inputted metadata based on the registered metadata schema.
  - `status` string, required: Resource lifecycle status. One of Vercel's values: ready, pending, onboarding, suspended, resumed, uninstalled, error.
  - `secrets` Secret[], required: Connection secrets that become environment variables on connected projects.
    - `name` string, required: Environment variable name.
    - `value` string, required: Default value, used when no per-environment override applies.
    - `environmentOverrides` object: Per-environment values that override value for that Vercel environment.
      - `development` string
      - `preview` string
      - `production` string

## Other responses

- `400`: Error response.
- `403`: Error response.
- `404`: Error response.
- `409`: Error response.
- `429`: Error response.
- `500`: Error response.
- `503`: Error response.

## Changes

- **2026-10-05** `ea9943a49821`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xataio/apis/xata-api/changes/v1/installations/:installationId/resources/post.md)

---

[API](https://skmtc.dev/xataio/apis/xata-api.md) - [All operations](https://skmtc.dev/xataio/apis/xata-api/llms.txt) - [OpenAPI document](https://skmtc.dev/xataio/apis/xata-api/revisions/4bc5ad58a6c6?raw)
