WeDance SDK · live demo
Build with the world's dance calendar.
Search real events, browse tickets, sell them with Stripe, and drop WeDance widgets into any site. Everything on this page calls the live WeDance API with a test key. Each call shows its request and response.
…………Quick start
Sign in & apply
Sign in on wedance.world/app/api-keys and send an API access application. The WeDance team reviews it.
Mint keys
After approval, create a
wd_rk_test_secret (server only) and awd_pk_test_widget key. Add your site to the widget key's allowed origins.Call the API
Send
x-account-idandx-api-keyfrom your server. Browsers can't call the API directly with a secret, so proxy it like this demo does.Go live
Swap to
wd_rk_live_/wd_pk_live_keys. Test keys create private events and use Stripe test mode only.
curl "https://api.wedance.world/v1/events/search?city=tokyo&limit=5" \
-H "x-account-id: acc_YOUR_ACCOUNT" \
-H "x-api-key: $WEDANCE_SECRET_KEY"
API playground
Requests go to /api/v1/… on this site. A small proxy authenticates them and forwards them to api.wedance.world.
1 · Search events
2 · Demo organizer
Loading…
3 · Event detail & tickets
Pick an event from search or the organizer list.
4 · Test checkout
Uses POST /v1/tickets/checkout, Stripe.js, then POST /v1/tickets/confirm. Pay with test card 4242 4242 4242 4242, any future date, any CVC. Checkout only sells tickets for the demo account's private test events.
Request / response log
Widgets
One script tag. Widgets run in an iframe from wedance.world, keyed by a publishable key whose allowed origins include this site.
Widget builder
Attributes
| Attribute | What it does |
|---|---|
data-widget | Widget kind: schedule, checkout, card, button, calendar, next, week, grid, countdown, addcal, spots, … Default checkout. |
data-account / data-pk | Your acc_… id and publishable key (wd_pk_test_ or wd_pk_live_). Never a secret key. |
data-event / data-handle | Target event id, or organizer handle for list widgets (schedule, calendar, next, week, grid…). |
data-lang | Locale, default en. |
data-theme | light, dark, default, neon-club, paper, retro-terminal, retro-floppy, win95. |
data-primary / data-bg / data-text | Hex colors; data-bg may be transparent. |
data-radius / data-shape | Corner radius 0–999 (default 12); shape square, ticket, slash, diamond, pill. |
data-layout / data-mobile-layout | row, stack, grid, compact. Breakpoint via data-bp (default 720). |
data-width / data-height | Width 280–1200; height and data-fit control sizing; mobile variants available. |
data-style / data-type / data-city | Filters for list widgets. |
data-name / data-logo / data-font | Display name, https logo, font. |
data-copy-cta / data-copy-more / data-copy-empty | Custom copy (≤80 chars). |
data-checkout | Custom checkout path instead of the WeDance overlay. |
Listen for purchases: window.addEventListener('wedance:purchase', e => …)
Docs
Auth
Secret routes: headers x-account-id: acc_… and x-api-key: wd_rk_…. Widgets: pk + account. Errors are {error, message}: 401 bad key, 403 scope, 404 route, 429 rate limit.
Read
GET /v1/events/search (q, city, style, type, from, to, limit, cursor), /v1/events/{id} with its tickets, /v1/organizers/{handle}, /v1/cities, /v1/styles, and iCal at …/calendar.
Sell
POST /v1/tickets/checkout returns a Stripe PaymentIntent clientSecret. Confirm with Stripe.js, then POST /v1/tickets/confirm with paymentIntentId to issue tickets. Free tickets skip Stripe.
Full reference: wedance.world/en/docs/developers/restricted-api. Source of this demo: GitLab wedance1/demo.