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