OpenAPI Specification
openapi: 3.1.0
info:
title: v0 App agent plans 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: plans
paths:
/plans:
get:
operationId: plans.find
tags:
- plans
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
object:
type: string
const: list
data:
type: array
items:
anyOf:
- type: object
properties:
type:
type: string
const: user
data:
anyOf:
- type: object
properties:
success:
type: boolean
const: false
error:
type: string
required:
- success
- error
additionalProperties: false
- type: object
properties:
success:
type: boolean
const: true
data:
type: object
properties:
planSlug:
type: string
enum:
- v0-level0
- v0-free
- v0-level3
- v0-ultra
- v0-team
- v0-business
- v0-enterprise
planName:
type: string
realPlan:
type: string
enum:
- v0-level0
- v0-free
- v0-level3
- v0-ultra
- v0-team
- v0-business
- v0-enterprise
planPeriod:
type: object
properties:
start:
type: string
end:
type: string
required:
- start
additionalProperties: false
account:
type: object
properties:
createdAt:
type: number
mode:
type: string
const: test
stripeCustomerId:
type:
- string
- 'null'
orbCustomerId:
type:
- string
- 'null'
awsMarketplace:
type: object
properties:
v0:
type: object
properties:
customerId:
type: string
productCode:
type: string
required:
- customerId
- productCode
additionalProperties: false
vercel:
type: object
properties:
customerId:
type: string
productCode:
type: string
required:
- customerId
- productCode
additionalProperties: false
additionalProperties: false
required:
- createdAt
- stripeCustomerId
- orbCustomerId
additionalProperties: false
billingPeriod:
type: object
properties:
start:
type: string
end:
type: string
required:
- start
- end
additionalProperties: false
payment:
type: object
properties:
status:
type: string
enum:
- paid
- pending
- past_due
openInvoices:
type: array
items:
type: object
properties:
url:
type: string
dueAt:
type: number
required:
- url
- dueAt
additionalProperties: false
isTrialing:
type: boolean
instruments:
type: array
items:
type: object
properties:
details:
type: object
properties:
type:
type: string
last4:
type: string
brand:
type: string
id:
type: string
exp:
type: object
properties:
month:
type: number
year:
type: number
additionalProperties: false
email:
type: string
required:
- type
- last4
- brand
- id
additionalProperties: false
required:
- details
additionalProperties: false
required:
- status
- openInvoices
additionalProperties: false
metadata:
type: object
propertyNames:
type: string
additionalProperties:
anyOf:
- {}
- type: 'null'
products:
type: object
properties:
teamSeats:
type: object
properties:
quantity:
type: number
required:
- quantity
additionalProperties: false
seatsCredit:
type: object
properties:
quantity:
type: number
required:
- quantity
additionalProperties: false
additionalProperties: false
required:
- planSlug
- planName
- realPlan
- planPeriod
- account
- billingPeriod
- metadata
- products
additionalProperties: false
required:
- success
- data
additionalProperties: false
required:
- type
- data
additionalProperties: false
- type: object
properties:
type:
type: string
const: team
data:
anyOf:
- type: object
properties:
success:
type: boolean
const: false
error:
type: string
required:
- success
- error
additionalProperties: false
- type: object
properties:
success:
type: boolean
const: true
data:
type: object
properties:
planSlug:
type: string
enum:
- v0-level0
- v0-free
- v0-level3
- v0-ultra
- v0-team
- v0-business
- v0-enterprise
planName:
type: string
realPlan:
type: string
enum:
- v0-level0
- v0-free
- v0-level3
- v0-ultra
- v0-team
- v0-business
- v0-enterprise
planPeriod:
type: object
properties:
start:
type: string
end:
type: string
required:
- start
additionalProperties: false
account:
type: object
properties:
createdAt:
type: number
mode:
type: string
const: test
stripeCustomerId:
type:
- string
- 'null'
orbCustomerId:
type:
- string
- 'null'
awsMarketplace:
type: object
properties:
v0:
type: object
properties:
customerId:
type: string
productCode:
type: string
required:
- customerId
- productCode
additionalProperties: false
vercel:
type: object
properties:
customerId:
type: string
productCode:
type: string
required:
- customerId
- productCode
additionalProperties: false
additionalProperties: false
required:
- createdAt
- stripeCustomerId
- orbCustomerId
additionalProperties: false
billingPeriod:
type: object
properties:
start:
type: string
end:
type: string
required:
- start
- end
additionalProperties: false
payment:
type: object
properties:
status:
type: string
enum:
- paid
- pending
- past_due
openInvoices:
type: array
items:
type: object
properties:
url:
type: string
dueAt:
type: number
required:
- url
- dueAt
additionalProperties: false
isTrialing:
type: boolean
instruments:
type: array
items:
type: object
properties:
details:
type: object
properties:
type:
type: string
last4:
type: string
brand:
type: string
id:
type: string
exp:
type: object
properties:
month:
type: number
year:
type: number
additionalProperties: false
email:
type: string
required:
- type
- last4
- brand
- id
additionalProperties: false
required:
- details
additionalProperties: false
required:
- status
- openInvoices
additionalProperties: false
metadata:
type: object
propertyNames:
type: string
additionalProperties:
anyOf:
- {}
- type: 'null'
products:
type: object
properties:
teamSeats:
type: object
properties:
quantity:
type: number
required:
- quantity
additionalProperties: false
seatsCredit:
type: object
properties:
quantity:
type: number
required:
- quantity
additionalProperties: false
additionalProperties: false
required:
- planSlug
- planName
- realPlan
- planPeriod
- account
- billingPeriod
- metadata
- products
additionalProperties: false
required:
- success
- data
additionalProperties: false
teamId:
type: string
required:
- type
- data
- teamId
additionalProperties: false
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: []
components:
schemas:
InternalServerError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: internal_server_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
ForbiddenError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: forbidden_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
NotFoundError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: not_found_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
TooManyRequestsError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: too_many_requests_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
UnauthorizedError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: unauthorized_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
UnprocessableEntityError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: unprocessable_entity_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
PayloadTooLargeError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: payload_too_large_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
ConflictError:
type: object
properties:
error:
type: object
properties:
message:
type: string
type:
type: string
const: conflict_error
required:
- message
- type
additionalProperties: false
required:
- error
additionalProperties: false
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
description: Your v0 API key. Get one at https://v0.app/chat/settings/keys
externalDocs:
description: Find more info here
url: https://vercel.com/docs/v0/api