Guide · Cursor
Build an event ticketing site with Cursor
Last updated
To build an event ticketing site with Cursor, let Cursor write the front end and use the Vihaya Events API as the backend. Vihaya handles payment, QR tickets, ticket emails and payouts. Connect the Vihaya MCP server too, and Cursor can create and publish your events for you.
Key facts
- Cursor can build a complete ticketing site on the Vihaya Events API.
- Vihaya Events has an MCP server that Cursor can connect to with one config entry.
- Buyers pay through Razorpay Checkout; you need no gateway account of your own.
- Every confirmed booking gets a QR ticket by email automatically.
- The OpenAPI spec at https://events.vihaya.app/api/v1/openapi.json gives Cursor the full API shape.
Step by step
- 1
Create an API key and store it as a secret
Sign up at Vihaya Events, open Developer → API keys and create a test key. Put it in your project’s .env file as VIHAYA_API_KEY and keep .env out of git. Never put a full key in browser code.
- 2
Connect the Vihaya MCP server to Cursor
Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project). Cursor reads remote servers from "url" and sends the headers on every request.
.cursor/mcp.json{ "mcpServers": { "vihaya": { "url": "https://events.vihaya.app/api/mcp", "headers": { "x-api-key": "vihaya_test_sk_YOUR_KEY" } } } } - 3
Ask Cursor to build the site
Paste this prompt into Cursor. It works with Next.js, React, SvelteKit, Astro or any stack Cursor prefers.
prompt.txtAdd real event ticket sales to this project using the Vihaya Events API. Do not add Stripe, Razorpay keys, a tickets database table, or buyer accounts. API docs: https://events.vihaya.app/docs OpenAPI: https://events.vihaya.app/api/v1/openapi.json Key: read VIHAYA_API_KEY from the environment. Never send it to the browser. Make the API calls from a server route (for example /api/book) that forwards to Vihaya with the key attached. 1. Events page: GET https://events.vihaya.app/api/v1/events with header x-api-key. Show each item in data[] as a card: title, date, venue, price. 2. Event page: GET https://events.vihaya.app/api/v1/events/{id} plus a form for name, email, phone. 3. Booking: POST https://events.vihaya.app/api/v1/events/{id}/register with { name, email, phone }. - No orderId in the response means it is confirmed (free event). - Otherwise load https://checkout.razorpay.com/v1/checkout.js and open Razorpay Checkout with key = response.key, order_id = response.orderId. 4. In the Razorpay handler, POST register again with { registrationId, orderId, paymentId, signature } taken from the Razorpay response. 5. On success show "You're booked. Your ticket is in your email." - 4
Test, then switch to a live key
With a test key nothing is charged and no email is sent. When the flow works, swap in a live key and publish the event.
Questions
What can Cursor do through the Vihaya MCP server?
Through the Vihaya Events MCP server, Cursor can list, create, edit and publish your events, add festival tracks, read registrations and sales, and preview or send attendee emails. New events are always created as drafts, so nothing goes public by accident.
Which framework should I ask Cursor to use?
Any framework works with the Vihaya Events API because it is plain HTTPS and JSON. Next.js is the simplest choice, since a route handler keeps the key on the server. Tell Cursor which one you want in the prompt.
How do I give Cursor the Vihaya API docs?
Add https://events.vihaya.app/docs as a doc in Cursor, or paste the OpenAPI URL https://events.vihaya.app/api/v1/openapi.json into the chat. Cursor then writes calls that match the real Vihaya Events API fields instead of guessing them.
Can I try it without taking real money?
Yes. Create a Vihaya test key. Test keys only work on test events: no payment gateway is called, no email is sent, no fee is charged and nothing is public. Swap in a live key when you launch.
What does it cost?
Free events cost nothing. Paid tickets carry a 1.75–4.5% Vihaya platform fee plus Razorpay's 3% gateway charge. The rate is fixed when the event is created and larger events get a lower rate. There is no monthly fee and API access is free.
Build the site. Skip the plumbing.
Start with a free test key. Switch to a live key when you are ready to sell.