{"openapi":"3.1.0","info":{"title":"Know Me Best — Muse connector API","version":"1.0.0","description":"Two modes under one brand.\n\nKnow Me Best Daily (free): five shared questions a day. You lock in five predictions, then the person answers and each guess is revealed. You cannot see their answers, and they cannot begin, until your predictions are locked. This API sends you no personal data and receives none — only question ids, choice indexes and optional confidence.\n\nParty Mode (paid): create, review and publish a live 10-question trivia game about the host.\n\nEvery published game costs 5.99 USD once, supports up to 30 players and stays available for 30 days.\nDrafting and editing never charge anyone. Publishing always requires the host to approve and complete the payment in their own browser.\nThis API never sends email, SMS or WhatsApp messages, and never accepts or returns card details.\n\nExample prompts:\n- Create a funny game about me for my birthday.\n- Make a clean family version with ten questions.\n- Let me review the game before I buy it.\n- Replace question four with something about my favorite vacation.\n- Publish the game and give me a link to invite everyone.\n- Show me the final results.\n- Play today's Know Me Best challenge.\n- Do you actually know me? Lock in your guesses.\n- Predict how I'll answer today's five questions.\n- How well did you know me today?\n- Show me our Know Me Best streak."},"servers":[{"url":"https://knowmebest.app/api/public/muse/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Service","description":"Health and format metadata"},{"name":"Games","description":"Draft, review, publish and follow a game"},{"name":"Questions","description":"Edit the ten questions"},{"name":"Daily","description":"The free daily challenge: predict first, then the person answers"}],"paths":{"/health":{"get":{"tags":["Service"],"operationId":"getHealth","summary":"Check that the connector is reachable","responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"api_version":{"type":"string"},"time":{"type":"string","format":"date-time"}}},"example":{"status":"ok","api_version":"v1","time":"2026-01-01T12:00:00.000Z"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/catalog":{"get":{"tags":["Service"],"operationId":"getCatalog","summary":"Read the single game format, price, occasions and tones","responses":{"200":{"description":"Format metadata","content":{"application/json":{"schema":{"type":"object"},"example":{"format":{"key":"know_me_best_live","questions_per_game":10,"max_players":30},"price":{"amount_cents":599,"currency":"USD","billing":"one_time_per_published_game"},"occasions":[{"key":"birthday","label":"Birthday"},{"key":"friends_night","label":"Friends night"},{"key":"family_gathering","label":"Family gathering"},{"key":"bachelor_bachelorette","label":"Bachelor / bachelorette"},{"key":"shower","label":"Bridal or baby shower"},{"key":"reunion","label":"Reunion"},{"key":"just_for_fun","label":"Just for fun"}],"tones":[{"key":"clean","label":"Clean"},{"key":"playful","label":"Playful"},{"key":"competitive","label":"Competitive"}]}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/draft":{"post":{"tags":["Games"],"operationId":"createGameDraft","summary":"Draft a game. Never charges and never publishes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftRequest"},"example":{"host_display_name":"Priya","occasion":"birthday","tone":"playful","facts":["I could eat cold soba noodles every single day.","I would love to visit Patagonia.","I'm known for remembering everyone's coffee order."]}}}},"responses":{"201":{"description":"Draft created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftResponse"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}":{"parameters":[{"$ref":"#/components/parameters/GameId"}],"get":{"tags":["Games"],"operationId":"getGame","summary":"Read a game and its questions","responses":{"200":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Games"],"operationId":"updateGame","summary":"Update title, occasion, tone, schedule or host email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":60},"occasion":{"$ref":"#/components/schemas/Occasion"},"tone":{"$ref":"#/components/schemas/Tone"},"scheduled_at":{"type":["string","null"],"format":"date-time"},"host_email":{"type":["string","null"],"format":"email"}}},"example":{"title":"Who knows Priya best?","tone":"competitive"}}}},"responses":{"200":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Games"],"operationId":"deleteGame","summary":"Delete a game and everything in it","responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}/questions":{"parameters":[{"$ref":"#/components/parameters/GameId"}],"post":{"tags":["Questions"],"operationId":"addQuestion","summary":"Add a question (only while the game has fewer than ten)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionInput"},"example":{"prompt":"Where would Priya most like to travel next?","choices":["Patagonia","Lisbon","Seoul","Reykjavik"],"correct_choice_index":0,"reveal_text":"She's been saving photos of Patagonia for years."}}}},"responses":{"201":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}/questions/{questionId}":{"parameters":[{"$ref":"#/components/parameters/GameId"},{"$ref":"#/components/parameters/QuestionId"}],"patch":{"tags":["Questions"],"operationId":"updateQuestion","summary":"Replace the text, choices, correct answer or position of one question","requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/QuestionInput"},{"type":"object","properties":{"position":{"type":"integer","minimum":1,"maximum":10}}}]}}}},"responses":{"200":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Questions"],"operationId":"deleteGameQuestion","summary":"Delete one question from a game","responses":{"200":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/questions/{questionId}":{"parameters":[{"$ref":"#/components/parameters/QuestionId"}],"delete":{"tags":["Questions"],"operationId":"deleteQuestion","summary":"Delete a question by id alone","responses":{"200":{"description":"The game","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Game"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}/checkout":{"parameters":[{"$ref":"#/components/parameters/GameId"}],"post":{"tags":["Games"],"operationId":"createCheckout","summary":"Get a payment link the host opens themselves","description":"Returns a URL to the game review page, where Stripe renders and processes the payment form. The host must review the price and approve the payment themselves in their own browser. Know Me Best never receives card details, and the game is only published after the payment is verified server-side with Stripe — on return from checkout or through the signature-verified Stripe webhook if the host closes the tab.","responses":{"200":{"description":"Checkout link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}/status":{"parameters":[{"$ref":"#/components/parameters/GameId"}],"get":{"tags":["Games"],"operationId":"getGameStatus","summary":"Follow a game: payment state, join link, room code, player count","responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/games/{id}/results":{"parameters":[{"$ref":"#/components/parameters/GameId"}],"get":{"tags":["Games"],"operationId":"getGameResults","summary":"Read the winner, podium and final scores","responses":{"200":{"description":"Results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultsResponse"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily":{"get":{"tags":["Daily"],"operationId":"getDailyChallenge","summary":"Read today's five daily questions","description":"The same five questions are served to everyone for a given day. You must predict the person's answers before they can play. This endpoint sends you no personal data.","responses":{"200":{"description":"Today's challenge","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyChallenge"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily/sessions":{"post":{"tags":["Daily"],"operationId":"createDailySession","summary":"Start a session awaiting your five predictions","description":"Returns today's questions and the prediction schema. No play link exists yet: the person cannot answer until your predictions are locked.","responses":{"201":{"description":"Session awaiting predictions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailySession"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily/sessions/{sessionId}/predictions":{"parameters":[{"$ref":"#/components/parameters/SessionId"}],"post":{"tags":["Daily"],"operationId":"lockDailyPredictions","summary":"Lock all five predictions and receive the private play link","description":"Send exactly five predictions in one call. They are locked atomically and permanently: a second attempt returns 409. Only after locking do we return the play URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionsRequest"},"example":{"predictions":[{"question_id":"6f1c…","choice_index":2,"confidence":80},{"question_id":"9a2d…","choice_index":0,"confidence":65},{"question_id":"1b7e…","choice_index":3},{"question_id":"c34f…","choice_index":1,"confidence":55},{"question_id":"e08a…","choice_index":2,"confidence":90}]}}}},"responses":{"200":{"description":"Predictions locked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyLockedResponse"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily/sessions/{sessionId}/result":{"parameters":[{"$ref":"#/components/parameters/SessionId"}],"get":{"tags":["Daily"],"operationId":"getDailyResult","summary":"Read how many of your guesses matched","description":"Before all five answers are in this returns progress only. Nothing about your locked guesses is revealed early.","responses":{"200":{"description":"Progress or final result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyResult"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"The connector secret issued for this integration, sent as `Authorization: Bearer <token>`."}},"parameters":{"GameId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"QuestionId":{"name":"questionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"SessionId":{"name":"sessionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unauthorized","not_found","validation_failed","rate_limited","conflict","content_rejected","generation_failed","server_error"]},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","required":["field","message"],"properties":{"field":{"type":"string"},"message":{"type":"string"}}}},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":["integer","null"]},"request_id":{"type":"string"}}}}},"DailyQuestion":{"type":"object","required":["id","position","prompt","choices","category"],"properties":{"id":{"type":"string","format":"uuid"},"position":{"type":"integer","minimum":1,"maximum":5},"prompt":{"type":"string"},"choices":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"string"}},"category":{"type":"string"}}},"DailyChallenge":{"type":"object","properties":{"challenge_number":{"type":"integer"},"play_date":{"type":"string","format":"date"},"questions_per_day":{"type":"integer","const":5},"choices_per_question":{"type":"integer","const":4},"price":{"type":"object","properties":{"amount_cents":{"type":"integer","const":0},"currency":{"type":"string"},"billing":{"type":"string","const":"free"}}},"questions":{"type":"array","items":{"$ref":"#/components/schemas/DailyQuestion"}},"instructions":{"type":"array","items":{"type":"string"}},"suggested_next_action":{"type":"string"}}},"DailySession":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"status":{"type":"string","const":"awaiting_prediction"},"challenge_number":{"type":"integer"},"play_date":{"type":"string","format":"date"},"expires_at":{"type":"string","format":"date-time"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/DailyQuestion"}},"prediction_schema":{"type":"object"},"predictions_required":{"type":"integer","const":5},"instructions":{"type":"array","items":{"type":"string"}},"play_url":{"type":["string","null"],"description":"Always null here. Lock predictions to receive it."},"message":{"type":"string"},"suggested_next_action":{"type":"string","const":"lock_predictions"}}},"Prediction":{"type":"object","required":["question_id","choice_index"],"properties":{"question_id":{"type":"string","format":"uuid"},"choice_index":{"type":"integer","minimum":0,"maximum":3},"confidence":{"type":"integer","minimum":0,"maximum":100}}},"PredictionsRequest":{"type":"object","required":["predictions"],"properties":{"predictions":{"type":"array","minItems":5,"maxItems":5,"items":{"$ref":"#/components/schemas/Prediction"}}}},"DailyLockedResponse":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"status":{"type":"string","const":"ready"},"challenge_number":{"type":"integer"},"play_date":{"type":"string","format":"date"},"play_url":{"type":"string","format":"uri","description":"Private, single-session link. Send it to the person."},"expires_at":{"type":"string","format":"date-time"},"locked_at":{"type":"string","format":"date-time"},"predictions_locked":{"type":"boolean","const":true},"suggested_message":{"type":"string"},"suggested_next_action":{"type":"string"},"message":{"type":"string"}}},"DailyResult":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"challenge_number":{"type":"integer"},"play_date":{"type":"string","format":"date"},"completed":{"type":"boolean"},"answered_count":{"type":"integer"},"total_questions":{"type":"integer"},"matches":{"type":"integer","minimum":0,"maximum":5},"per_question":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"category":{"type":"string"},"match":{"type":"boolean"}}}},"current_streak":{"type":"integer"},"best_streak":{"type":"integer"},"lifetime_accuracy_percent":{"type":["integer","null"]},"share_text":{"type":"string","description":"Spoiler-free: contains no questions, choices or answers."},"result_url":{"type":"string","format":"uri"},"message":{"type":"string"},"reaction":{"type":"string","description":"Short playful line about the score. Never names a question or choice."},"suggested_message":{"type":"string","description":"Polished, spoiler-free line the assistant can present to the person as-is."},"suggested_next_action":{"type":"string","enum":["wait_and_check_again","share_perfect_result","invite_streak_reminder","encourage_day_two","share_result"]}}},"Occasion":{"type":"string","enum":["birthday","friends_night","family_gathering","bachelor_bachelorette","shower","reunion","just_for_fun"]},"Tone":{"type":"string","enum":["clean","playful","competitive"]},"QuestionInput":{"type":"object","required":["prompt","choices","correct_choice_index"],"properties":{"prompt":{"type":"string","minLength":5,"maxLength":160},"choices":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"string","maxLength":60}},"correct_choice_index":{"type":"integer","minimum":0,"maximum":3},"reveal_text":{"type":["string","null"],"maxLength":160}}},"Question":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"position":{"type":"integer"},"prompt":{"type":"string"},"choices":{"type":"array","items":{"type":"string"}},"correct_choice_index":{"type":"integer"},"reveal_text":{"type":["string","null"]},"source":{"type":"string","enum":["host","generated"]},"sensitive":{"type":"boolean"}}},"Price":{"type":"object","properties":{"amount_cents":{"type":"integer"},"currency":{"type":"string"}}},"Game":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["draft","awaiting_payment","paid","lobby","live","completed","expired"]},"title":{"type":"string"},"host_display_name":{"type":"string"},"occasion":{"$ref":"#/components/schemas/Occasion"},"tone":{"$ref":"#/components/schemas/Tone"},"scheduled_at":{"type":["string","null"],"format":"date-time"},"question_count":{"type":"integer"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/Question"}},"price":{"$ref":"#/components/schemas/Price"},"max_players":{"type":"integer"},"paid":{"type":"boolean"},"expired":{"type":"boolean"},"join_code":{"type":["string","null"]},"join_url":{"type":["string","null"]},"qr_url":{"type":["string","null"]},"preview_url":{"type":["string","null"]},"host_management_url":{"type":["string","null"]},"ready_for_checkout":{"type":"boolean"},"validation_issues":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}}}},"suggested_next_action":{"type":"string"}}},"DraftRequest":{"type":"object","required":["host_display_name"],"properties":{"host_display_name":{"type":"string","maxLength":40},"title":{"type":"string","maxLength":60},"occasion":{"$ref":"#/components/schemas/Occasion"},"tone":{"$ref":"#/components/schemas/Tone"},"scheduled_at":{"type":["string","null"],"format":"date-time"},"host_email":{"type":["string","null"],"format":"email"},"facts":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":280},"description":"Facts the host supplied about themselves. Correct answers are only drawn from these."},"questions":{"type":"array","maxItems":10,"items":{"$ref":"#/components/schemas/QuestionInput"}}}},"DraftResponse":{"allOf":[{"$ref":"#/components/schemas/Game"},{"type":"object","properties":{"host_access_token":{"type":"string","description":"Shown once. Hand it to the host — it is their only way back to this game."},"preview_token":{"type":"string"},"notice":{"type":"string"}}}]},"CheckoutResponse":{"allOf":[{"$ref":"#/components/schemas/Game"},{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"payment_required":{"type":"boolean"},"already_paid":{"type":"boolean"},"message":{"type":"string"}}}]},"StatusResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string"},"paid":{"type":"boolean"},"expired":{"type":"boolean"},"player_count":{"type":"integer"},"max_players":{"type":"integer"},"join_code":{"type":["string","null"]},"join_url":{"type":["string","null"]},"qr_url":{"type":["string","null"]},"invitation_text":{"type":["string","null"]},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"suggested_next_action":{"type":"string"}}},"ResultsResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string"},"completed":{"type":"boolean"},"winner":{"$ref":"#/components/schemas/Standing"},"podium":{"type":"array","items":{"$ref":"#/components/schemas/Standing"}},"standings":{"type":"array","items":{"$ref":"#/components/schemas/Standing"}},"player_count":{"type":"integer"}}},"Standing":{"type":"object","properties":{"rank":{"type":"integer"},"display_name":{"type":"string"},"avatar":{"type":"string"},"score":{"type":"integer"}}}}}}