---
title: create-integration-store-free-and-paid-plans
product: vercel
url: /docs/rest-api/integrations/create-integration-store-free-and-paid-plans
canonical_url: "https://vercel.com/docs/rest-api/integrations/create-integration-store-free-and-paid-plans"
last_updated: 2026-09-15
type: reference
prerequisites:
  []
related:
  - /docs/rest-api
summary: Learn about create-integration-store-free-and-paid-plans on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

# Create integration store (free and paid plans)

```http
POST /v1/storage/stores/integration/direct
```

Creates an integration store with automatic billing plan handling. For free resources, omit `billingPlanId` to auto-discover free plans. For paid resources, provide a `billingPlanId` from the billing plans endpoint.

## Authentication

**bearerToken**: HTTP bearer

## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `teamId` | string | No | The Team identifier to perform the request on behalf of. |
| `slug` | string | No | The Team slug to perform the request on behalf of. |


## Request body

Required: No

Content-Type: `application/json`

```json
{
  "type": "object",
  "required": [
    "name",
    "integrationConfigurationId",
    "integrationProductIdOrSlug"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Human-readable name for the storage resource",
      "maxLength": 128
    },
    "integrationConfigurationId": {
      "type": "string",
      "description": "ID of your integration configuration. Get this from GET /v1/integrations/configurations",
      "pattern": "^icfg_[a-zA-Z0-9]+$"
    },
    "integrationProductIdOrSlug": {
      "type": "string",
      "description": "ID or slug of the integration product. Get available products from GET /v1/integrations/configuration/{id}/products",
      "oneOf": [
        {
          "description": "Product ID format",
          "pattern": "^iap_[a-zA-Z0-9_]+$"
        },
        {
          "description": "Product slug format",
          "pattern": "^[a-z0-9-]+$"
        }
      ]
    },
    "metadata": {
      "type": "object",
      "description": "Optional key-value pairs for resource metadata",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array"
          },
          {
            "type": "array"
          }
        ]
      }
    },
    "externalId": {
      "type": "string",
      "description": "Optional external identifier for tracking purposes"
    },
    "protocolSettings": {
      "type": "object",
      "description": "Protocol-specific configuration settings",
      "additionalProperties": true
    },
    "source": {
      "type": "string",
      "description": "Source of the store creation request",
      "enum": [
        "marketplace",
        "deploy-button",
        "external",
        "v0",
        "resource-claims",
        "cli",
        "oauth",
        "backoffice",
        "import-recommended-integrations",
        "organization"
      ],
      "default": "marketplace"
    },
    "billingPlanId": {
      "type": "string",
      "description": "ID of the billing plan for paid resources. Get available plans from GET /integrations/integration/{id}/products/{productId}/plans. If not provided, automatically discovers free billing plans."
    },
    "paymentMethodId": {
      "type": "string",
      "description": "Payment method ID for paid resources. Optional - uses default payment method if not provided."
    },
    "prepaymentAmountCents": {
      "type": "number",
      "description": "Amount in cents for prepayment billing plans. Required only for prepayment plans with variable amounts.",
      "minimum": 50
    }
  }
}
```

## Example request

### TypeScript

```typescript
const response = await fetch('https://api.vercel.com/v1/storage/stores/integration/direct?teamId=string&slug=string', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "my-dev-database",
    "integrationConfigurationId": "icfg_cuwj0AdCdH3BwWT4LPijCC7t",
    "integrationProductIdOrSlug": "value",
    "metadata": "[object Object]",
    "externalId": "dev-db-001",
    "protocolSettings": "[object Object]",
    "source": "marketplace",
    "billingPlanId": "bp_abc123def456",
    "paymentMethodId": "pm_1AbcDefGhiJklMno",
    "prepaymentAmountCents": "5000"
  }),
});

const data = await response.json();
console.log(data);
```

### Next.js

```typescript
'use server';

export async function callEndpoint() {
  const response = await fetch('https://api.vercel.com/v1/storage/stores/integration/direct?teamId=string&slug=string', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      "name": "my-dev-database",
      "integrationConfigurationId": "icfg_cuwj0AdCdH3BwWT4LPijCC7t",
      "integrationProductIdOrSlug": "value",
      "metadata": "[object Object]",
      "externalId": "dev-db-001",
      "protocolSettings": "[object Object]",
      "source": "marketplace",
      "billingPlanId": "bp_abc123def456",
      "paymentMethodId": "pm_1AbcDefGhiJklMno",
      "prepaymentAmountCents": "5000"
    }),
    next: { revalidate: 3600 }
  });

  if (!response.ok) {
    throw new Error('Request failed');
  }

  return response.json();
}
```

### cURL

```bash
curl -X POST 'https://api.vercel.com/v1/storage/stores/integration/direct?teamId=string&slug=string' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d "{
    \"name\": \"my-dev-database\",
    \"integrationConfigurationId\": \"icfg_cuwj0AdCdH3BwWT4LPijCC7t\",
    \"integrationProductIdOrSlug\": \"value\",
    \"metadata\": \"[object Object]\",
    \"externalId\": \"dev-db-001\",
    \"protocolSettings\": \"[object Object]\",
    \"source\": \"marketplace\",
    \"billingPlanId\": \"bp_abc123def456\",
    \"paymentMethodId\": \"pm_1AbcDefGhiJklMno\",
    \"prepaymentAmountCents\": \"5000\"
  }"
```

## Example response

```json
{
  "store": {
    "projectsMetadata": [
      {
        "id": "icfg_1234567890",
        "projectId": "example_id",
        "name": "Example Name",
        "framework": "actix-web",
        "latestDeployment": "string",
        "environments": [],
        "envVarPrefix": "string",
        "environmentVariables": [],
        "deployments": {},
        "makeEnvVarsSensitive": "false"
      }
    ],
    "projectFilter": {
      "git": {}
    },
    "totalConnectedProjects": "123",
    "usageQuotaExceeded": "false",
    "status": "available",
    "ownership": "linked",
    "capabilities": {
      "mcp": "false",
      "mcpReadonly": "false",
      "sso": "false",
      "billable": "false",
      "transferable": "false",
      "secretsSync": "false",
      "secretRotation": {},
      "projects": "false",
      "v0": "false",
      "autoSensitive": "false",
      "agentTools": "false"
    },
    "metadata": "value",
    "externalResourceId": "example_id",
    "externalResourceStatus": "error",
    "directPartnerConsoleUrl": "https://example.com",
    "product": {
      "id": "icfg_1234567890",
      "name": "Example Name",
      "slug": "string",
      "iconUrl": "https://example.com",
      "capabilities": {},
      "shortDescription": "string",
      "metadataSchema": {},
      "resourceLinks": [
        {}
      ],
      "tags": [],
      "projectConnectionScopes": [],
      "showSSOLinkOnProjectConnection": "false",
      "disableResourceRenaming": "false",
      "resourceTitle": "Instance",
      "agentSkills": [],
      "repl": {},
      "guides": [
        {}
      ],
      "integration": {},
      "integrationConfigurationId": "example_id",
      "supportedProtocols": [],
      "primaryProtocol": "ai",
      "logDrainStatus": "disabled"
    },
    "protocolSettings": {
      "experimentation": {},
      "authentication": {}
    },
    "notification": {
      "title": "string",
      "level": "error",
      "message": "string",
      "href": "string"
    },
    "secrets": [
      {
        "name": "Example Name",
        "length": "123",
        "frameworkPublishable": "false"
      }
    ],
    "billingPlan": {
      "id": "icfg_1234567890",
      "type": "prepayment",
      "description": "string",
      "name": "Example Name",
      "scope": "installation",
      "paymentMethodRequired": "false",
      "preauthorizationAmount": "123",
      "initialCharge": "string",
      "minimumAmount": "100.00",
      "maximumAmount": "100.00",
      "maximumAmountAutoPurchasePerPeriod": "100.00",
      "cost": "string",
      "details": [
        {}
      ],
      "highlightedDetails": [
        {}
      ],
      "quote": [
        {}
      ],
      "effectiveDate": "string",
      "disabled": "false"
    },
    "secretRotationRequestedAt": "123",
    "secretRotationRequestedReason": "Customer requested refund",
    "secretRotationRequestedBy": "string",
    "secretRotationCompletedAt": "123",
    "parentId": "example_id",
    "targets": []
  }
}
```

## Responses

### 200: No description

Content-Type: `application/json`

```json
{
  "type": "object",
  "required": [
    "store"
  ],
  "properties": {
    "store": {
      "type": "object",
      "nullable": true,
      "required": [
        "externalResourceId",
        "product",
        "projectsMetadata",
        "secrets",
        "status",
        "usageQuotaExceeded"
      ],
      "properties": {
        "projectsMetadata": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "envVarPrefix",
              "environmentVariables",
              "environments",
              "id",
              "name",
              "projectId"
            ]
          }
        },
        "projectFilter": {
          "type": "object",
          "properties": {
            "git": {
              "type": "object",
              "required": [
                "providers"
              ]
            }
          }
        },
        "totalConnectedProjects": {
          "type": "number"
        },
        "usageQuotaExceeded": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "available",
            "error",
            "initializing",
            "limits-exceeded-suspended",
            "limits-exceeded-suspended-store-count",
            "onboarding",
            "suspended",
            "uninstalled",
            null
          ],
          "nullable": true
        },
        "ownership": {
          "type": "string",
          "enum": [
            "linked",
            "owned",
            "sandbox"
          ]
        },
        "capabilities": {
          "type": "object",
          "properties": {
            "mcp": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "mcpReadonly": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "sso": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "billable": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "transferable": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "secretsSync": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "secretRotation": {},
            "projects": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "v0": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "autoSensitive": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "agentTools": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            }
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {}
        },
        "externalResourceId": {
          "type": "string"
        },
        "externalResourceStatus": {
          "type": "string",
          "enum": [
            "error",
            "onboarding",
            "pending",
            "ready",
            "resumed",
            "suspended",
            "uninstalled",
            null
          ],
          "nullable": true
        },
        "directPartnerConsoleUrl": {
          "type": "string"
        },
        "product": {
          "type": "object",
          "required": [
            "integration",
            "integrationConfigurationId",
            "supportedProtocols"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "iconUrl": {
              "type": "string"
            },
            "capabilities": {
              "type": "object"
            },
            "shortDescription": {
              "type": "string"
            },
            "metadataSchema": {
              "type": "object",
              "required": [
                "properties",
                "type"
              ]
            },
            "resourceLinks": {
              "type": "array"
            },
            "tags": {
              "type": "array"
            },
            "projectConnectionScopes": {
              "type": "array"
            },
            "showSSOLinkOnProjectConnection": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "disableResourceRenaming": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "resourceTitle": {
              "type": "string",
              "description": "Custom resource title to display during installation and configuration. If not provided, defaults to protocol-based defaults."
            },
            "agentSkills": {
              "type": "array",
              "description": "URLs to skills/guides for how AI agents should use this product. Providers can specify these to help agents understand how to interact with their integration."
            },
            "repl": {
              "type": "object",
              "required": [
                "enabled",
                "supportsReadOnlyMode"
              ]
            },
            "guides": {
              "type": "array"
            },
            "integration": {
              "type": "object",
              "required": [
                "icon",
                "id",
                "name",
                "slug"
              ]
            },
            "integrationConfigurationId": {
              "type": "string"
            },
            "supportedProtocols": {
              "type": "array"
            },
            "primaryProtocol": {
              "type": "string",
              "enum": [
                "ai",
                "authentication",
                "checks",
                "experimentation",
                "logDrain",
                "messaging",
                "observability",
                "other",
                "storage",
                "traceDrain",
                "video",
                "workflow"
              ]
            },
            "logDrainStatus": {
              "type": "string",
              "enum": [
                "disabled",
                "enabled"
              ]
            }
          }
        },
        "protocolSettings": {
          "type": "object",
          "properties": {
            "experimentation": {
              "type": "object"
            },
            "authentication": {
              "type": "object"
            }
          }
        },
        "notification": {
          "type": "object",
          "required": [
            "level",
            "title"
          ],
          "properties": {
            "title": {
              "type": "string"
            },
            "level": {
              "type": "string",
              "enum": [
                "error",
                "info",
                "warn"
              ]
            },
            "message": {
              "type": "string"
            },
            "href": {
              "type": "string"
            }
          }
        },
        "secrets": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "length",
              "name"
            ]
          }
        },
        "billingPlan": {
          "type": "object",
          "required": [
            "description",
            "id",
            "name",
            "paymentMethodRequired",
            "scope",
            "type"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "type": {
              "type": "string",
              "enum": [
                "prepayment",
                "subscription"
              ]
            },
            "description": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "scope": {
              "type": "string",
              "enum": [
                "installation",
                "resource"
              ]
            },
            "paymentMethodRequired": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            },
            "preauthorizationAmount": {
              "type": "number"
            },
            "initialCharge": {
              "type": "string"
            },
            "minimumAmount": {
              "type": "string"
            },
            "maximumAmount": {
              "type": "string"
            },
            "maximumAmountAutoPurchasePerPeriod": {
              "type": "string"
            },
            "cost": {
              "type": "string"
            },
            "details": {
              "type": "array"
            },
            "highlightedDetails": {
              "type": "array"
            },
            "quote": {
              "type": "array"
            },
            "effectiveDate": {
              "type": "string"
            },
            "disabled": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            }
          }
        },
        "secretRotationRequestedAt": {
          "type": "number",
          "description": "The timestamp when secret rotation was requested."
        },
        "secretRotationRequestedReason": {
          "type": "string",
          "description": "The reason for the secret rotation request."
        },
        "secretRotationRequestedBy": {
          "type": "string",
          "description": "The ID of the user/team who requested the secret rotation."
        },
        "secretRotationCompletedAt": {
          "type": "number",
          "description": "The timestamp when secret rotation was completed."
        },
        "parentId": {
          "type": "string",
          "description": "The ID of the parent resource. Used to establish a parent-child relationship between resources, such as sandbox resources linking to their owner account resource."
        },
        "targets": {
          "type": "array",
          "description": "The deployment targets that this resource is available for.",
          "items": {
            "type": "string",
            "description": "The deployment targets that this resource is available for.",
            "enum": [
              "development",
              "preview",
              "production"
            ]
          }
        }
      }
    }
  }
}
```

### 400: One of the provided values in the request body is invalid.

### 401: The request is not authorized.

### 402: The account is missing a payment so payment method must be updated

### 403: You do not have permission to access this resource.

### 404: No description

### 409: No description

### 410: No description

### 500: No description

---

## Related

- [integrations endpoints](/docs/rest-api#integrations)

- [REST API overview](/docs/rest-api)

- [OpenAPI spec](https://openapi.vercel.sh/) (machine-readable, all endpoints)

---

[View full sitemap](/docs/sitemap)
