For agents & LLMs
Registration infrastructure
your agent 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 Code pluginclaude plugin install josefrichter/sorted-claude-plugin
How it works
One call in.
Three things back.
Your agent never touches the registration hot path or handles money. It publishes what Sorted returns.
public_url
A hosted registration page
embed_code
A drop-in iframe for any site
payment
Whether payouts are ready, with an onboarding link if not
Three ways to connect.
01 / MCP server
POST /mcp
A Model Context Protocol endpoint (JSON-RPC 2.0) for Claude, Cursor, Codex and any MCP client. Core tools manage classes and registrations; virtual waiting rooms are a separate secondary option. Docs and the API catalog are also available as MCP resources.
02 / REST API
X-API-Key · or Bearer
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.
03 / Discovery
/.well-known/agent.json
Self-describing for agents: an A2A agent card, an LLM site map, operating instructions, and a machine-readable API catalog — all unauthenticated.
27 tools. One server.
Everything an organizer can do in the dashboard, your agent can do over MCP.
Organizer keys are scoped to their own classes; admin keys pass an explicit organizer_id.
Events
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.
Photos
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.
Registrations
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.
Queues
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.
Accounts & payouts
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).
Two ways to authenticate.
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.
Connect over MCP in a minute, or start with a REST key.