POST /v1/storage/stores/integration/direct
Creates an integration store for both FREE and PAID billing plans. This simplified endpoint automatically provisions real integration storage resources while handling billing complexity behind the scenes. It supports both free and paid billing plans with automatic authorization creation for paid resources. ## How it works 1. Validates the integration configuration and product 2. For free resources: Auto-discovers available free billing plans 3. For paid resources: Creates billing authorization inline using provided billingPlanId 4. Provisions real resources through the Vercel Marketplace 5. Returns the created store with connection details ## Workflow Before using this endpoint, discover available products and billing plans: 1. List your configurations: GET /v1/integrations/configurations
2. Get products for a configuration: GET /v1/integrations/configuration/{id}/products
3. Get billing plans for a product: GET /integrations/integration/{integrationId}/products/{productId}/plans
4. Review the metadataSchema
for each product to understand required metadata 5. Create storage with discovered product: POST /v1/storage/stores/integration/direct
## Usage Patterns - Free resources: Omit billingPlanId
- endpoint will auto-discover free plans - Paid resources: Provide billingPlanId
from billing plans discovery - Prepayment plans: Also provide prepaymentAmountCents
for variable amount plans ## Limitations - Admin access required: Only integration configuration admins can create stores - Storage limits apply: Subject to your team's storage quotas - Payment method required: For paid plans, ensure valid payment method is configured ## Error Responses - 400 Bad Request
: Invalid input, no plans available, or billing issues - 403 Forbidden
: Insufficient permissions (non-admin users) - 404 Not Found
: Integration configuration or product not found - 429 Too Many Requests
: Rate limit exceeded
Servers
- https://api.vercel.com
Request headers
Name | Type | Required | Description |
---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
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 fields
Name | Type | Required | Description |
---|---|---|---|
source |
String | No |
Source of the store creation request Default value: "marketplace" |
billingPlanId |
String | No |
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. |
integrationConfigurationId |
String | Yes |
ID of your integration configuration. Get this from GET /v1/integrations/configurations |
name |
String | Yes |
Human-readable name for the storage resource |
paymentMethodId |
String | No |
Payment method ID for paid resources. Optional - uses default payment method if not provided. |
externalId |
String | No |
Optional external identifier for tracking purposes |
integrationProductIdOrSlug |
String | Yes |
ID or slug of the integration product. Get available products from GET /v1/integrations/configuration/{id}/products |
metadata |
Object | No |
Optional key-value pairs for resource metadata |
protocolSettings |
Object | No |
Protocol-specific configuration settings |
prepaymentAmountCents |
Number | No |
Amount in cents for prepayment billing plans. Required only for prepayment plans with variable amounts. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.