Developers TEST MODE

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.

API base…
Demo account…
Organizer…
Widget key…

Quick start

  1. Sign in & apply

    Sign in on wedance.world/app/api-keys and send an API access application. The WeDance team reviews it.

  2. Mint keys

    After approval, create a wd_rk_test_ secret (server only) and a wd_pk_test_ widget key. Add your site to the widget key's allowed origins.

  3. Call the API

    Send x-account-id and x-api-key from your server. Browsers can't call the API directly with a secret, so proxy it like this demo does.

  4. Go live

    Swap to wd_rk_live_ / wd_pk_live_ keys. Test keys create private events and use Stripe test mode only.

curl
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.

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

HTML

Attributes

AttributeWhat it does
data-widgetWidget kind: schedule, checkout, card, button, calendar, next, week, grid, countdown, addcal, spots, … Default checkout.
data-account / data-pkYour acc_… id and publishable key (wd_pk_test_ or wd_pk_live_). Never a secret key.
data-event / data-handleTarget event id, or organizer handle for list widgets (schedule, calendar, next, week, grid…).
data-langLocale, default en.
data-themelight, dark, default, neon-club, paper, retro-terminal, retro-floppy, win95.
data-primary / data-bg / data-textHex colors; data-bg may be transparent.
data-radius / data-shapeCorner radius 0–999 (default 12); shape square, ticket, slash, diamond, pill.
data-layout / data-mobile-layoutrow, stack, grid, compact. Breakpoint via data-bp (default 720).
data-width / data-heightWidth 280–1200; height and data-fit control sizing; mobile variants available.
data-style / data-type / data-cityFilters for list widgets.
data-name / data-logo / data-fontDisplay name, https logo, font.
data-copy-cta / data-copy-more / data-copy-emptyCustom copy (≤80 chars).
data-checkoutCustom 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.