v0

v0 integrations API

The integrations API from v0 — 4 operation(s) for integrations.

OpenAPI Specification

v0-integrations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: v0 App agent integrations API
  version: '0'
  description: Full stack vibe coding API
  termsOfService: https://vercel.com/legal/api-terms
servers:
- url: https://api.v0.dev/v1
tags:
- name: integrations
paths:
  /integrations:
    get:
      summary: List Available Integrations
      description: Retrieves all available integrations from the marketplace that can be created and connected.
      operationId: integrations.find
      tags:
      - integrations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationListSchema'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadTooLargeError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
      - apiKey: []
    post:
      summary: Create Integration
      description: Creates a new integration or returns installation URL for marketplace integrations. For storage integrations (blob), creates the store directly. For marketplace integrations, creates an integration link and returns a URL for the user to complete installation.
      operationId: integrations.create
      tags:
      - integrations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                properties:
                  type:
                    type: string
                    const: blob
                    description: Create a blob storage integration.
                  name:
                    type: string
                    minLength: 1
                    description: Name for the blob storage integration.
                  vercelProjectId:
                    type: string
                    minLength: 1
                    description: Vercel project ID to connect the blob storage to.
                  access:
                    default: private
                    description: Access level for the blob store. "private" means a token is required to read blobs (for sensitive data). "public" means blobs are publicly accessible via URL (for assets like images).
                    type: string
                    enum:
                    - public
                    - private
                required:
                - type
                - name
                - vercelProjectId
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: marketplace
                    description: Create a marketplace integration.
                  productId:
                    type: string
                    minLength: 1
                    description: The product ID from the marketplace (e.g., "iap_xxxxx" for products, or slug for integrations).
                  vercelProjectId:
                    type: string
                    minLength: 1
                    description: Vercel project ID to connect the integration to (required for marketplace integrations).
                required:
                - type
                - productId
                - vercelProjectId
                additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                      description: The ID of the integration.
                    object:
                      type: string
                      const: integration
                      description: The object type.
                    slug:
                      type: string
                      description: The slug of the integration.
                    name:
                      type: string
                      description: The name of the integration.
                    description:
                      type: string
                      description: A short description of the integration.
                    iconUrl:
                      type: string
                      description: URL to the integration icon.
                    storeId:
                      type: string
                      description: The ID of the created store/integration.
                    type:
                      type: string
                      const: storage
                      description: Indicates this is a storage integration that was created directly.
                  required:
                  - id
                  - object
                  - slug
                  - name
                  - description
                  - iconUrl
                  - storeId
                  - type
                  additionalProperties: false
                - type: object
                  properties:
                    integrationId:
                      type: string
                      description: The ID of the integration.
                    installationUrl:
                      type: string
                      format: uri
                      description: URL where the user should go to complete the integration installation.
                    token:
                      type: string
                      description: Token for tracking the installation process.
                    expiresAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      description: When the installation link expires.
                    type:
                      type: string
                      const: marketplace
                      description: Indicates this requires user installation via Vercel marketplace.
                  required:
                  - integrationId
                  - installationUrl
                  - token
                  - expiresAt
                  - type
                  additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadTooLargeError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
      - apiKey: []
  /integrations/vercel/projects:
    get:
      summary: Find Vercel Projects
      description: Retrieves a list of Vercel projects linked to your integration. Useful for associating chats, deployments, or hooks with specific Vercel projects.
      operationId: integrations.vercel.projects.find
      tags:
      - integrations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    const: list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/VercelProjectSummary'
                required:
                - object
                - data
                additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadTooLargeError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
      - apiKey: []
    post:
      summary: Create Vercel Project
      description: Links a Vercel project to an existing v0 project. Enables Vercel-related features and deployment integration within the v0 workspace.
      operationId: integrations.vercel.projects.create
      tags:
      - integrations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                projectId:
                  type: string
                  description: The ID of the v0 project to link to the new Vercel project.
                name:
                  type: string
                  description: The name to assign to the new Vercel project.
              required:
              - projectId
              - name
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VercelProjectDetail'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadTooLargeError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
      - apiKey: []
  /integrations/wizard:
    post:
      summary: Update Data From Wizard
      description: Update the wizard data for a specific block.
      operationId: integrations.wizard.create
      tags:
      - integrations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                setEnvironmentVariables:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                        minLength: 1
                      value:
                        type: string
                        minLength: 1
                        maxLength: 65536
                      targets:
                        type: array
                        items:
                          type: string
                          enum:
                          - production
                          - preview
                          - development
                    required:
                    - key
                    - value
                    additionalProperties: false
                runActions:
                  type: array
                  items:
                    type: object
                    properties:
                      action:
                        type: string
                        enum:
                        - supabase-chat-url
                    required:
                    - action
                    additionalProperties: false
                connectIntegrations:
                  type: array
                  items:
                    type: object
                    properties:
                      integrationId:
                        type: string
                      name:
                        type: string
                        enum:
                        - Upstash for Redis
                        - Upstash Search
                        - Neon
                        - Supabase
                        - Amazon Aurora DSQL
                        - Amazon Aurora PostgreSQL
                        - Amazon DynamoDB
                        - firebase
                        - Groq
                        - Grok
                        - fal
                        - Deep Infra
                        - Stripe
                        - Clerk
                        - Convex
                        - Blob
                        - Edge Config
                        - Vercel AI Gateway
                        - Snowflake
                      existingInstanceId:
                        type: string
                      importExisting:
                        type: boolean
                      acceptedLinks:
                        type: object
                        properties:
                          eulaLink:
                            type: boolean
                          privacyLink:
                            type: boolean
                        required:
                        - eulaLink
                        - privacyLink
                        additionalProperties: false
                      useMarketplaceFlow:
                        type: boolean
                      targets:
                        type: array
                        items:
                          type: string
                          enum:
                          - production
                          - preview
                          - development
                      allowEnvOverride:
                        type: boolean
                      access:
                        type: string
                        enum:
                        - public
                        - private
                      region:
                        type: string
                    required:
                    - integrationId
                    - name
                    additionalProperties: false
                disableAutoPrompt:
                  type: boolean
                setBannerDismissed:
                  type: object
                  properties:
                    fingerprint:
                      type: string
                    dismissed:
                      type: boolean
                  required:
                  - fingerprint
                  - dismissed
                  additionalProperties: false
                blockId:
                  type: string
                autoCreateV0Project:
                  type: boolean
              required:
              - blockId
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    status:
                      type: string
                      const: success
                    disabledAutoPrompt:
                      anyOf:
                      - type: object
                        properties:
                          status:
                            type: string
                            const: success
                        required:
                        - status
                        additionalProperties: false
                      - type: object
                        properties:
                          status:
                            type: string
                            const: error
                          message:
                            type: string
                        required:
                        - status
                        - message
                        additionalProperties: false
                    setBannerDismissedResult:
                      anyOf:
                      - type: object
                        properties:
                          status:
                            type: string
                            const: success
                        required:
                        - status
                        additionalProperties: false
                      - type: object
                        properties:
                          status:
                            type: string
                            const: error
                          message:
                            type: string
                        required:
                        - status
                        - message
                        additionalProperties: false
                    ranActions:
                      type: array
                      items:
                        allOf:
                        - anyOf:
                          - type: object
                            properties:
                              status:
                                type: string
                                const: success
                            required:
                            - status
                            additionalProperties: false
                          - type: object
                            properties:
                              status:
                                type: string
                                const: error
                              message:
                                type: string
                            required:
                            - status
                            - message
                            additionalProperties: false
                        - type: object
                          properties:
                            action:
                              type: string
                              enum:
                              - supabase-chat-url
                          required:
                          - action
                          additionalProperties: false
                    setEnvironmentVariables:
                      allOf:
                      - anyOf:
                        - type: object
                          properties:
                            status:
                              type: string
                              const: success
                          required:
                          - status
                          additionalProperties: false
                        - type: object
                          properties:
                            status:
                              type: string
                              const: error
                            message:
                              type: string
                          required:
                          - status
                          - message
                          additionalProperties: false
                      - type: object
                        properties:
                          keys:
                            type: array
                            items:
                              type: string
                        required:
                        - keys
                        additionalProperties: false
                    connectedIntegrations:
                      type: array
                      items:
                        allOf:
                        - anyOf:
                          - type: object
                            properties:
                              status:
                                type: string
                                const: success
                              redirectUrl:
                                type: string
                                format: uri
                              acceptPolicies:
                                type: object
                                properties:
                                  title:
                                    type: string
                                  description:
                                    type: string
                                  addendumLink:
                                    type: object
                                    properties:
                                      url:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                    - url
                                    - text
                                    additionalProperties: false
                                  eulaLink:
                                    anyOf:
                                    - type: object
                                      properties:
                                        url:
                                          type: string
                                        text:
                                          type: string
                                      required:
                                      - url
                                      - text
                                      additionalProperties: false
                                    - type: 'null'
                                  privacyLink:
                                    anyOf:
                                    - type: object
                                      properties:
                                        url:
                                          type: string
                                        text:
                                          type: string
                                      required:
                                      - url
                                      - text
                                      additionalProperties: false
                                    - type: 'null'
                                  footerMD:
                                    type: string
                                  actionButtonText:
                                    type: string
                                required:
                                - title
                                - description
                                - addendumLink
                                - eulaLink
                                - privacyLink
                                - footerMD
                                - actionButtonText
                                additionalProperties: false
                              isPending:
                                type: boolean
                            required:
                            - status
                            - isPending
                            additionalProperties: false
                          - type: object
                            properties:
                              status:
                                type: string
                                const: error
                              message:
                                type: string
                            required:
                            - status
                            - message
                            additionalProperties: false
                        - type: object
                          properties:
                            integrationId:
                              type: string
                            integrationName:
                              type: string
                              enum:
                              - Upstash for Redis
                              - Upstash Search
                              - Neon
                              - Supabase
                              - Amazon Aurora DSQL
                              - Amazon Aurora PostgreSQL
                              - Amazon DynamoDB
                              - firebase
                              - Groq
                              - Grok
                              - fal
                              - Deep Infra
                              - Stripe
                              - Clerk
                              - Convex
                              - Blob
                              - Edge Config
                              - Vercel AI Gateway
                              - Snowflake
                          required:
                          - integrationId
                          - integrationName
                          additionalProperties: false
                    createdV0Project:
                      anyOf:
                      - type: object
                        properties:
                          projectId:
                            type: string
                          name:
                            type: string
                          settings:
                            type: object
                            properties:
                              color:
                                type:
                                - string
                                - 'null'
                              icon:
                                type:
                                - string
                                - 'null'
                            required:
                            - color
                            - icon
                            additionalProperties: false
                          vercelProjectId:
                            type: string
                          isCreator:
                            type: boolean
                        required:
                        - projectId
                        - name
                        - settings
                        - vercelProjectId
                        - isCreator
                        additionalProperties: false
                      - type: 'null'
                    createdVercelProjectId:
                      type:
                      - string
                      - 'null'
                  required:
                  - status
                  - disabledAutoPrompt
                  - setBannerDismissedResult
                  - ranActions
                  - setEnvironmentVariables
                  - connectedIntegrations
                  - createdV0Project
                  - createdVercelProjectId
                  additionalProperties: false
                - type: object
                  properties:
                    status:
                      type: string
                      const: error
                    message:
                      type: string
                    forbidden:
                      type: boolean
                  required:
                  - status
                  - message
                  additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadTooLargeError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
      - apiKey: []
    get:
      summary: Compute Wizard
      description: Compute and retrieve the latest wizard data for a specific block.
      operationId: integrations.wizard.find
      tags:
      - integrations
      responses:
        '200':
          descript

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/v0/refs/heads/main/openapi/v0-integrations-api-openapi.yml