{"name":"Sorted Registration Agent","version":"1.1.0","authentication":{"description":"All API requests require an X-API-Key header. Organizer-scoped keys restrict access to the authenticated organizer's events. Admin keys (no user) have unrestricted access and must supply organizer_id explicitly.","apiKeyHeader":"X-API-Key","schemes":["apiKey"]},"description":"Sorted's primary product is a resilient, agent-ready event and registration platform for high-concurrency signups: event creation, capacity, waitlists, dynamic pricing, and student registration. Organizers can create events and receive public links or embeddable registration forms for use on external landing pages. Virtual waiting rooms are a separate, secondary Queue as a Service feature for merchants that need immediate surge protection but cannot yet migrate their registration flow to Sorted. Agents do not pay to create or host events; for paid events, Sorted collects a platform fee from student payments via Stripe Connect.","url":"https://sorted.fast","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"payments":{"x402":{"version":1,"protocol":"x402","description":"Agents can pay platform fees in USDC on Base via x402. Creating an event with capacity over the free tier returns HTTP 402 with x402 payment_requirements (scheme \"exact\"); an x402 client fulfils it with a signed transferWithAuthorization in the X-PAYMENT header.","endpoint":"https://sorted.fast/api/events","network":"base","asset":"USDC"}},"organizer":{"url":"https://sorted.fast","organization":"Sorted"},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"documentationUrl":"https://sorted.fast/api","humanDocumentationUrl":"https://sorted.fast/docs.md","llmsTxtUrl":"https://sorted.fast/llms.txt","schema_version":"0.3","skills":[{"id":"list_events","name":"List Events","description":"Returns all events owned by the authenticated organizer, including status, registration count, current price, and embed URL.","examples":["List all my upcoming events","Show me events with available spots"],"tags":["events","listing"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_event","name":"Get Event","description":"Returns full details for a single event including real-time registration count, current dynamic price, public URL, and embed URL.","examples":["Get details for event 42"],"tags":["events"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"create_event","name":"Create Event","description":"Creates a new event with title, description, capacity, price, datetime, and optional recurrence or dynamic pricing settings. Pricing mode is locked after creation. Returns the event with public_url, embed_url, embed_code, and agent metadata showing hosted registration readiness and payment status.","examples":["Create a yoga event on Friday at 6pm for 20 students at $50","Set up a weekly recurring pottery workshop with dynamic pricing"],"tags":["events","creation"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"update_event","name":"Update Event","description":"Updates an existing event's details such as title, capacity, or price. Pricing mode cannot be changed after the event is created.","examples":["Change the capacity of event 42 to 30"],"tags":["events"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"cancel_event","name":"Cancel Event","description":"Soft-cancels an event by setting cancelled_at. Stops accepting registrations immediately. The event record and its registrations are preserved.","examples":["Cancel event 42","Close registration for the Friday yoga session"],"tags":["events","cancellation"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_price_history","name":"Get Price History","description":"Returns the full dynamic pricing history for an event, including each price change, the reason, and timestamp.","examples":["Show price history for event 42"],"tags":["events","pricing"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"register_student","name":"Register Student","description":"Queues a student registration via the high-concurrency ETS path. Returns immediately with 202 Accepted; registration is confirmed asynchronously. Handles capacity limits and waitlisting automatically.","examples":["Register user 7 in event 42","Add student to the waitlist for event 99"],"tags":["registrations"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"embed_registration_form","name":"Embed Registration Form","description":"The embed_url returned with each event points to a self-contained LiveView form at /events/:id/embed. Drop it in an iframe on any landing page. Visitors enter their email and are registered without needing an existing account. Paid events render Stripe Payment Element inside the iframe when the organizer's Stripe account is ready.","examples":["Give me the iframe URL for event 42","Embed the signup form on my landing page"],"tags":["registrations","embed"],"inputModes":[],"outputModes":["text/html"]}],"supportedInterfaces":[{"type":"a2a","url":"https://sorted.fast/.well-known/agent.json"},{"type":"api","url":"https://sorted.fast/api"},{"type":"mcp","url":"https://sorted.fast/mcp"}]}