Registration infrastructure
agents can drive.
Create a class with a single call and get back a hosted registration page, a drop-in embed, and payment-readiness. Sorted runs the registration hot path and collects student payments — your agent just publishes the link.
This is Sorted's primary product. Virtual waiting rooms are a separate Queue as a Service option for merchants that need immediate surge protection but are not ready to migrate their registration flow.
claude plugin install josefrichter/sorted-claude-plugin
How it works
Three steps. Your agent never touches the registration hot path or handles money.
Create
Call create_event over MCP or REST. A registration worker spins up instantly — built to absorb thousands of concurrent sign-ups.
Receive deliverables
Every response includes public_url, embed_url, embed_code, live payment readiness, and agent metadata — no page scraping.
Publish
Share the hosted link or paste the iframe anywhere. Sorted hosts registration and collects student payments via Stripe Connect.
Three ways to connect
Pick the integration that fits your client. They all reuse the same auth and the same class logic.
MCP server
A Model Context Protocol endpoint at
POST /mcp
(JSON-RPC 2.0). Core tools manage classes and registrations; virtual waiting rooms are
a separate secondary option for merchants avoiding a migration. Docs and the API catalog
are also available as MCP resources.
Authorization: Bearer <api_key>
REST API
Plain JSON over HTTPS for the core event and registration platform. Queue endpoints are a separate virtual waiting-room option. Create, read, update and cancel — the same shapes the MCP tools return.
X-API-Key · or Bearer
Discovery
Self-describing for agents: an A2A agent card, an LLM site map, operating instructions, and a machine-readable API catalog — all unauthenticated.
/.well-known/agent.json
MCP tools
Exposed via tools/list
and invoked with tools/call. Organizer keys are scoped to
their own classes; admin keys pass an explicit organizer_id.
Tools map onto the REST API and return the same payload shapes, including hosted links, payment status, async registration acceptance, and queue positions.
create_event
Create a class and start its registration worker. Description accepts Markdown. Returns links, embed code and payment readiness.
list_events
List classes visible to the key (organizer-scoped, or all for admin).
get_event
Fetch one class with live registration count and current price.
update_event
Update a class (pricing mode is immutable after creation).
cancel_event
Soft-cancel a class; data is preserved, listings updated.
get_price_history
Return the dynamic-pricing history for a class, newest first.
add_event_photo
Add a photo by URL — Sorted downloads and stores the image (no object storage to manage).
set_primary_event_photo
Make an existing photo the cover/hero image.
remove_event_photo
Remove a photo from a class.
create_photo_upload_url
Get a presigned URL to upload raw image bytes directly.
list_registrations
List registrations visible to the key.
queue_registration
Queue a registration through the ETS hot path.
get_registration
Fetch one registration by class and user.
update_registration
Update registration status or amount paid.
remove_registration
Remove a student from a class.
list_queues
List queue events visible to the key.
create_queue
Create a virtual waiting room.
get_queue
Fetch one queue with live queue length.
update_queue
Update a queue event.
delete_queue
Delete a queue event.
join_queue
Join a visitor to a queue.
get_queue_status
Return a visitor position and estimated wait.
verify_queue_token
Verify a queue release token.
register_organizer
Self-register an organizer from scratch; returns an API key once.
get_payout_onboarding_link
Get the Stripe onboarding URL to hand the human organizer (enables payouts).
API key auth
Generate a key in your dashboard and present it as
X-API-Key
or Authorization: Bearer <key>.
Ideal for programmatic and self-hosted agents.
- ✓ Organizer-scoped — keys only touch their own classes
- ✓ Rate-limited per IP and per key
- ✓ Works for both MCP and REST
OAuth “click to connect”
For hosted agent clients that onboard with a browser flow. The MCP endpoint is a
standards-based protected resource — it publishes
/.well-known/oauth-protected-resource
metadata and challenges with WWW-Authenticate.
- ✓ Browser login + consent, then the client gets an OAuth 2.1 access token
- ✓ Accepted on the same MCP endpoint, interchangeably with API keys
- ✓ RFC 9728 metadata advertises the authorization server
Give your agent something to publish.
Spin up a class, hand back a link, and let Sorted handle the rest — registration, waitlists, and payments included.