• Getting Started
    • Projects and Deployments
    • Use a Template
    • Import Existing Project
    • Add a Domain
    • Buy a Domain
    • Transfer an Existing Domain
    • Collaborate
    • Next Steps
  • Supported Frameworks
    • Next.js
    • SvelteKit
    • Astro
    • Nuxt
    • Vite
    • React Router
    • Remix
    • Gatsby
    • Create React App
    • All Frameworks
  • Incremental Migration
  • Production Checklist
  • Guides

  • Access
    • Account Management
    • Activity Log
    • Deployment Protection
      • Bypass Deployment Protection
        • Exceptions
        • OPTIONS Allowlist
        • Protection Bypass for Automation
        • Sharable Links
      • Protect Deployments
        • Password Protection
        • Trusted IPs
        • Vercel Authentication
    • Directory Sync
    • SAML SSO
    • Two-factor (2FA)
  • AI
    • v0
      • Workflows
        • Figma Prototypes
        • Screenshot Prototypes
        • Full Stack App
      • Cursor
      • Model API
      • Codex
      • Cline
      • Guides
        • Update Community Project
    • AI SDK
    • Agents
    • AI Gatewaybeta
      • Observability
      • Pricing
    • MCP
    • Integrations
      • Adding a Provider
      • Adding a Model
      • xAI
      • Groq
      • fal
      • Deep Infra
      • ElevenLabs
      • LMNT
      • OpenAI
      • Perplexity
      • Pinecone
      • Replicate
      • Together AI
  • API
    • REST API
    • Vercel SDK
  • Build & Deploy
    • Builds
      • Build Features
      • Build Image
        • Build Image Installed Packages
      • Build Queues
      • Configuring a Build
      • Managing Builds
    • Deploy Hooks
    • Deployment Retention
    • Deployments
      • Environments
      • Generated URLs
      • Managing Deployments
      • Promoting Deployments
      • Troubleshoot Build Errors
      • Accessing Build Logs
      • Claim Deployments
      • Inspect OG Metadata
      • Preview Deployment Suffix
      • Sharing a Preview Deployment
    • Environment Variables
      • Framework Environment Variables
      • Managing Environment Variables
      • Reserved Environment Variables
      • Sensitive Environment Variables
      • Shared Environment Variables
      • System Environment Variables
    • Git Integrations
      • GitHub
      • Azure DevOps
      • Bitbucket
      • GitLab
    • Instant Rollback
    • Microfrontendsbeta
      • Getting Started
      • Local Development
      • Path Routing
      • Managing Microfrontends
        • Security
        • Using Vercel Toolbar
      • Testing & Troubleshooting
    • Monorepos
      • Turborepo
      • Remote Caching
      • Nx
      • Monorepos FAQ
    • Package Managers
    • Protected Git Scopes
    • Rolling Releases
    • Skew Protection
    • Webhooks
      • Webhooks API Reference
  • CDN
    • Data Cache
      • Manage Data Cache
    • Domains
      • Working with Domains
        • Adding a Domain
        • Adding a Domain to an Environment
        • Assigning a Domain to a Git Branch
        • Deploying & Redirecting Domains
        • Removing a Domain
        • Renewing a Domain
        • Transferring Domains
        • Viewing & Searching Domains
      • Working with DNS
      • Managing DNS Records
      • Working with Nameservers
      • Managing Nameservers
      • Working with SSL
      • Custom SSL Certificates
      • Pre-Generate SSL Certificates
      • Supported Domains
      • Troubleshooting Domains
    • Edge Cache
    • Edge Network
      • Regions
      • Compression
      • Manage Usage
    • Encryption
    • Headers
      • Security Headers
      • Cache-Control Headers
      • Request Headers
      • Response Headers
    • Image Optimization
      • Getting Started
      • Limits and Pricing
      • Managing Usage & Costs
      • Legacy Pricing
    • Redirects
    • Rewrites
  • Collaboration
    • Comments
      • Enabling Comments
      • Using Comments
      • Managing Comments
      • Integrations
    • Draft Mode
    • Edit Mode
    • Feature Flags
      • Flags Explorer
        • Getting Started
        • Reference
        • Pricing
      • Flags SDK
      • With Runtime Logs
      • With Vercel Platform
      • With Web Analytics
    • Toolbar
      • Add to Environments
        • Add to Localhost
        • Add to Production
      • Managing Toolbar
      • Browser Extensions
      • Accessibility Audit Tool
      • Interaction Timing Tool
      • Layout Shift Tool
  • Compute
    • Fluid Compute
      • Pricing
    • Functions
      • Getting Started
      • Streaming
      • Runtimes
        • Node.js
          • Advanced Node.js Usage
          • Supported Node.js versions
        • Python
        • Go RuntimeGo
        • Ruby
        • Wasm
        • Edge Runtime
      • Configuring Functions
        • Duration
        • Memory
        • Runtime
        • Region
        • Advanced Configuration
      • API Reference
        • @vercel/functions
      • Logs
      • Limits
      • Concurrency Scaling
    • Routing Middleware
      • Getting Started
      • API
    • Cron Jobs
      • Getting Started
      • Managing Cron Jobs
      • Usage & Pricing
    • Incremental Static Regeneration
      • Getting Started
      • Usage & Pricing
    • OG Image Generation
      • @vercel/og
      • Examples
    • Sandbox
  • Multi-tenant
    • Domain Management
    • Limits
  • Observability
    • Overview
      • Insights
      • Observability Plus
    • Logs
      • Runtime
    • OpenTelemetry
    • Session Tracing
    • Query
      • Query Reference
      • Monitoring
        • Getting Started
        • Monitoring Reference
        • Limits and Pricing
    • Notebooks
    • Speed Insights
      • Getting Started
      • Using Speed Insights
      • Metrics
      • Privacy
      • @vercel/speed-insights
      • Limits and Pricing
      • Troubleshooting
      • Migrating from Legacy
    • Log Drains
      • Configure Log Drains
      • Log Drains Reference
    • Web Analytics
      • Getting Started
      • Using Web Analytics
      • Filtering
      • Custom Events
      • Redacting Sensitive Data
      • Privacy
      • @vercel/analytics
      • Pricing
      • Troubleshooting
    • Manage & Optimize
  • Platform
    • Dashboard
      • Navigating the Dashboard
      • Support Center
      • Using the Command Menu
    • Notifications
    • Projects
      • Managing projects
      • Project Dashboard
      • Transferring a project
    • Project Configuration
      • General Settings
      • Project Settings
      • Git Configuration
      • Git Settings
      • Global Configuration
      • Security settings
    • Product Changes
    • Checks
      • Checks API
      • Checks Reference
    • CLI
      • Deploying from CLI
      • Project Linking
      • Telemetry
      • Global Options
      • vercel alias
      • vercel bisect
      • vercel blob
      • vercel build
      • vercel cache
      • vercel certs
      • vercel deploy
      • vercel dev
      • vercel dns
      • vercel domains
      • vercel env
      • vercel git
      • vercel help
      • vercel init
      • vercel inspect
      • vercel install
      • vercel integration
      • vercel integration-resource
      • vercel link
      • vercel list
      • vercel login
      • vercel logout
      • vercel logs
      • vercel project
      • vercel promote
      • vercel pull
      • vercel redeploy
      • vercel remove
      • vercel rollback
      • vercel rolling-release
      • vercel switch
      • vercel teams
      • vercel telemetry
      • vercel whoami
    • Integrations
      • Extend Vercel
        • Add a Connectable Account
        • Add a Native Integration
        • Permissions and Access
      • Integrate with Vercel
        • Native integration concepts
        • Create a Native Integration
        • Deployment integration actions
        • Native Integration Flows
        • Native Integrations REST API
        • Integration Approval Checklist
        • Requirements for listing an Integration
        • Upgrade an Integration
      • CMS Integrations
        • Agility CMS
        • ButterCMS
        • Contentful
        • DatoCMS
        • Formspree
        • Makeswift
        • Sanity
        • Sitecore
      • Ecommerce Integrations
        • BigCommerce
        • Shopify
      • Sign in with Vercel
      • Building Integrations with Vercel REST API
      • External Platforms
        • Kubernetes
    • Limits
      • Fair use Guidelines
  • Pricing
    • Plans
      • Hobby Plan
      • Pro Plan
        • Pro Plan Trial
        • Billing FAQ
      • Enterprise Plan
        • Billing FAQ
    • Pricing
      • Regional Pricing
        • Cape Town, South Africa
        • Cleveland, USA
        • Dubai, UAE
        • Dublin, Ireland
        • Frankfurt, Germany
        • Hong Kong
        • London, UK
        • Mumbai, India
        • Osaka, Japan
        • Paris, France
        • Portland, USA
        • San Francisco, USA
        • São Paulo, Brazil
        • Seoul, South Korea
        • Singapore
        • Stockholm, Sweden
        • Sydney, Australia
        • Tokyo, Japan
        • Washington, D.C., USA
      • Manage and Optimize Usage
      • Calculating Usage of Resources
      • Billing & Invoices
      • Legacy Metrics
    • Spend Management
  • Security
    • Overview
      • Security & Compliance Measures
      • Shared Responsibility Model
      • PCI DSS iframe Integration
      • Reverse Proxy Servers and Vercel
      • Access Control
    • Audit Logs
    • Firewall
      • Firewall Concepts
      • DDoS Mitigation
      • Attack Challenge Mode
      • Web Application Firewall
        • Custom Rules
        • Rate Limiting
        • Rule Configuration
        • System Bypass Rules
        • Rate Limiting SDK
        • IP Blocking
        • Managed Rulesets
        • Examples
        • Usage & Pricing
      • Firewall API
      • Firewall Observability
    • Bot Management
    • BotID
    • OIDC
      • AWS
      • Azure
      • Connect your API
      • Google Cloud Platform
      • OIDC Reference
    • RBAC
      • Access Roles
        • Project Level Roles
        • Team Level Roles
      • Access Groups
      • Managing Team Members
    • Secure Compute
    • Two-factor Enforcement
  • Storage
    • Blob
      • Server Uploads
      • Client Uploads
      • Using the SDK
      • Pricing
      • Security
      • Examples
    • Edge Config
      • Getting Started
      • Using Edge Config
      • Edge Configs & REST API
      • Edge Configs & Dashboard
      • Edge Config SDK
      • Limits & Pricing
      • Integrations
        • DevCycle
        • Hypertune
        • LaunchDarkly
        • Split
        • Statsig
    • Postgres
    • Redis
Choose a framework to optimize documentation to:

    Products

    • AI
    • Enterprise
    • Fluid Compute
    • Next.js
    • Observability
    • Previews
    • Rendering
    • Security
    • Turbo
    • v0

    Resources

    • Community
    • Docs
    • Guides
    • Help
    • Integrations
    • Pricing
    • Resources
    • Solution Partners
    • Startups
    • Templates

    Company

    • About
    • Blog
    • Careers
    • Changelog
    • Events
    • Contact Us
    • Customers
    • Partners
    • Privacy Policy

    Social

    • GitHub
    • LinkedIn
    • Twitter
    • YouTube

    Loading status…

    Select a display theme:
    Integrations
    Integrate with Vercel
    Native Integrations REST API

    Vercel Marketplace REST API

    Learn how to authenticate and use the Marketplace API to set up your integration server for the base URL.

    How it works

    When a customer uses your integration, the following two APIs are used for interaction and communication between the user, Vercel and the provider integration:

    • Vercel calls the provider API
    • The provider calls the Vercel API

    Review Native Integration Concepts and Native Integration Flows to learn more.

    If an endpoint is marked as deprecated, it will remain in the specification for a period of time, after which it will be removed. The description on the endpoint will include how to migrate and use other endpoints for the same functionality.

    Security

    Marketplace partner API authentication

    User Authentication

    This authentication uses the OpenID Connect Protocol (OIDC). Vercel sends a JSON web token (JWT) signed with Vercel’s private key and verifiable using Vercel’s public JSON Web Key Sets (JWKS) available here.

    User Auth OIDC token claims schema:

    • account_idstringRequired
    • audstringRequired
      The ID of the target integration. Example: "oac_9f4YG9JFjgKkRlxoaaGG0y05"
    • installation_idstringRequired
      The ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"
    • issstringRequired
      One of: https://marketplace.vercel.com
    • substringRequired
      Denotes the User who is making the change (matches /^account:[0-9a-fA-F]+:user:[0-9a-fA-F]+$/)
    • user_avatar_urlstring
      The user's public avatar URL
    • user_emailstring
      The user's verified email address. For this property to have a value, your Marketplace integration must be opted in. Please reach out to Vercel Support to request access. Without access, this property will be undefined.
    • user_idstringRequired
    • user_namestring
      The user's real name
    • user_rolestringRequired
      One of: ADMIN | USER
      The ADMIN role, by default, is provided to users capable of installing integrations, while the USER role can be granted to Vercel users with the Vercel Billing or Vercel Viewer role, which are considered to be Read-Only roles.

    System Authentication

    This authentication uses the OpenID Connect Protocol (OIDC). Vercel sends a JSON web token (JWT) signed with Vercel’s private key and verifiable using Vercel’s public JSON Web Key Sets (JWKS) available here.

    System Auth OIDC token claims schema:

    • account_idstringRequired
    • audstringRequired
      The ID of the target integration. Example: "oac_9f4YG9JFjgKkRlxoaaGG0y05"
    • installation_idstring or nullRequired
      The ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"
    • issstringRequired
      One of: https://marketplace.vercel.com
    • substringRequired
      Denotes the Account (or Team) who is making the change (matches /^account:[0-9a-fA-F]+$/), possibly null

    Vercel API authentication

    bearerToken

    This authentication uses the Vercel API authentication bearer token. The access token is provided in the credentials field of the request body of the Upsert Installation call.

    oauth2

    • Authorization URL: https://api.vercel.com/oauth/authorize
    • Token URL: https://api.vercel.com/oauth/access_token

    Authentication with SSO

    Vercel Initiated SSO

    Vercel initiates SSO as part of the Open in Provider flow.

    Flow

    1. Vercel sends the user to the provider redirectLoginUrl, with the OAuth authorization code and other parameters
    2. The provider calls the SSO Token Exchange, which validates the SSO request and returns OIDC and access tokens
    3. The user gains authenticated access to the requested resource.

    The SSO request to the redirectLoginUrl will include the following authentication parameters:

    • mode. The mode of the OAuth authorization is always set to sso.
    • code: The OAuth authorization code.
    • state: The state parameter that was passed in the OAuth authorization request.

    The code and state parameters will be passed back to Vercel in the SSO Token Exchange request.

    Additionally, the SSO request to the redirectLoginUrl may include the following optional context parameters:

    • product_id: The ID of the provider's product
    • resource_id: The ID of the provider's resource
    • project_id: The ID of the Vercel project, for instance, when the resource is connected to the Vercel project. Example: "prj_ff7777b9".
    • experimentation_item_id: See Experimentation flow.
    • invoice_id: The ID of the provider's invoice
    • path: Indicates the area where the user should be redirected to after SSO. The possible values are: "billing", "usage", and "support".
    • url: The provider-specific URL to redirect the user to after SSO. Must be validated by the provider for validity. The data fields that are allowed to provide sso: URLs, such as Notification.href, will automatically propagate the provided URL in this parameter.

    The provider should match the most appropriate part of their dashboard to the user's context.

    Provider Initiated SSO

    The integration provider can initiate the SSO process from their side. This helps to streamline the authentication process for users coming from the provider's platform and provides security when a user attempts to access a resource managed by a Vercel Marketplace integration.

    To initiate SSO, an integration provider needs to construct a URL using the following format:

    https://vercel.com/sso/integrations/{URLSlug}/{installationId}?{query}

    Where:

    • URLSlug: The unique identifier for your integration in the Vercel Integrations Marketplace
    • installationId: The ID of the specific installation for the user
    • query: Optional query parameters to include additional information

    Example

    Let's say you have an AWS integration with the following details:

    • URLSlug: aws-marketplace-integration-demo
    • installationId: icfg_PSFtkFqr5djKRtOkNtOHIfSd
    • Additional parameter: resource_id=123456

    The constructed URL would look like this:

    https://vercel.com/sso/integrations/aws-marketplace-integration-demo/icfg_PSFtkFqr5djKRtOkNtOHIfSd?resource_id=123456

    Flow

    1. The provider constructs and redirects the user to the SSO URL
    2. Vercel validates the SSO request and confirms user access
    3. After successfully validating the request, Vercel redirects the user back to the provider using the same flow described in the Vercel Initiated SSO
    4. The user gains authenticated access to the requested resource

    Vercel Marketplace Partner API

    Installations

    API related to Installation operations

    Upsert Installation

    put /v1/installations/{installationId}
    Security:UseUser Authenticationto secure this endpoint.
    Description:Create or update an installation

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    The installation was created successfully

    • billingPlanobject
      The billing plan for the installation. If not set, the installation is billed on resource level.
    • Properties
    • notificationobject
      Installation's active notification. Example: { "level": "warn", "title": "Account is exceeding the maximum allowed storage no the current plan" }
    • Properties

    Get Installation

    get /v1/installations/{installationId}
    Security:UseSystem Authenticationto secure this endpoint.
    Description:Get an installation

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    The installation

    • billingPlanobject
      The billing plan for the installation. If not set, the installation is billed on resource level.
    • Properties
    • notificationobject
      Installation's active notification. Example: { "level": "warn", "title": "Account is exceeding the maximum allowed storage no the current plan" }
    • Properties

    Update Installation

    patch /v1/installations/{installationId}
    Security:UseUser Authenticationto secure this endpoint.
    Description:Update an installation

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    The installation was updated successfully

    • billingPlanobject
      The billing plan for the installation. If not set, the installation is billed on resource level.
    • Properties
    • notificationobject
      Installation's active notification. Example: { "level": "warn", "title": "Account is exceeding the maximum allowed storage no the current plan" }
    • Properties

    Delete Installation

    delete /v1/installations/{installationId}
    Security:UseUser AuthenticationandSystem Authenticationto secure this endpoint.
    Description:Deletes the Installation. The final deletion is postponed for 24 hours to allow for sending of final invoices. You can request immediate deletion by specifying {finalized:true} in the response.

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    Installation deleted successfully

    Resources

    API related to Resource operations

    Provision Resource

    post /v1/installations/{installationId}/resources
    Security:UseUser Authenticationto secure this endpoint.
    Description:Provisions a Resource. This is a synchronous operation but the provisioning can be asynchronous as the Resource does not need to be immediately available however the secrets must be known ahead of time.

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    Return the newly provisioned resource

    • billingPlanobject
      The billing plan for the resource. If not set, the resource is billed on installation level.
    • Properties
    • idstringRequired
      The partner-specific ID of the resource
    • metadataobjectRequired
      User-inputted metadata based on the registered metadata schema.
    • namestringRequired
      User-inputted name for the resource.
    • notificationobject
      Resource's active notification. Example: { "level": "warn", "title": "Database is nearing maximum planned size" }
    • Properties
    • productIdstringRequired
      The partner-specific ID/slug of the product. Example: "redis"
    • protocolSettingsobject
    • Properties
    • secretsarrayRequired
    • Properties
    • statusstringRequired
      One of: ready | pending | suspended | resumed | uninstalled | error

    List Resources (Deprecated)

    get /v1/installations/{installationId}/resources
    Security:UseSystem Authenticationto secure this endpoint.
    Description:Lists all Resources. This endpoint has been deprecated.

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    Return a list of Resources for a given Installation

    • resourcesarrayRequired
    • Properties

    Get Resource

    get /v1/installations/{installationId}/resources/{resourceId}
    Security:UseSystem Authenticationto secure this endpoint.
    Description:Get a Resource

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string
    resourceIdPartner-provided resource IDstring

    Response

    Description:

    Return the resource

    • billingPlanobject
      The billing plan for the resource. If not set, the resource is billed on installation level.
    • Properties
    • idstringRequired
      The partner-specific ID of the resource
    • metadataobjectRequired
      User-inputted metadata based on the registered metadata schema.
    • namestringRequired
      User-inputted name for the resource.
    • notificationobject
      Resource's active notification. Example: { "level": "warn", "title": "Database is nearing maximum planned size" }
    • Properties
    • productIdstringRequired
      The partner-specific ID/slug of the product. Example: "redis"
    • protocolSettingsobject
    • Properties
    • statusstringRequired
      One of: ready | pending | suspended | resumed | uninstalled | error

    Update Resource

    patch /v1/installations/{installationId}/resources/{resourceId}
    Security:UseUser Authenticationto secure this endpoint.
    Description:Updates a resource

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string
    resourceIdPartner-provided resource IDstring

    Response

    Description:

    Return the updated resource

    • billingPlanobject
      The billing plan for the resource. If not set, the resource is billed on installation level.
    • Properties
    • idstringRequired
      The partner-specific ID of the resource
    • metadataobjectRequired
      User-inputted metadata based on the registered metadata schema.
    • namestringRequired
      User-inputted name for the resource.
    • notificationobject
      Resource's active notification. Example: { "level": "warn", "title": "Database is nearing maximum planned size" }
    • Properties
    • productIdstringRequired
      The partner-specific ID/slug of the product. Example: "redis"
    • protocolSettingsobject
    • Properties
    • statusstringRequired
      One of: ready | pending | suspended | resumed | uninstalled | error

    Delete Resource

    delete /v1/installations/{installationId}/resources/{resourceId}
    Security:UseUser AuthenticationandSystem Authenticationto secure this endpoint.
    Description:Uninstalls and de-provisions a Resource

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string
    resourceIdPartner-provided resource IDstring

    Response

    Description:

    Resource deleted successfully

    No content

    Resource REPL

    post /v1/installations/{installationId}/resources/{resourceId}/repl
    Security:UseUser Authenticationto secure this endpoint.
    Description:The REPL is a command-line interface on the Store Details page that allows customers to directly interact with their resource. This endpoint is used to run commands on a specific resource.

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string
    resourceIdPartner-provided resource IDstring

    Response

    Description:

    Return result of running REPL command

    • array
    • Array

    Billing

    API related to Billing operations

    List Billing Plans For Product

    get /v1/products/{productSlug}/plans
    Security:UseSystem Authenticationto secure this endpoint.
    Description:

    Vercel sends a request to the partner to return quotes for different billing plans for a specific Product.

    Note: You can have this request triggered by Vercel before the integration is installed when the Product is created for the first time. In this case, OIDC will be incomplete and will not contain an account ID.

    Parameters

    NameDescriptionType
    productSlugThe partner-specific ID/slug of the product. Example: "redis"string

    Response

    Description:

    Return a list of billing plans

    • plansarrayRequired
    • Properties

    List Billing Plans For Resource

    get /v1/installations/{installationId}/resources/{resourceId}/plans
    Security:UseSystem Authenticationto secure this endpoint.
    Description:Returns the set of billing plans available to a specific Resource

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string
    resourceIdPartner-provided resource IDstring

    Response

    Description:

    Return a list of billing plans for a resource

    • plansarrayRequired
    • Properties

    List Billing Plans For Installation

    get /v1/installations/{installationId}/plans
    Security:UseSystem Authenticationto secure this endpoint.
    Description:Returns the set of billing plans available to a specific Installation

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    Return a list of billing plans for an installation

    • plansarrayRequired
    • Properties

    Provision Purchase

    post /v1/installations/{installationId}/billing/provision
    Security:UseUser AuthenticationandSystem Authenticationto secure this endpoint.
    Description:Optional endpoint, only required if your integration supports billing plans with type prepayment.

    Parameters

    NameDescriptionType
    installationIdThe ID of target installation. Example: "icfg_9bceb8ccT32d3U417ezb5c8p"string

    Response

    Description:

    Return a timestamp alongside a list of balances for the installation with the most up-to-date values

    • balancesarrayRequired
    • Properties
    • timestampstring (date-time)Required
      Server time of your integration, used to determine the most recent data for race conditions & updates. Format is ISO 8601 YYYY-MM-DDTHH:mm:ss.SSSZ

    Vercel API

    marketplace

    Get Account Information

    get https://api.vercel.com/v1/installations/{integrationConfigurationId}/account
    Security:UsebearerTokento secure this endpoint.
    Description:Fetches the best account or user’s contact info

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    • contactobject or nullRequired
      The best contact for the integration, which can change as team members and their roles change.
    • Properties
    • namestring
      The name of the team the installation is tied to.
    • urlstringRequired
      A URL linking to the installation in the Vercel Dashboard.

    Get Member Information

    get https://api.vercel.com/v1/installations/{integrationConfigurationId}/member/{memberId}
    Security:UsebearerTokento secure this endpoint.
    Description:Returns the member role and other information for a given member ID ("user_id" claim in the SSO OIDC token).

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    memberIdNonestring

    Response

    • idstringRequired
    • rolestringRequired
      One of: ADMIN | USER
      "The ADMIN role, by default, is provided to users capable of installing integrations, while the USER role can be granted to Vercel users with the Vercel Billing or Vercel Viewer role, which are considered to be Read-Only roles."

    Create Event

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/events
    Security:UsebearerTokento secure this endpoint.
    Description:Partner notifies Vercel of any changes made to an Installation or a Resource. Vercel is expected to use list-resources and other read APIs to get the new state.

    resource.updated event should be dispatched when any state of a resource linked to Vercel is modified by the partner.
    installation.updated event should be dispatched when an installation's billing plan is changed via the provider instead of Vercel.

    Resource update use cases:

    - The user renames a database in the partner’s application. The partner should dispatch a resource.updated event to notify Vercel to update the resource in Vercel’s datastores.
    - A resource has been suspended due to a lack of use. The partner should dispatch a resource.updated event to notify Vercel to update the resource's status in Vercel's datastores.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    No content

    Get Integration Resources

    get https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources
    Security:UsebearerTokento secure this endpoint.
    Description:Get all resources for a given installation ID.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    • resourcesarrayRequired
    • Properties

    Get Integration Resource

    get https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}
    Security:UsebearerTokento secure this endpoint.
    Description:Get a resource by its partner ID.

    Parameters

    NameDescriptionType
    integrationConfigurationIdThe ID of the integration configuration (installation) the resource belongs tostring
    resourceIdThe ID provided by the 3rd party provider for the given resourcestring

    Response

    • billingPlanIdstring
      The ID of the billing plan the resource is subscribed to, if applicable
    • idstringRequired
      The ID provided by the 3rd party provider for the given resource
    • internalIdstringRequired
      The ID assigned by Vercel for the given resource
    • metadataobject
      The configured metadata for the resource as defined by its product's Metadata Schema
    • One of
    • namestringRequired
      The name of the resource as it is recorded in Vercel
    • notificationobject
      The notification, if set, displayed to the user when viewing the resource in Vercel
    • Properties
    • productIdstringRequired
      The ID of the product the resource is derived from
    • protocolSettingsobject
      Any settings provided for the resource to support its product's protocols
    • Properties
    • statusstring
      One of: ready | pending | suspended | resumed | uninstalled | error
      The current status of the resource

    Delete Integration Resource

    delete https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}
    Security:UsebearerTokento secure this endpoint.
    Description:Delete a resource owned by the selected installation ID.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    No content

    Import Resource

    put https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}
    Security:UsebearerTokento secure this endpoint.
    Description:This endpoint imports (upserts) a resource to Vercel's installation. This may be needed if resources can be independently created on the partner's side and need to be synchronized to Vercel.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    • namestringRequired

    Submit Billing Data

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing
    Security:UsebearerTokento secure this endpoint.
    Description:Sends the billing and usage data. The partner should do this at least once a day and ideally once per hour.
    Use the credentials.access_token we provided in the Upsert Installation body to authorize this request.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    No content

    Submit Invoice

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing/invoices
    Security:UsebearerTokento secure this endpoint.
    Description:This endpoint allows the partner to submit an invoice to Vercel. The invoice is created in Vercel's billing system and sent to the customer. Depending on the type of billing plan, the invoice can be sent at a time of signup, at the start of the billing period, or at the end of the billing period.

    Use the credentials.access_token we provided in the Upsert Installation body to authorize this request.
    There are several limitations to the invoice submission:

    1. A resource can only be billed once per the billing period and the billing plan.
    2. The billing plan used to bill the resource must have been active for this resource during the billing period.
    3. The billing plan used must be a subscription plan.
    4. The interim usage data must be sent hourly for all types of subscriptions. See Send subscription billing and usage data API on how to send interim billing and usage data.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    • invoiceIdstring
    • testboolean
    • validationErrorsarray

    Get Invoice

    get https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing/invoices/{invoiceId}
    Security:UsebearerTokento secure this endpoint.
    Description:Get Invoice details and status for a given invoice ID.

    See Billing Events with Webhooks documentation on how to receive invoice events. This endpoint is used to retrieve the invoice details.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    invoiceIdNonestring

    Response

    • createdstringRequired
      System creation date. ISO 8601 timestamp.
    • discountsarray
      Invoice discounts.
    • Properties
    • externalIdstring
      Partner-supplied Invoice ID, if applicable.
    • invoiceDatestringRequired
      Invoice date. ISO 8601 timestamp.
    • invoiceIdstringRequired
      Vercel Marketplace Invoice ID.
    • invoiceNumberstring
      User-readable invoice number.
    • itemsarrayRequired
      Invoice items.
    • Properties
    • memostring
      Additional memo for the invoice.
    • periodobjectRequired
      Subscription period for this billing cycle. ISO 8601 timestamps.
    • Properties
    • refundReasonstring
      The reason for refund. Only applicable for states "refunded" or "refund_request".
    • refundTotalstring
      Refund amount. Only applicable for states "refunded" or "refund_request". A dollar-based decimal string.
    • statestringRequired
      One of: pending | scheduled | invoiced | paid | notpaid | refund_requested | refunded
      Invoice state.
    • testboolean
      Whether the invoice is in the testmode (no real transaction created).
    • totalstringRequired
      Invoice total amount. A dollar-based decimal string.
    • updatedstringRequired
      System update date. ISO 8601 timestamp.

    Invoice Actions

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing/invoices/{invoiceId}/actions
    Security:UsebearerTokento secure this endpoint.
    Description:This endpoint allows the partner to request a refund for an invoice to Vercel. The invoice is created using the Submit Invoice API.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    invoiceIdNonestring

    Response

    No content

    Submit Prepayment Balances

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing/balance
    Security:UsebearerTokento secure this endpoint.
    Description:Sends the prepayment balances. The partner should do this at least once a day and ideally once per hour.
    Use the credentials.access_token we provided in the Upsert Installation body to authorize this request.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring

    Response

    No content

    Update Resource Secrets (Deprecated)

    put https://api.vercel.com/v1/installations/{integrationConfigurationId}/products/{integrationProductIdOrSlug}/resources/{resourceId}/secrets
    Security:UsebearerTokento secure this endpoint.
    Description:This endpoint is deprecated and replaced with the endpoint Update Resource Secrets.
    This endpoint updates the secrets of a resource. If a resource has projects connected, the connected secrets are updated with the new secrets. The old secrets may still be used by existing connected projects because they are not automatically redeployed. Redeployment is a manual action and must be completed by the user. All new project connections will use the new secrets.

    Use cases for this endpoint:

    - Resetting the credentials of a database in the partner. If the user requests the credentials to be updated in the partner’s application, the partner post the new set of secrets to Vercel, the user should redeploy their application and the expire the old credentials.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    integrationProductIdOrSlugNonestring
    resourceIdNonestring

    Response

    No content

    Update Resource Secrets

    put https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/secrets
    Security:UsebearerTokento secure this endpoint.
    Description:This endpoint updates the secrets of a resource. If a resource has projects connected, the connected secrets are updated with the new secrets. The old secrets may still be used by existing connected projects because they are not automatically redeployed. Redeployment is a manual action and must be completed by the user. All new project connections will use the new secrets.

    Use cases for this endpoint:

    - Resetting the credentials of a database in the partner. If the user requests the credentials to be updated in the partner’s application, the partner post the new set of secrets to Vercel, the user should redeploy their application and the expire the old credentials.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    No content

    SSO Token Exchange

    post https://api.vercel.com/v1/integrations/sso/token
    Description:During the autorization process, Vercel sends the user to the provider redirectLoginUrl, that includes the OAuth authorization code parameter. The provider then calls the SSO Token Exchange endpoint with the sent code and receives the OIDC token. They log the user in based on this token and redirects the user back to the Vercel account using deep-link parameters included the redirectLoginUrl. Providers should not persist the returned id_token in a database since the token will expire. See Authentication with SSO for more details.

    Parameters

    Response

    • access_tokenRequired
    • id_tokenstringRequired
    • token_typeRequired

    Create one or multiple experimentation items

    post https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items
    Security:UsebearerTokento secure this endpoint.
    Description:Create one or multiple experimentation items

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    Description:

    The items were created

    No content

    Patch an existing experimentation item

    patch https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items/{itemId}
    Security:UsebearerTokento secure this endpoint.
    Description:Patch an existing experimentation item

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring
    itemIdNonestring

    Response

    Description:

    The item was updated

    No content

    Delete an existing experimentation item

    delete https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items/{itemId}
    Security:UsebearerTokento secure this endpoint.
    Description:Delete an existing experimentation item

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring
    itemIdNonestring

    Response

    Description:

    The item was deleted

    No content

    Get the data of a user-provided Edge Config

    head https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/edge-config
    Security:UsebearerTokento secure this endpoint.
    Description:When the user enabled Edge Config syncing, then this endpoint can be used by the partner to fetch the contents of the Edge Config.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    Description:

    The Edge Config data

    • digeststringRequired
    • itemsobjectRequired
    • updatedAtnumberRequired

    Push data into a user-provided Edge Config

    put https://api.vercel.com/v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/edge-config
    Security:UsebearerTokento secure this endpoint.
    Description:When the user enabled Edge Config syncing, then this endpoint can be used by the partner to push their configuration data into the relevant Edge Config.

    Parameters

    NameDescriptionType
    integrationConfigurationIdNonestring
    resourceIdNonestring

    Response

    Description:

    The Edge Config was updated

    • digeststringRequired
    • itemsobjectRequired
    • updatedAtnumberRequired

    authentication

    SSO Token Exchange

    post https://api.vercel.com/v1/integrations/sso/token
    Description:During the autorization process, Vercel sends the user to the provider redirectLoginUrl, that includes the OAuth authorization code parameter. The provider then calls the SSO Token Exchange endpoint with the sent code and receives the OIDC token. They log the user in based on this token and redirects the user back to the Vercel account using deep-link parameters included the redirectLoginUrl. Providers should not persist the returned id_token in a database since the token will expire. See Authentication with SSO for more details.

    Parameters

    Response

    • access_tokenRequired
    • id_tokenstringRequired
    • token_typeRequired

    Billing events with webhooks

    • Receive billing events with webhooks

    You can receive the following events:

    • marketplace.invoice.created: the invoice was created and sent to the customer
    • marketplace.invoice.paid: the invoice was paid
    • marketplace.invoice.notpaid: the invoice was not paid after a grace period
      • You can then take the appropriate action, such as suspending the resource
    • marketplace.invoice.refunded: the invoice was refunded

    Changes

    • 2025-06-20: Get Integration Resources, Get Integration Resource, and Delete Integration Resource have been added to the APIs available for providers to call on Vercel.
    • 2025-06-20: The ADMIN and USER roles now have clearer explanations in the User Security section, associated with the user_role field.
    • 2025-06-11: Installation.notification field can now be returned in the "Get Installation" API response, allowing for an active installation notification.
    • 2025-05-21: We have updated the Secrets in Provision Resource response, Import Resource request, and Update Resource Secrets to include an environmentOverrides field per secret, allowing for different values on a per-environment level.
    • 2025-05-06: Marketplace Webhooks now include the project.id and project.name in the payload of integration-resource.project-connected hooks, and project.id in integration-resource.project-disconnected hooks.
    • 2025-03-13: The Provision Purchase endpoint now accepts "System" authentication, as well as "User" authentication. System authentication is used for automatic balance top-ups.
    • 2025-03-12: The Upsert Installation endpoint now provides a new request field account: AccountInfo, that can be used in place of calling Get Account Info for the initial installation. The Get Account Info endpoint should continue to be called for all other use cases.
    • 2025-03-12: The Update Resource Secrets By Id endpoint now accepts partial: boolean request field. When set to true, this call allows updating only the specified secrets, leaving the rest of the secrets unchanged.
    • 2025-02-13: Added experimental "Import Resource" endpoint.
    • 2025-02-07: Prepayment plan-related endpoints have been added to documentation. See new fields added to billing plans, Provision Purchase endpoint, and Submit Prepayment Balances endpoint.
    • 2025-02-05: The finalization period is extended to 24 hours in the "Delete Installation" API.
    • 2024-10-08: "Provision Resource" now passes through the externalId property from the external-id query parameter in the Deploy Button flow.
    • 2024-10-04: "Upsert Installation" and "Update Installation" APIs now allow returning {billingPlan: BillingPlan} in the response. This is useful for installation level billing.
    • 2024-09-06: "Delete Installation" API can optionally return {finalized: true} to signal that the installation can be removed immediately. Otherwise, the installation will wait for up to 12hr for any pending billing data to be submitted.
    • 2024-08-27: Removed BillingPlan.maxResources field.
    • 2024-08-20: Added AccountInfo.url field to the "Get Account Information" API.
    • 2024-08-16: "Get Member Information" API.
    • 2024-08-16: Documentation for API error responses (e.g. 400, 403) added.
    • 2024-08-15: Added "Get Installation" and "List Billing Plans for Installation" API for installation-level billing. Added BillingPlan.scope attribute that determines installation or resource level billing for a billing plan.
    • 2024-08-14: "Submit Invoice" and "Submit Billing Data" APIs no longer require resourceId for each item.
    • 2024-08-14: "Submit Invoice" and "Submit Billing Data" APIs accept discounts fields.
    • 2024-08-13: Resource.billingPlan is no longer required when the integration has installation-level billing enabled. If installation-level billing is not enabled in the Integration Console and this property is missing, the response will be treated as an error.
    • 2024-08-09: Added the user_email to the User Authentication JWT claims.
    • 2024-07-24: Added REPL endpoint.
    • 2024-07-09: Removed BillingPlan.requiredPolicies? and ProvisionResourceRequest.acceptedPolicies fields until further notice. The only policies required/accepted for now are for the InstallIntegrationRequest.
    • 2024-07-01: Resource.notification field for an optional active resource notification.
    • 2024-07-01: BillingPlan.quote field is replaced with more generic BillingPlan.details and BillingPlan.cost fields.
    • 2024-07-01: BillingPlan.paymentMethodRequired field as added to indicate free plans.
    • 2024-06-16: The "Refund Invoice" API.
    • 2024-06-03: The "Submit Invoice" and "Get Invoice" APIs.
    • 2024-06-03: The negative amount statement for the BillingItem in the "Send invoice billing and usage data" endpoint is removed as not correct.
    • 2024-05-30: The Vercel API routes using the /v1/integrations/marketplace/installations namespace were shortened to /v1/installations. The old, longer namespaced routes will continue to work as expected.
    • 2024-05-23: BillingPlan.type value of "invoice" has been changed to "subscription".
    • 2024-05-21: Resource.billingPlan type has been changed from string (for a plan ID) to a BillingPlan structure with the complete plan information. billingPlan: string for a plan ID has been changed to billingPlanId: string for consistency.
    • 2024-05-21: BillingPlan.maxProducts has been renamed to maxResources.
    Last updated on July 1, 2025

    Previous
    Native Integration Flows
    Next
    Integration Approval Checklist

    Was this helpful?

    supported.
    On this page
    • How it works
    • Security
    • Marketplace partner API authentication
    • User Authentication
    • System Authentication
    • Vercel API authentication
    • bearerToken
    • oauth2
    • Authentication with SSO
    • Vercel Initiated SSO
    • Provider Initiated SSO
    • Vercel Marketplace Partner API
    • Installations
    • Upsert Installation
    • Get Installation
    • Update Installation
    • Delete Installation
    • Resources
    • Provision Resource
    • List Resources (Deprecated)
    • Get Resource
    • Update Resource
    • Delete Resource
    • Resource REPL
    • Billing
    • List Billing Plans For Product
    • List Billing Plans For Resource
    • List Billing Plans For Installation
    • Provision Purchase
    • Vercel API
    • marketplace
    • Get Account Information
    • Get Member Information
    • Create Event
    • Get Integration Resources
    • Get Integration Resource
    • Delete Integration Resource
    • Import Resource
    • Submit Billing Data
    • Submit Invoice
    • Get Invoice
    • Invoice Actions
    • Submit Prepayment Balances
    • Update Resource Secrets (Deprecated)
    • Update Resource Secrets
    • SSO Token Exchange
    • Create one or multiple experimentation items
    • Patch an existing experimentation item
    • Delete an existing experimentation item
    • Get the data of a user-provided Edge Config
    • Push data into a user-provided Edge Config
    • authentication
    • SSO Token Exchange
    • Billing events with webhooks
    • Changes