{"openapi":"3.1.0","info":{"title":"Hintora API","version":"v1","description":"The boundary between Hintora clients and model and voice providers. Every provider call is authenticated, metered against a plan, and proxied, so no client ever holds a provider key."},"servers":[{"url":"https://api.hintora.ai"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"cookieAuth":{"type":"apiKey","in":"cookie","name":"__Host-hintora_session"}}},"paths":{"/v1/health":{"get":{"summary":"Liveness and configuration","description":"Answers while degraded. `status` is `degraded` when a setting this deployment needs is unusable; the routes that depend on it answer 503 and the rest keep working. `?deep=1` also runs a `select 1` against the database (3 s at most) and adds `database`; a database that is down answers 503. Deep checks are limited to 12 a minute per address (429 past it). During a maintenance window (scheduled in Ops, or the `MAINTENANCE_UNTIL` override) it still answers 200 and adds `maintenance` with `until` (absent for a window that lasts until lifted) and the operator’s `message` (`Accept-Language`), while every other route but `/v1/maintenance`, the staff maintenance routes and the webhooks answers 503 `maintenance` with `Retry-After` and `until`. A scheduled window announced and not yet begun adds `upcomingMaintenance`.","security":[],"responses":{"200":{"description":"Liveness and configuration","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["ok","degraded"]},"service":{"type":"string","const":"api"},"version":{"type":"string"},"configuration":{"type":"object","properties":{"ok":{"type":"boolean"},"issues":{"type":"array","items":{"type":"object","properties":{"variable":{"type":"string"},"reason":{"type":"string","enum":["missing","invalid","rejected"]},"impact":{"type":"string"},"detail":{"type":"string"}},"required":["variable","reason","impact","detail"],"additionalProperties":false}}},"required":["ok","issues"],"additionalProperties":false},"database":{"type":"object","properties":{"status":{"type":"string","enum":["ok","down","not_configured"]},"latencyMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["status","latencyMs"],"additionalProperties":false},"accountDeletions":{"type":"object","properties":{"run":{"type":"string","enum":["off","on"]},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["run","from"],"additionalProperties":false},"crons":{"type":"object","properties":{"configured":{"type":"boolean"}},"required":["configured"],"additionalProperties":false},"maintenance":{"type":"object","properties":{"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"message":{"type":"string"},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"additionalProperties":false},"upcomingMaintenance":{"type":"object","properties":{"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"message":{"type":"string"},"id":{"type":"string","minLength":1,"maxLength":64}},"required":["startsAt","noticeFrom","id"],"additionalProperties":false}},"required":["status","service","version","configuration"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/maintenance":{"get":{"summary":"Maintenance now or soon","description":"Public, and answered through a window (HNTR-869fm5btr). `phase` is `none`, `upcoming` (a window whose warnings have begun) or `active`; `window` has its times (`endsAt` null: until lifted), the operator’s `message` in the language asked (`Accept-Language`) or null, and the apps it stops. Ask again after `retryAfter` seconds: at most 20 while a window runs, so a lift is noticed within half a minute. `now` is the API’s clock, for a countdown. Browsers may keep it 10 seconds; the API reads it from a short in-memory cache.","security":[],"responses":{"200":{"description":"Maintenance now or soon","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"phase":{"type":"string","enum":["none","upcoming","active"]},"window":{"anyOf":[{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"message":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"null"}]},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}}},"required":["id","startsAt","endsAt","noticeFrom","message","scope"],"additionalProperties":false},{"type":"null"}]},"retryAfter":{"type":"integer","exclusiveMinimum":0,"maximum":86400},"now":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["phase","window","retryAfter","now"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/anonymous":{"post":{"summary":"Create an anonymous device session","description":"Creates one isolated guest account and device, then returns a rotating token pair. Registration is rate-limited; all provider routes still require the bearer token.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deviceName":{"type":"string","minLength":1,"maxLength":120},"platform":{"type":"string","enum":["macos","windows","web"]}},"required":["deviceName","platform"],"additionalProperties":false}}}},"responses":{"201":{"description":"Create an anonymous device session","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string","const":"Bearer"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["accessToken","refreshToken","tokenType","expiresIn","deviceId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/capabilities":{"get":{"summary":"What works right now","description":"Which modules this deployment can serve at this moment: sign-in, guests, the assistant, visual guidance, spoken answers, voice input, billing and name changes. A module is off while a setting it needs is missing, invalid or refused, and only that module. Names no setting.","security":[],"responses":{"200":{"description":"What works right now","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"signIn":{"type":"boolean"},"signInConfirm":{"type":"boolean"},"guestAccess":{"type":"boolean"},"assistant":{"type":"boolean"},"visualGuidance":{"type":"boolean"},"visualGuidanceV2":{"type":"boolean"},"guideFirstStep":{"type":"boolean"},"guideWithoutScreenshot":{"type":"boolean"},"guideCandidateContainerState":{"type":"boolean"},"guideCandidateSection":{"type":"boolean"},"guideOpenPage":{"type":"boolean"},"guideStepEvidence":{"type":"boolean"},"guideAppMenus":{"type":"boolean"},"inkGesture":{"type":"boolean"},"router":{"type":"boolean"},"welcomeMatch":{"type":"boolean"},"welcomeMatchScene":{"type":"boolean"},"editInPlace":{"type":"boolean"},"routerResults":{"type":"boolean"},"speech":{"type":"boolean"},"practiceVoice":{"type":"boolean"},"transcription":{"type":"boolean"},"dictation":{"type":"boolean"},"dictationLiveWords":{"type":"boolean"},"dictationStyle":{"type":"boolean"},"dictationCommands":{"type":"boolean"},"dictationCommandsOn":{"type":"boolean"},"dictationFastFinish":{"type":"boolean"},"dictationFaithful":{"type":"boolean"},"dictationTighten":{"type":"boolean"},"practiceCommands":{"type":"boolean"},"writeKey":{"type":"boolean"},"fileEdit":{"type":"boolean"},"frontFileEdits":{"type":"boolean"},"billing":{"type":"boolean"},"billingInApp":{"type":"boolean"},"profileEditing":{"type":"boolean"},"productAnalytics":{"type":"boolean"},"support":{"type":"boolean"},"referrals":{"type":"boolean"},"library":{"type":"boolean"},"librarySource":{"type":"boolean"},"teams":{"type":"boolean"},"mcp":{"type":"boolean"},"connectors":{"type":"boolean"},"meetingCalendars":{"type":"boolean"},"notetaker":{"type":"boolean"},"apps":{"type":"boolean"},"appsPaused":{"type":"boolean"},"actionsApi":{"type":"boolean"},"actionsConnectors":{"type":"boolean"},"captures":{"type":"boolean"},"attachments":{"type":"boolean"},"actionOffers":{"type":"boolean"},"doRoute":{"type":"boolean"},"reminders":{"type":"boolean"},"sketches":{"type":"boolean"},"sketchCallouts":{"type":"boolean"},"sketchSpotlight":{"type":"boolean"},"sketchSteer":{"type":"boolean"},"personalContext":{"type":"boolean"},"memoryExtract":{"type":"boolean"},"memoryTranslate":{"type":"boolean"},"memorySummary":{"type":"boolean"},"memoryReview":{"type":"boolean"},"memoryRecall":{"default":false,"type":"boolean"},"memoryAnswers":{"default":false,"type":"boolean"},"aboutAnswers":{"default":false,"type":"boolean"},"sessionThread":{"default":false,"type":"boolean"},"sessionContext":{"default":false,"type":"boolean"},"endWords":{"default":false,"type":"boolean"},"guideFollowUp":{"default":false,"type":"boolean"},"guideFollowUpStatus":{"default":false,"type":"boolean"},"clickForMe":{"default":false,"type":"boolean"},"earlierCaptures":{"default":false,"type":"boolean"},"captureTimings":{"default":false,"type":"boolean"},"captureWordTimings":{"default":false,"type":"boolean"},"modelOverride":{"default":false,"type":"boolean"},"agents":{"type":"boolean"},"liveAnswers":{"type":"boolean"},"agentSchedules":{"type":"boolean"},"agentTriggers":{"type":"boolean"},"agentMacHands":{"type":"boolean"},"agentLocalTools":{"type":"boolean"},"agentDocuments":{"type":"boolean"},"agentKeepGoing":{"type":"boolean"},"boards":{"type":"boolean"},"boardInk":{"type":"boolean"},"replayPick":{"type":"boolean"},"askStreaming":{"type":"boolean"},"mcpServers":{"type":"boolean"},"agentSkills":{"type":"boolean"},"agentThreads":{"type":"boolean"},"agentBuild":{"type":"boolean"},"agentPreview":{"type":"boolean"},"agentImages":{"type":"boolean"},"agentStock":{"type":"boolean"},"agentBrand":{"type":"boolean"},"agentApps":{"type":"boolean"},"agentThreadFocus":{"type":"boolean"},"earlySpeech":{"type":"boolean"},"smarterAnswers":{"type":"boolean"},"browserAgent":{"type":"boolean"},"openThat":{"type":"boolean"},"styleAsks":{"type":"boolean"},"nextQuestions":{"type":"boolean"},"pastAnswers":{"type":"boolean"},"seenAnswers":{"type":"boolean"},"pastWriting":{"type":"boolean"},"emailStyle":{"type":"boolean"},"emailStyleEdit":{"type":"boolean"},"ackLines":{"type":"boolean"},"drive":{"type":"boolean"},"livePictures":{"type":"boolean"},"draftEdits":{"type":"boolean"},"recipientPicks":{"type":"boolean"},"boards3d":{"type":"boolean"},"orchestrator":{"type":"boolean"}},"required":["signIn","guestAccess","assistant","visualGuidance","speech","transcription","dictation","billing","profileEditing"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/app/requirement":{"get":{"summary":"Which app versions are still served","description":"Decision 0130: the asking Mac’s channel (from `X-Hintora-App-Channel`, else this deployment’s), its minimum version and build, the versions it no longer serves, staff’s message in the language asked for, and the verdict on the version the request names (`X-Hintora-App-Version` and `X-Hintora-App-Build`, or the build in URLSession’s User-Agent). Always answered, whatever version asks. A Mac below the minimum is answered 426 `update-required` on its app routes.","security":[],"responses":{"200":{"description":"Which app versions are still served","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channel":{"type":"string","enum":["prod","stage","dev"]},"minimumVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"minimumBuild":{"anyOf":[{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,5}){0,3}$"},{"type":"null"}]},"blocked":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^(?:(\\d{1,4}(?:\\.\\d{1,5}){1,3})(?: \\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))?|\\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))$"}},"recommendedVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"suggestUpdate":{"type":"boolean"},"message":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"verdict":{"type":"string","enum":["allowed","below-minimum","blocked"]},"cacheSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["channel","minimumVersion","minimumBuild","blocked","recommendedVersion","suggestUpdate","message","verdict","cacheSeconds"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/options":{"get":{"summary":"Sign-in options","description":"Whether this deployment can sign people in with WorkOS, and whether it still issues guest devices to builds without sign-in.","security":[],"responses":{"200":{"description":"Sign-in options","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"signIn":{"type":"object","properties":{"provider":{"type":"string","const":"workos"},"available":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["google","password"]}}},"required":["provider","available"],"additionalProperties":false},"guestAccess":{"type":"boolean"}},"required":["signIn","guestAccess"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/sign-in":{"post":{"summary":"Start an app sign-in","description":"Creates a ten-minute attempt bound to the app by an S256 PKCE challenge. The Mac opens `authorizationUrl` in the person’s default browser and waits for `callbackScheme`; it says so with `opensIn: browser`, which decides where the tab ends after “Yes, sign in”. Builds that open it in their own browser sheet, and 0.4, leave it off. An `email` attempt has no URL and is finished in the app.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deviceName":{"type":"string","minLength":1,"maxLength":120},"platform":{"type":"string","enum":["macos","windows","web"]},"codeChallenge":{"type":"string","pattern":"^[A-Za-z0-9_-]{43}$"},"codeChallengeMethod":{"type":"string","const":"S256"},"intent":{"default":"sign_in","type":"string","enum":["sign_up","sign_in"]},"method":{"default":"authkit","type":"string","enum":["authkit","google","email"]},"callbackScheme":{"type":"string","enum":["hintora","hintora-stage","hintora-dev"]},"deviceModel":{"type":"string","minLength":1,"maxLength":80},"opensIn":{"type":"string","enum":["browser","sheet"]}},"required":["deviceName","platform","codeChallenge","codeChallengeMethod"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start an app sign-in","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attemptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"authorizationUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["attemptId","authorizationUrl","expiresIn"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/sign-in/{attemptId}":{"get":{"summary":"Continue to WorkOS AuthKit","description":"Opened in the browser. Sets a state cookie that ties this browser to the attempt and redirects through WorkOS straight to Google, or to AuthKit on the sign-up or sign-in screen. Opened again in the same browser it keeps the state, so an earlier tab still finishes. Nothing in the query decides where the tab ends: that is the attempt’s `opensIn`, from the app.","security":[],"responses":{"302":{"description":"Continue to WorkOS AuthKit"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/workos/callback":{"get":{"summary":"Finish WorkOS AuthKit","description":"WorkOS returns here. Verifies the state, exchanges the code and creates or updates the user. An attempt with a `callbackScheme` first goes to the dashboard’s `/auth/confirm?attempt=…` with a five-minute one-time cookie, and nothing is issued until that browser answers (decision 0090); “Yes, sign in” then redirects a sheet to `<callbackScheme>://auth/callback` with a one-time code (or an `error`), and the person’s own browser to the dashboard’s `/auth/signed-in?scheme=…&attempt=…#code=…`, which opens that link and stays. An attempt without one, from older builds, opens a browser session and redirects to the website’s signed-in page.","security":[],"responses":{"302":{"description":"Finish WorkOS AuthKit"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/sign-in/{attemptId}/code":{"post":{"summary":"Issue the one-time app code","description":"Called by the signed-in page with the browser session. Returns a five-minute code and the `hintora://` link that hands it to the app; each call replaces the previous code.","security":[{"cookieAuth":[]}],"responses":{"201":{"description":"Issue the one-time app code","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{4}-[A-Z0-9]{4}$"},"callbackUrl":{"type":"string","format":"starts_with","pattern":"^hintora:\\/\\/auth\\/callback.*"},"deviceName":{"type":"string"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","callbackUrl","deviceName","expiresIn"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/sign-in/{attemptId}/confirmation":{"get":{"summary":"Read a browser sign-in’s confirmation","description":"Called by the dashboard’s `/auth/confirm` (its Origin only) with the one-time cookie the callback left in the browser that signed in (decision 0090). Returns the device’s own name and model (control, bidi and zero-width characters removed), when it asked, whether from this browser’s network, the seconds left and the form token for the answer; without that cookie, or once answered or after five minutes, 401.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"Read a browser sign-in’s confirmation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deviceName":{"type":"string"},"deviceModel":{"type":["string","null"]},"platform":{"type":"string","enum":["macos","windows","web"]},"requestedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"sameNetwork":{"type":"boolean"},"expiresIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"token":{"type":"string","minLength":16}},"required":["deviceName","deviceModel","platform","requestedAt","sameNetwork","expiresIn","token"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Answer a browser sign-in’s confirmation","description":"A plain form from the dashboard (its Origin) with `decision` (`yes` or `no`) and the `token` the page read, beside the one-time cookie. Works once. `yes` issues the app code and redirects on as the callback did; `no` ends the attempt with nothing issued, records `sign_in_denied` and emails the owner, then redirects to `/auth/confirm?done=denied`.","security":[{"cookieAuth":[]}],"responses":{"302":{"description":"Answer a browser sign-in’s confirmation"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/token":{"post":{"summary":"Exchange the app code for device tokens","description":"The app presents the attempt, the code and its PKCE verifier. Five wrong tries or five minutes spend the code.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attemptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string","minLength":8,"maxLength":16},"codeVerifier":{"type":"string","pattern":"^[A-Za-z0-9._~-]{43,128}$"}},"required":["attemptId","code","codeVerifier"],"additionalProperties":false}}}},"responses":{"201":{"description":"Exchange the app code for device tokens","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string","const":"Bearer"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["accessToken","refreshToken","tokenType","expiresIn","deviceId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/sign-in/{attemptId}/status":{"post":{"summary":"Check a browser sign-in","description":"The app asks with its PKCE verifier while the person signs in in the default browser, about every two seconds. Answers 200 `pending` (still in the browser, or confirmed and waiting for the link) or `failed` with the reason, and 401 once expired or denied (“This wasn’t me”). It never answers with tokens (decision 0090): only the link back, which the confirming browser opens, finishes a sign-in. A wrong verifier counts against the attempt; 60 checks a minute per attempt.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"codeVerifier":{"type":"string","pattern":"^[A-Za-z0-9._~-]{43,128}$"}},"required":["codeVerifier"],"additionalProperties":false}}}},"responses":{"200":{"description":"Check a browser sign-in","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"pending"},"expiresIn":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["status","expiresIn"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"failed"},"reason":{"type":"string","enum":["expired","cancelled","unavailable","account_conflict","disabled","failed"]}},"required":["status","reason"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/email/verify":{"post":{"summary":"Sign in with the emailed code","description":"The app presents the code WorkOS emailed to confirm the address after a password, with its PKCE verifier. Five wrong codes spend the attempt.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attemptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string"},"codeVerifier":{"type":"string","pattern":"^[A-Za-z0-9._~-]{43,128}$"}},"required":["attemptId","code","codeVerifier"],"additionalProperties":false}}}},"responses":{"201":{"description":"Sign in with the emailed code","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string","const":"Bearer"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["accessToken","refreshToken","tokenType","expiresIn","deviceId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/app/password":{"post":{"summary":"Sign in or sign up with a password","description":"Signs in, or with `intent: sign_up` creates the account, with WorkOS. Answers 201 with device tokens, or 202 when WorkOS emailed a code to confirm the address first; that code goes to `/v1/auth/app/email/verify`.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attemptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","maxLength":320},"password":{"type":"string","minLength":1,"maxLength":1024},"intent":{"default":"sign_in","type":"string","enum":["sign_up","sign_in"]},"codeVerifier":{"type":"string","pattern":"^[A-Za-z0-9._~-]{43,128}$"}},"required":["attemptId","email","password","codeVerifier"],"additionalProperties":false}}}},"responses":{"201":{"description":"Sign in or sign up with a password","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string","const":"Bearer"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["accessToken","refreshToken","tokenType","expiresIn","deviceId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/token":{"post":{"summary":"Refresh an access token","description":"Rotates the refresh token on every use, spending it and issuing its successor in one atomic conditional update, so of two requests with the same token only one ever gets a pair. Losing that race, or presenting an already-rotated token, means the value leaked, so the whole device chain is revoked rather than the one request refused. One exception, a reply the app never got: within 60 seconds of the rotation, while the token it was rotated to has never been used, the spent token is rotated again (the unused successor revoked) and the device stays signed in. Nothing after the commit fails the request.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"refreshToken":{"type":"string","minLength":1}},"required":["refreshToken"],"additionalProperties":false}}}},"responses":{"201":{"description":"Refresh an access token","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string","const":"Bearer"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["accessToken","refreshToken","tokenType","expiresIn","deviceId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/sign-out":{"post":{"summary":"Sign this device out","description":"Revokes the device and every refresh token it holds, freeing its place in the plan's device limit.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Sign this device out"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/web/handoff":{"post":{"summary":"Open the account area from the app","description":"Returns a one-time URL, valid for 60 seconds, that signs the browser in and lands on one of the `/account` pages.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"default":"/account","type":"string","enum":["/account","/account/profile","/account/usage","/account/billing","/account/devices","/account/security","/account/invoices","/account/team","/account/referrals","/account/download","/account/cancel"]},"locale":{"type":"string","enum":["en","bg"]}},"additionalProperties":false}}}},"responses":{"201":{"description":"Open the account area from the app","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["url","expiresIn"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/web/handoff/{token}":{"get":{"summary":"Spend an account handoff","description":"Opened in the browser. Signs it in and redirects to the requested account page, or to `/account?handoff=expired`.","security":[],"responses":{"302":{"description":"Spend an account handoff"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/web/sign-out":{"post":{"summary":"Sign this browser out","description":"Ends the browser session and the WorkOS session it signed in with, and clears the cookie.","security":[{"cookieAuth":[]}],"responses":{"204":{"description":"Sign this browser out"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account":{"get":{"summary":"The account","description":"Profile, the plan in force and why, subscription state, and how much of this session and this week is used. With `?include=productAnalytics`, also whether Help improve Hintora is on (`productAnalytics`), where the capability `productAnalytics` is true; without it the key is left out, so a 0.4 Hub that reads the account strictly keeps reading it.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"The account","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Change the name or Help improve Hintora","description":"Updates the name on the WorkOS user (both parts together), turns Help improve Hintora on or off (`productAnalytics`, where the capability `productAnalytics` is true), or both, and returns the account. Turning it off stops product analytics for the account from the next event and asks PostHog to delete what it has.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"firstName":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"productAnalytics":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Change the name or Help improve Hintora","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/plan":{"put":{"summary":"Choose a plan","description":"For an account offered `planChoices` (the Hintora team): moves it to Lite, Pro, Max or Team at no charge and returns the account. Anyone else is refused with 403; their plan is bought.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["free","lite","pro","max","team"]}},"required":["plan"],"additionalProperties":false}}}},"responses":{"200":{"description":"Choose a plan","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/usage":{"get":{"summary":"Usage this session and this week","description":"How much of the plan’s allowance this 5-hour session and this week have used and when each resets, whether allowances are enforced, and the monthly period’s totals by UTC day.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Usage this session and this week","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"requests":{"type":"integer","minimum":0,"maximum":9007199254740991},"tokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"searches":{"type":"integer","minimum":0,"maximum":9007199254740991},"speechCharacters":{"type":"integer","minimum":0,"maximum":9007199254740991},"transcriptionSeconds":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["date","requests","tokens","searches","speechCharacters","transcriptionSeconds"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["questions","dictation","meetings","agents","memory","other"]},"requests":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["feature","requests","costMicros"],"additionalProperties":false}}},"required":["plan","usage","limits","usageLimits","days"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/devices":{"get":{"summary":"Signed-in devices","description":"The person’s devices, most recently used first, and how many the plan allows.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Signed-in devices","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"devices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"platform":{"type":"string","enum":["macos","windows","web"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSeenAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"current":{"type":"boolean"}},"required":["id","name","platform","createdAt","lastSeenAt","current"],"additionalProperties":false}},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["devices","maxDevices"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/devices/{deviceId}":{"delete":{"summary":"Sign a device out","description":"Revokes the device and its refresh tokens, freeing its place in the plan.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Sign a device out"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/sign-out-everywhere":{"post":{"summary":"Sign out everywhere","description":"Revokes every device, every browser session and every WorkOS session behind them.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Sign out everywhere"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/sign-in-methods":{"get":{"summary":"Ways to sign in","description":"The providers WorkOS has linked and the methods the person has signed in with, most recently used first. `linkedProvidersLoaded` is false when WorkOS could not be asked.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Ways to sign in","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"methods":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["google","apple","microsoft","github","password","email_code","passkey","sso","other"]},"label":{"type":"string"},"lastUsedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["kind","label","lastUsedAt"],"additionalProperties":false}},"linkedProvidersLoaded":{"type":"boolean"}},"required":["methods","linkedProvidersLoaded"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/two-factor/setup":{"post":{"summary":"Start setting up two-factor authentication","description":"A new authenticator secret (`otpauthUri` for a QR code, `secret` to type). Nothing changes for signing in until a code confirms it.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Start setting up two-factor authentication","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"otpauthUri":{"type":"string","format":"starts_with","pattern":"^otpauth:\\/\\/totp\\/.*"},"secret":{"type":"string","minLength":16}},"required":["otpauthUri","secret"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/two-factor/confirm":{"post":{"summary":"Turn on two-factor authentication","description":"The first right code turns it on and returns ten single-use recovery codes, shown only this once.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false}}}},"responses":{"201":{"description":"Turn on two-factor authentication","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"recoveryCodes":{"minItems":10,"maxItems":10,"type":"array","items":{"type":"string"}}},"required":["recoveryCodes"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/two-factor/disable":{"post":{"summary":"Turn off two-factor authentication","description":"Takes a current code or a recovery code.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false},{"type":"object","properties":{"recoveryCode":{"type":"string","minLength":8,"maxLength":20}},"required":["recoveryCode"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Turn off two-factor authentication","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/two-factor/recovery-codes":{"post":{"summary":"New recovery codes","description":"Takes a current code; the old recovery codes stop working.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false}}}},"responses":{"201":{"description":"New recovery codes","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"recoveryCodes":{"minItems":10,"maxItems":10,"type":"array","items":{"type":"string"}}},"required":["recoveryCodes"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/auth/two-factor/verify":{"post":{"summary":"Finish a sign-in with the second step","description":"For a sign-in that answered 202 `next: two_factor`: a code or a recovery code returns the device tokens. Five wrong codes end the challenge; ten failures lock the second step for 15 minutes.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string"}},"required":["challengeId","code"],"additionalProperties":false},{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"recoveryCode":{"type":"string","minLength":8,"maxLength":20}},"required":["challengeId","recoveryCode"],"additionalProperties":false}]}}}},"responses":{"201":{"description":"Finish a sign-in with the second step"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/home/slides":{"get":{"summary":"Home carousel slides","description":"News, tips, offers and events live now for this account’s plan, in order, at most 8. The app always shows its own “Ask Hintora” slide first. `Accept-Language: bg` returns Bulgarian where it exists.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Home carousel slides","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slides":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["news","tip","offer","event"]},"title":{"type":"string","minLength":1,"maxLength":60},"detail":{"type":"string","maxLength":140},"palette":{"type":"string","enum":["brand","warm","mint","ink"]},"action":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":24},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"destination":{"anyOf":[{"type":"string","enum":["whatsNew","referrals","plan","team","dictionary","snippets","setup","support"]},{"type":"null"}]}},"required":["label","url","destination"],"additionalProperties":false},{"type":"null"}]},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","kind","title","detail","palette","action","endsAt"],"additionalProperties":false}}},"required":["slides"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/posts":{"get":{"summary":"Published blog articles","description":"Every published article on hintora.ai/blogs, newest first, without its text: the blog index, its feed and the sitemap. An empty list is why the website shows no Blog link.","security":[],"responses":{"200":{"description":"Published blog articles","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"posts":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"description":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"publishedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"readingMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["slug","title","description","cover","tags","authorName","publishedAt","updatedAt","readingMinutes"],"additionalProperties":false}}},"required":["posts"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/posts/{slug}":{"get":{"summary":"A published blog article","description":"The article in Markdown with what its page needs for search and sharing. Asked for by an address it had before a rename, it answers with its current `slug`, which the website redirects to.","security":[],"responses":{"200":{"description":"A published blog article","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"description":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"publishedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"readingMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"seoTitle":{"type":["string","null"]},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"bodyMarkdown":{"type":"string"}},"required":["slug","title","description","cover","tags","authorName","publishedAt","updatedAt","readingMinutes","seoTitle","canonicalUrl","bodyMarkdown"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/images/{id}":{"get":{"summary":"A picture in a blog article","description":"The stored bytes, in the type they were uploaded as, cached for a year: a picture never changes under its id. Served without a session.","security":[],"responses":{"200":{"description":"A picture in a blog article","content":{"image/webp":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/studio/posts":{"get":{"summary":"Every blog article, for the editor","description":"Drafts and published articles, most recently changed first, and who is signed in. For the editor on blogs.hintora.ai: a browser session of someone with a verified address on a staff domain; anyone else is refused with 403.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"Every blog article, for the editor","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"author":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"}},"required":["email","name"],"additionalProperties":false},"posts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"seoTitle":{"type":["string","null"]},"description":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published"]},"publishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","slug","title","seoTitle","description","cover","tags","authorName","canonicalUrl","status","publishedAt","createdAt","updatedAt"],"additionalProperties":false}}},"required":["author","posts"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Start a blog draft","description":"A draft with the title given, or \"Untitled article\". Without a slug one is made from the title and numbered when taken; a slug given that is taken is refused.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"}},"additionalProperties":false}}}},"responses":{"201":{"description":"Start a blog draft","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"seoTitle":{"type":["string","null"]},"description":{"type":"string"},"bodyMarkdown":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published"]},"publishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","slug","title","seoTitle","description","bodyMarkdown","cover","tags","authorName","canonicalUrl","status","publishedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/studio/posts/{id}":{"get":{"summary":"One blog article, for the editor","description":"A draft or a published article in full.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"One blog article, for the editor","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"seoTitle":{"type":["string","null"]},"description":{"type":"string"},"bodyMarkdown":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published"]},"publishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","slug","title","seoTitle","description","bodyMarkdown","cover","tags","authorName","canonicalUrl","status","publishedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Save or publish a blog article","description":"Saves the fields sent. `status: published` publishes; an article that is or becomes published must have a title, a description, its text, and a description of its cover picture, and the refusal names whatever is missing. A published article given a new slug still answers at the old one.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string","minLength":1,"maxLength":140},"seoTitle":{"anyOf":[{"type":"string","maxLength":90},{"type":"null"}]},"description":{"type":"string","maxLength":300},"bodyMarkdown":{"type":"string","maxLength":200000},"coverImageId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"coverAlt":{"type":"string","maxLength":200},"tags":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"authorName":{"type":"string","maxLength":80},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Save or publish a blog article","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","maxLength":80,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"seoTitle":{"type":["string","null"]},"description":{"type":"string"},"bodyMarkdown":{"type":"string"},"cover":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"alt":{"type":"string","maxLength":200}},"required":["id","url","width","height","alt"],"additionalProperties":false},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"authorName":{"type":"string"},"canonicalUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published"]},"publishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","slug","title","seoTitle","description","bodyMarkdown","cover","tags","authorName","canonicalUrl","status","publishedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a blog article","description":"For good. Its pictures stay, since another article may show them.","security":[{"cookieAuth":[]}],"responses":{"204":{"description":"Delete a blog article"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/blog/studio/images":{"post":{"summary":"Upload a picture for a blog article","description":"The body is the picture, at most 2 MB, as WebP, PNG, JPEG, GIF or AVIF, with `?width=&height=` in pixels. The editor scales and compresses it first.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"image/webp":{}}},"responses":{"201":{"description":"Upload a picture for a blog article","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","url","width","height"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/notifications":{"get":{"summary":"Notifications","description":"Current announcements and what happened to this account (such as a referral paying out), newest first, at most 50. `Accept-Language: bg` returns Bulgarian where it exists. `?destinations=support` names destinations the client can open beyond the original ones; without it a notification pointing elsewhere comes with no destination.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Notifications","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notifications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["announcement","account"]},"title":{"type":"string","minLength":1,"maxLength":60},"body":{"type":"string","maxLength":90},"destination":{"anyOf":[{"type":"string","enum":["whatsNew","referrals","plan","team","dictionary","snippets","setup","support"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"isRead":{"type":"boolean"}},"required":["id","kind","title","body","destination","createdAt","isRead"],"additionalProperties":false}}},"required":["notifications"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/notifications/read":{"post":{"summary":"Mark notifications read","description":"Either `ids` or `all: true`. Read state is kept per account, so every Mac agrees.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"ids":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["ids"],"additionalProperties":false},{"type":"object","properties":{"all":{"type":"boolean","const":true}},"required":["all"],"additionalProperties":false}]}}}},"responses":{"204":{"description":"Mark notifications read"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/telemetry/events":{"post":{"summary":"Send diagnostic events","description":"Up to 50 events from a signed-in app, each a name, level, time and listed primitive fields; never content. Each is written to the log as the device’s app. The dashboard sends only `dashboard_error` with the browser session, logged as `dashboard`. Rate-limited per device or browser session.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"events":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"time":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"level":{"type":"string","enum":["debug","info","warn","error"]},"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,63}$"},"fields":{"type":"object","propertyNames":{"type":"string","enum":["errorCode","errorDomain","reason","signInMethod","provider","mode","step","result","source","channel","version","build","previousVersion","osVersion","architecture","locale","language","durationMs","attempt","count","requestId","closeCode"]},"additionalProperties":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"},{"type":"boolean"}]}}},"required":["time","level","name"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"responses":{"202":{"description":"Send diagnostic events","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["accepted"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/transform":{"post":{"summary":"Rewrite selected text","description":"Rewrites `text` as `instruction` asks (shorter, more formal, fix grammar, translate). The text is data, never instructions. Answers 502 and leaves the text alone when the rewrite fails its checks.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":8000},"instruction":{"type":"string","minLength":1,"maxLength":300},"appCategory":{"type":"string","maxLength":20},"limit":{"type":"integer","minimum":1,"maximum":100000},"purpose":{"type":"string","enum":["rewrite","extract","draft","generate","write","fileEdit"]},"writeMode":{"type":"string","enum":["reply","note","polish"]},"context":{"type":"string","maxLength":6000},"personal":{"type":"object","properties":{"about":{"type":"string","minLength":1,"maxLength":1400},"memories":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":400},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["text"],"additionalProperties":false}},"recall":{"type":"boolean"},"writingStyle":{"type":"string","minLength":1,"maxLength":6000}},"additionalProperties":false},"pastTalk":{"type":"number","const":1}},"required":["text","instruction"],"additionalProperties":false}}}},"responses":{"200":{"description":"Rewrite selected text","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","minLength":1},"chars":{"type":"integer","minimum":0,"maximum":9007199254740991},"over":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/avatar":{"put":{"summary":"Set the profile photo","description":"The body is a PNG of at most 200 kB, resized to 256 px by the client. It replaces a photo from Google in `profile.avatarUrl` until it is removed.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"image/png":{}}},"responses":{"200":{"description":"Set the profile photo","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Remove the profile photo","description":"The photo from Google, if there is one, shows again.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Remove the profile photo","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"emailVerified":{"type":"boolean"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"memberSince":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastSignInAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","email","emailVerified","firstName","lastName","avatarUrl","memberSince","lastSignInAt"],"additionalProperties":false},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"entitlement":{"type":"object","properties":{"source":{"type":"string","enum":["grant","staff","subscription","plan"]},"grantReason":{"type":["string","null"]},"grantExpiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["source","grantReason","grantExpiresAt"],"additionalProperties":false},"subscription":{"type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"status":{"type":"string","enum":["active","past_due","canceled"]},"cancelAtPeriodEnd":{"type":"boolean"},"renewsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["provider","status","cancelAtPeriodEnd","renewsAt"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false},"usageLimits":{"type":"object","properties":{"enforced":{"type":"boolean"},"session":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false},"week":{"type":"object","properties":{"percentUsed":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"resetsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"usedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["percentUsed","resetsAt"],"additionalProperties":false}},"required":["enforced","session","week"],"additionalProperties":false},"billingAvailable":{"type":"boolean"},"profileEditable":{"type":"boolean"},"twoFactor":{"type":"object","properties":{"enabled":{"type":"boolean"},"enabledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"recoveryCodesLeft":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["enabled","enabledAt","recoveryCodesLeft"],"additionalProperties":false},"planChoices":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"productAnalytics":{"type":"boolean"},"analyticsId":{"type":"string","pattern":"^u_[0-9a-f]{32}$"},"launch":{"type":"object","properties":{"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"paidPlan":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},{"type":"null"}]}},"required":["endsAt","paidPlan"],"additionalProperties":false}},"required":["profile","plan","entitlement","subscription","usage","limits","usageLimits","billingAvailable","profileEditable"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/avatar/{userId}":{"get":{"summary":"A profile photo","description":"A PNG by account id, with an ETag. Served without a session, like chat avatars: the id is unguessable and the address changes with the photo.","security":[],"responses":{"200":{"description":"A profile photo","content":{"image/png":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/activity":{"get":{"summary":"Recent account activity","description":"The last 20 sign-ins, sign-outs and changes to the account, newest first.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Recent account activity","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["signed_up","signed_in","signed_out","signed_out_everywhere","device_signed_out","profile_updated","plan_changed","access_granted","access_revoked","referral_signed_up","referral_rewarded","two_factor_enabled","two_factor_disabled","recovery_codes_regenerated","recovery_code_used","two_factor_locked","payment_succeeded","payment_failed"]},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"via":{"anyOf":[{"type":"string","enum":["app","browser"]},{"type":"null"}]},"method":{"anyOf":[{"type":"string","enum":["google","apple","microsoft","github","password","email_code","passkey","sso","other"]},{"type":"null"}]},"deviceName":{"type":["string","null"]},"planFrom":{"type":["string","null"]},"planTo":{"type":["string","null"]}},"required":["id","kind","occurredAt","via","method","deviceName","planFrom","planTo"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/delete":{"post":{"summary":"Delete the account","description":"Closes the account at once and deletes nothing yet (decision 0086 as amended 19 Oct 2026): hidden, every device, browser session and MCP app signed out, a Stripe plan set to end with its paid period. For 30 days the person can sign in and restore it (or ask the team); then the daily sweep deletes the WorkOS user, what names them, the library, meetings, calendars and connected apps, ends the Stripe subscription and deletes the Stripe customer, while `DELETION_SWEEP` is on. 502 with nothing changed while Stripe can’t set the plan to end. The body repeats the account’s email address. It needs a sign-in in the last 10 minutes (the app’s device, or the browser session’s sign-in; a session the app handed over carries the app’s), or, for an account with two-factor authentication, the authenticator’s `code`; otherwise 403 reauthentication-required and nothing changes, its words (English or Bulgarian, `Accept-Language`) saying to sign in again. Refused first while a Whop plan still renews, and for the only owner of a team others are on, so no code is spent on a request refused anyway.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmEmail":{"type":"string","minLength":1,"maxLength":320},"code":{"type":"string"}},"required":["confirmEmail"],"additionalProperties":false}}}},"responses":{"204":{"description":"Delete the account"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/account/restore":{"get":{"summary":"Restore it? (a page)","description":"Where a sign-in to an account scheduled for deletion lands, within its 30 days (decision 0086 as amended 19 Oct 2026), with a fifteen-minute one-time cookie set by the WorkOS callback. An HTML page: “Your account is scheduled for deletion on <date>. Restore it?” with one button. Without a valid cookie it says to sign in again.","security":[],"responses":{"200":{"description":"Restore it? (a page)","content":{"text/html":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Restore the account (the page’s answer)","description":"The restore page’s own form, with its cookie, from the API’s own origin: the account opens again with everything in it, and a plan the deletion set to end renews again while its period runs. Its sign-ins stay revoked, so the person signs in again. An HTML page either way.","security":[],"responses":{"200":{"description":"Restore the account (the page’s answer)","content":{"text/html":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/support/tickets":{"get":{"summary":"Your conversations with the Hintora team","description":"Help and feedback (decision 0089): the account’s conversations, newest first, each with its kind, first line, status (open, answered or closed) and whether a reply from the team is unread, and how many are.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Your conversations with the Hintora team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"unread":{"type":"boolean"}},"required":["id","number","type","status","subject","createdAt","updatedAt","unread"],"additionalProperties":false}},"unread":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["tickets","unread"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Write to the Hintora team","description":"A problem, an idea or a question, with up to 3 files adding up to 3 MB (inline base64) and, unless left out, app details: the app’s version, the system’s, the language and recent error codes; the server adds the plan. Kept, emailed to the support inbox with Reply-To the account’s address, and confirmed to the person by email. 10 a day; a guest device is refused.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"message":{"type":"string","minLength":1,"maxLength":5000},"attachments":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"data":{"type":"string","minLength":4,"maxLength":4000000}},"required":["name","mediaType","data"],"additionalProperties":false}},"diagnostics":{"default":null,"anyOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["macos","windows","web"]},"appVersion":{"type":"string","minLength":1,"maxLength":60},"osVersion":{"type":"string","minLength":1,"maxLength":100},"language":{"type":"string","enum":["en","bg"]},"recentErrors":{"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9_.:-]+$"}},"build":{"type":"string","minLength":1,"maxLength":40},"channel":{"type":"string","enum":["prod","stage","dev"]},"chip":{"type":"string","enum":["appleSilicon","intel"]},"macModel":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[A-Za-z0-9,._ -]+$"},"freeDiskBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"ramBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"permissions":{"type":"object","properties":{"screenRecording":{"type":"string","enum":["granted","denied","notDetermined"]},"microphone":{"type":"string","enum":["granted","denied","notDetermined"]},"accessibility":{"type":"string","enum":["granted","denied","notDetermined"]}},"required":["screenRecording","microphone","accessibility"],"additionalProperties":false},"audioInput":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^\\p{Cc}\\p{Cf}]+$"},"audioOutput":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^\\p{Cc}\\p{Cf}]+$"},"integrationsConnected":{"type":"integer","minimum":0,"maximum":1000},"secondsSinceLaunch":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastUpdateCheckAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"apiLatencyMs":{"type":"integer","minimum":0,"maximum":600000},"recentErrorIds":{"maxItems":10,"type":"array","items":{"type":"string","pattern":"^[0-9a-f]{32}$"}}},"required":["platform","appVersion","osVersion","language","recentErrors"],"additionalProperties":false},{"type":"null"}]}},"required":["type","message"],"additionalProperties":false}}}},"responses":{"201":{"description":"Write to the Hintora team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"unread":{"type":"boolean"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["you","hintora"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"authorFaceUrl":{"type":"string","maxLength":2048,"format":"uri"},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnosticsIncluded":{"type":"boolean"}},"required":["id","number","type","status","subject","createdAt","updatedAt","unread","messages","diagnosticsIncluded"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/support/tickets/{id}":{"get":{"summary":"One conversation","description":"One of the account’s conversations, whole: every message, the files each carries and who wrote it. Reading it counts the team’s replies as read. Anyone else’s answers 404.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"One conversation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"unread":{"type":"boolean"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["you","hintora"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"authorFaceUrl":{"type":"string","maxLength":2048,"format":"uri"},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnosticsIncluded":{"type":"boolean"}},"required":["id","number","type","status","subject","createdAt","updatedAt","unread","messages","diagnosticsIncluded"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/support/tickets/{id}/messages":{"post":{"summary":"Reply in a conversation","description":"The person’s reply, with up to 3 files, emailed to the support inbox. An answered or closed conversation opens again. 40 a day. Answers the conversation, whole.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":5000},"attachments":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"data":{"type":"string","minLength":4,"maxLength":4000000}},"required":["name","mediaType","data"],"additionalProperties":false}}},"required":["message"],"additionalProperties":false}}}},"responses":{"201":{"description":"Reply in a conversation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"unread":{"type":"boolean"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["you","hintora"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"authorFaceUrl":{"type":"string","maxLength":2048,"format":"uri"},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnosticsIncluded":{"type":"boolean"}},"required":["id","number","type","status","subject","createdAt","updatedAt","unread","messages","diagnosticsIncluded"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/support/tickets/{id}/attachments/{attachmentId}":{"get":{"summary":"A file in a conversation","description":"A file as it was sent, as a download (`Content-Disposition: attachment`), never cached. Only the conversation’s own account may read it.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"A file in a conversation","content":{"application/octet-stream":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets":{"get":{"summary":"Every conversation, for Ops","description":"Hintora Ops only (decision 0089): signed with `OPS_API_SECRET` over the method, path and query, `X-Hintora-Ops-Timestamp` (within 5 minutes), a one-time `X-Hintora-Ops-Nonce`, the staff member’s WorkOS id and address (on `STAFF_EMAIL_DOMAINS`) and the body’s SHA-256, in `X-Hintora-Ops-Signature: v1=…`. One page, newest first, `?status=open|answered|closed`, `?limit=` 1–100 (50) and `?cursor=` from `nextCursor`, with how many conversations stand in each status. 503 without the secret; 120 a minute per staff member.","security":[],"responses":{"200":{"description":"Every conversation, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tickets":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","number","type","status","subject","email","createdAt","updatedAt"],"additionalProperties":false}},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":0,"maximum":9007199254740991},"answered":{"type":"integer","minimum":0,"maximum":9007199254740991},"closed":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["open","answered","closed"],"additionalProperties":false},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}]}},"required":["tickets","counts","nextCursor"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/maintenance":{"get":{"summary":"Maintenance windows, for Ops","description":"Hintora Ops only, signed as above with the staff member’s Ops role as well (`X-Hintora-Ops-Staff-Role`, scheme `hintora-ops-v3`): every maintenance route answers 403 to anyone but an Ops administrator. Answered through a window. The latest windows, newest start first, what the apps are told now, and the `MAINTENANCE_UNTIL` override when it is set (it wins over every window).","security":[],"responses":{"200":{"description":"Maintenance windows, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"windows":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["scheduled","active","completed","cancelled"]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"createdBy":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"liftedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","startsAt","endsAt","noticeFrom","scope","messageEn","messageBg","createdBy","createdAt","updatedAt","liftedAt","cancelledAt"],"additionalProperties":false}},"current":{"type":"object","properties":{"phase":{"type":"string","enum":["none","upcoming","active"]},"window":{"anyOf":[{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"message":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"null"}]},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}}},"required":["id","startsAt","endsAt","noticeFrom","message","scope"],"additionalProperties":false},{"type":"null"}]},"retryAfter":{"type":"integer","exclusiveMinimum":0,"maximum":86400},"now":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["phase","window","retryAfter","now"],"additionalProperties":false},"override":{"anyOf":[{"type":"object","properties":{"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"message":{"type":["string","null"]}},"required":["until","message"],"additionalProperties":false},{"type":"null"}]}},"required":["windows","current","override"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Schedule maintenance, or start it now, from Ops","description":"Hintora Ops only, signed as above. Without `startsAt` it starts now; without `noticeFrom` the apps are warned from 24 hours before (or now). `endsAt` null lasts until lifted, needs `allowLong`, and ends by itself after 7 days. 400 for a start or end in the past, an end before the start, under 5 minutes, over 24 hours without `allowLong` (7 days at most), a scope narrower than every app, or an overlap with another window. Recorded with the staff member.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"allowLong":{"type":"boolean"}},"required":["endsAt"],"additionalProperties":false}}}},"responses":{"201":{"description":"Schedule maintenance, or start it now, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["scheduled","active","completed","cancelled"]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"createdBy":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"liftedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","startsAt","endsAt","noticeFrom","scope","messageEn","messageBg","createdBy","createdAt","updatedAt","liftedAt","cancelledAt"],"additionalProperties":false}},"required":["window"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/maintenance/{id}":{"patch":{"summary":"Change a maintenance window, from Ops","description":"Hintora Ops only, signed as above. A scheduled window may move (start, end, warnings); one under way may end later or sooner (never in the past: lift it) and be reworded. Same refusals as scheduling.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"allowLong":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Change a maintenance window, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["scheduled","active","completed","cancelled"]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"createdBy":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"liftedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","startsAt","endsAt","noticeFrom","scope","messageEn","messageBg","createdBy","createdAt","updatedAt","liftedAt","cancelledAt"],"additionalProperties":false}},"required":["window"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/maintenance/{id}/lift":{"post":{"summary":"Lift a maintenance window now, from Ops","description":"Hintora Ops only, signed as above. Ends a window under way at once; every API instance answers again within 15 seconds and the apps resume by themselves, still signed in. 400 for one that isn’t under way.","security":[],"responses":{"200":{"description":"Lift a maintenance window now, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["scheduled","active","completed","cancelled"]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"createdBy":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"liftedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","startsAt","endsAt","noticeFrom","scope","messageEn","messageBg","createdBy","createdAt","updatedAt","liftedAt","cancelledAt"],"additionalProperties":false}},"required":["window"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/maintenance/{id}/cancel":{"post":{"summary":"Cancel a scheduled maintenance window, from Ops","description":"Hintora Ops only, signed as above. Calls off a window that hasn’t started, and its warnings with it. 400 for one under way (lift it) or already over.","security":[],"responses":{"200":{"description":"Cancel a scheduled maintenance window, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["scheduled","active","completed","cancelled"]},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"noticeFrom":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"scope":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","enum":["api","mac","hub","dashboard","web"]}},"messageEn":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},{"type":"null"}]},"createdBy":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"liftedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","startsAt","endsAt","noticeFrom","scope","messageEn","messageBg","createdBy","createdAt","updatedAt","liftedAt","cancelledAt"],"additionalProperties":false}},"required":["window"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/switches":{"get":{"summary":"Feature switches, for Ops","description":"Hintora Ops only, signed as above with the staff member’s Ops role (scheme `hintora-ops-v3`): 403 to anyone but an Ops administrator (decision 0119). Every feature the catalogue marks switchable, in its order: its plain name, what this deployment says (`deployed`), what every API instance answers by within `cacheSeconds` (`effective`), and who switched it off, when and why.","security":[],"responses":{"200":{"description":"Feature switches, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"switches":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"setting":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"name":{"type":"string","minLength":1,"maxLength":80},"area":{"type":"string","enum":["answers","dictation","guides","drawings","agents"]},"about":{"type":"string","maxLength":4000},"deployed":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"deployedOff":{"type":"boolean"},"effective":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"off":{"type":"boolean"},"offValue":{"type":"string","enum":["off","disabled"]},"onValue":{"anyOf":[{"type":"string","enum":["on","enabled"]},{"type":"null"}]},"override":{"anyOf":[{"type":"object","properties":{"state":{"type":"string","enum":["off","on"]},"by":{"type":"string","minLength":3,"maxLength":320},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"reason":{"type":"string","maxLength":500}},"required":["state","by","at","reason"],"additionalProperties":false},{"type":"null"}]}},"required":["setting","name","area","about","deployed","deployedOff","effective","off","offValue","onValue","override"],"additionalProperties":false}},"cacheSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["switches","cacheSeconds"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Switch a feature off, or back to as deployed, from Ops","description":"Hintora Ops only, signed as above. `state` is `off` (the setting reads as `off` or `disabled` everywhere: its gates, its routes and `GET /v1/capabilities`) or `deployed` (the switch is cleared). There is no on: a feature the deployment holds off stays off. This instance applies it at once, every other within `cacheSeconds`. 400 for a setting that isn’t switchable. Switching off what is off, or restoring what is as deployed, changes nothing. Recorded with the staff member and the reason.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"setting":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"state":{"type":"string","enum":["off","on","deployed"]},"reason":{"type":"string","minLength":3,"maxLength":500,"pattern":"^[^\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]*$"}},"required":["setting","state","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Switch a feature off, or back to as deployed, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"switch":{"type":"object","properties":{"setting":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"name":{"type":"string","minLength":1,"maxLength":80},"area":{"type":"string","enum":["answers","dictation","guides","drawings","agents"]},"about":{"type":"string","maxLength":4000},"deployed":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"deployedOff":{"type":"boolean"},"effective":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"off":{"type":"boolean"},"offValue":{"type":"string","enum":["off","disabled"]},"onValue":{"anyOf":[{"type":"string","enum":["on","enabled"]},{"type":"null"}]},"override":{"anyOf":[{"type":"object","properties":{"state":{"type":"string","enum":["off","on"]},"by":{"type":"string","minLength":3,"maxLength":320},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"reason":{"type":"string","maxLength":500}},"required":["state","by","at","reason"],"additionalProperties":false},{"type":"null"}]}},"required":["setting","name","area","about","deployed","deployedOff","effective","off","offValue","onValue","override"],"additionalProperties":false}},"required":["switch"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/app-versions":{"get":{"summary":"App version requirements, for Ops","description":"Hintora Ops only, signed as above with the staff member’s Ops role: 403 to anyone but an Ops administrator (decision 0130). Each channel’s minimum version and build, blocked versions, message and who set them, with how many active Macs (seen in the last 30 days) and people run each version and build per channel.","security":[],"responses":{"200":{"description":"App version requirements, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requirements":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["prod","stage","dev"]},"minimumVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"minimumBuild":{"anyOf":[{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,5}){0,3}$"},{"type":"null"}]},"blocked":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^(?:(\\d{1,4}(?:\\.\\d{1,5}){1,3})(?: \\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))?|\\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))$"}},"recommendedVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"message":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"setBy":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"setAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]}},"required":["channel","minimumVersion","minimumBuild","blocked","recommendedVersion","message","messageBg","setBy","setAt","reason"],"additionalProperties":false}},"versions":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["prod","stage","dev"]},"version":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"build":{"anyOf":[{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,5}){0,3}$"},{"type":"null"}]},"devices":{"type":"integer","minimum":0,"maximum":9007199254740991},"people":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["channel","version","build","devices","people"],"additionalProperties":false}},"cacheSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["requirements","versions","cacheSeconds"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Set or clear a channel’s app version requirement, from Ops","description":"Hintora Ops only, signed as above. Replaces the channel’s requirement (every field empty clears it) and answers how many active Macs and people it stops; with `dryRun` nothing is written. This instance applies it at once, every other within `cacheSeconds`. Recorded with the staff member and the reason.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channel":{"type":"string","enum":["prod","stage","dev"]},"minimumVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"minimumBuild":{"anyOf":[{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,5}){0,3}$"},{"type":"null"}]},"blocked":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^(?:(\\d{1,4}(?:\\.\\d{1,5}){1,3})(?: \\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))?|\\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))$"}},"recommendedVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"message":{"anyOf":[{"type":"string","maxLength":240,"pattern":"^[^\\u0000-\\u001f\\u007f]*$"},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","maxLength":240,"pattern":"^[^\\u0000-\\u001f\\u007f]*$"},{"type":"null"}]},"reason":{"type":"string","minLength":3,"maxLength":500,"pattern":"^[^\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]*$"},"dryRun":{"type":"boolean"}},"required":["channel","minimumVersion","minimumBuild","blocked","recommendedVersion","message","messageBg","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Set or clear a channel’s app version requirement, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requirement":{"type":"object","properties":{"channel":{"type":"string","enum":["prod","stage","dev"]},"minimumVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"minimumBuild":{"anyOf":[{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,5}){0,3}$"},{"type":"null"}]},"blocked":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^(?:(\\d{1,4}(?:\\.\\d{1,5}){1,3})(?: \\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))?|\\((\\d{1,9}(?:\\.\\d{1,5}){0,3})\\))$"}},"recommendedVersion":{"anyOf":[{"type":"string","pattern":"^\\d{1,4}(\\.\\d{1,5}){1,3}$"},{"type":"null"}]},"message":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"messageBg":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}]},"setBy":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"setAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]}},"required":["channel","minimumVersion","minimumBuild","blocked","recommendedVersion","message","messageBg","setBy","setAt","reason"],"additionalProperties":false},"affected":{"type":"object","properties":{"devices":{"type":"integer","minimum":0,"maximum":9007199254740991},"people":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["devices","people"],"additionalProperties":false},"dryRun":{"type":"boolean"}},"required":["requirement","affected","dryRun"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/launch/invites":{"post":{"summary":"Invite people to the soft launch, from Ops","description":"Hintora Ops only, signed as above: 403 to anyone but an Ops administrator (decision 0122). Each person gets an invitation with their own link (`/start?ref=<cohort>&i=<token>`); an address already invited is left as it is. With `send` the invitation goes now, otherwise the follow-up job sends it in the person’s next morning. Answers each address’s outcome and link.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cohort":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,39}$"},"invitees":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"company":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"locale":{"default":"en","type":"string","enum":["en","bg"]},"timeZone":{"type":"string","maxLength":64,"pattern":"^[A-Za-z_]+(?:\\/[A-Za-z0-9_+-]+){0,2}$"}},"required":["email"],"additionalProperties":false}},"note":{"type":"string","minLength":1,"maxLength":500,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"send":{"default":false,"type":"boolean"}},"required":["cohort","invitees"],"additionalProperties":false}}}},"responses":{"200":{"description":"Invite people to the soft launch, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","maxLength":320},"outcome":{"type":"string","enum":["invited","already_invited","sent","send_failed"]},"reason":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"inviteId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"link":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["email","outcome","inviteId","link"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/launch/invites/{id}":{"post":{"summary":"Steer one invitee’s follow-ups, from Ops","description":"Hintora Ops only, signed as above, administrators only (decision 0122). `pause`, `resume`, `hold` for some days, `close` with a reason, `send_next` (the step due now, ignoring the morning and the spacing, never an opt-out), `resend_invite` (the invitation again now, even to someone who has it or an account; never an opt-out), `new_link` (the old link stops counting) or `call_booked` (the onboarding call shows in the calendar: noted, follow-ups held three days). 404 for an invitation that isn’t there.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"action":{"type":"string","const":"pause"}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"resume"}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"hold"},"days":{"type":"integer","minimum":1,"maximum":30}},"required":["action","days"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"close"},"reason":{"type":"string","enum":["not_interested","wrong_person","duplicate","converted","other"]}},"required":["action","reason"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"send_next"}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"resend_invite"}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"new_link"}},"required":["action"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"call_booked"}},"required":["action"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Steer one invitee’s follow-ups, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["active","paused","objected","closed"]},"holdUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"sent":{"anyOf":[{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},{"type":"null"}]},"skipped":{"anyOf":[{"type":"string","maxLength":48},{"type":"null"}]},"link":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["status","holdUntil","sent","skipped","link"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/launch/preview":{"get":{"summary":"A follow-up email as it would go, for Ops","description":"Hintora Ops only, signed as above, administrators only (decision 0122). `?step=<step>&locale=<en|bg>`: the subject, HTML and text with a made-up person.","security":[],"responses":{"200":{"description":"A follow-up email as it would go, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"step":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"locale":{"type":"string","enum":["en","bg"]},"subject":{"type":"string"},"html":{"type":"string"},"text":{"type":"string"}},"required":["step","locale","subject","html","text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"A follow-up email with unsaved words, for Ops","description":"Hintora Ops only, signed as above, administrators only (decision 0122). As the GET, with the `settings` being edited applied.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"step":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"locale":{"type":"string","enum":["en","bg"]},"settings":{"type":"object","properties":{"paused":{"type":"boolean"},"window":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"integer","minimum":0,"maximum":336},"weeklyMax":{"type":"integer","minimum":1,"maximum":7},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"waitHours":{"type":"number","minimum":0,"maximum":2160},"offersCall":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false}},"required":["step","locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"A follow-up email with unsaved words, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"step":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"locale":{"type":"string","enum":["en","bg"]},"subject":{"type":"string"},"html":{"type":"string"},"text":{"type":"string"}},"required":["step","locale","subject","html","text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/launch/settings":{"get":{"summary":"The follow-up schedule as Ops edits it","description":"Hintora Ops only, signed as above, administrators only (decision 0122, migration 0089). The saved settings (steps on or off, waits, the call, words per language, sending rules) and the built-in values beside them.","security":[],"responses":{"200":{"description":"The follow-up schedule as Ops edits it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"settings":{"type":"object","properties":{"paused":{"type":"boolean"},"window":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"integer","minimum":0,"maximum":336},"weeklyMax":{"type":"integer","minimum":1,"maximum":7},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"waitHours":{"type":"number","minimum":0,"maximum":2160},"offersCall":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false},"defaults":{"type":"object","properties":{"window":{"type":"object","properties":{"days":{"type":"array","items":{"type":"number"}},"startHour":{"type":"number"},"endHour":{"type":"number"}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"number"},"endHour":{"type":"number"}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"number"},"weeklyMax":{"type":"number"},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"waitHours":{"type":["number","null"]},"offersCall":{"type":"boolean"},"hasButton":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string"},"preview":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"after":{"type":"string"}},"required":["subject","preview","body","button","after"],"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string"},"preview":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"after":{"type":"string"}},"required":["subject","preview","body","button","after"],"additionalProperties":false}},"required":["en","bg"],"additionalProperties":false}},"required":["waitHours","offersCall","hasButton","words"],"additionalProperties":false},"required":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]}},"required":["window","promptWindow","spacingHours","weeklyMax","steps"],"additionalProperties":false},"callConfigured":{"type":"boolean"},"mode":{"type":"string","enum":["on","shadow","off"]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"updatedBy":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]}},"required":["settings","defaults","callConfigured","mode","updatedAt","updatedBy"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"put":{"summary":"Save the follow-up schedule","description":"Hintora Ops only, signed as above, administrators only. Replaces the saved settings whole; a field left out keeps its built-in value. The job reads them at its next run.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"settings":{"type":"object","properties":{"paused":{"type":"boolean"},"window":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"integer","minimum":0,"maximum":336},"weeklyMax":{"type":"integer","minimum":1,"maximum":7},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"waitHours":{"type":"number","minimum":0,"maximum":2160},"offersCall":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false}},"required":["settings"],"additionalProperties":false}}}},"responses":{"200":{"description":"Save the follow-up schedule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"settings":{"type":"object","properties":{"paused":{"type":"boolean"},"window":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"integer","minimum":0,"maximum":336},"weeklyMax":{"type":"integer","minimum":1,"maximum":7},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"waitHours":{"type":"number","minimum":0,"maximum":2160},"offersCall":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false},"defaults":{"type":"object","properties":{"window":{"type":"object","properties":{"days":{"type":"array","items":{"type":"number"}},"startHour":{"type":"number"},"endHour":{"type":"number"}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"number"},"endHour":{"type":"number"}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"number"},"weeklyMax":{"type":"number"},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"waitHours":{"type":["number","null"]},"offersCall":{"type":"boolean"},"hasButton":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string"},"preview":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"after":{"type":"string"}},"required":["subject","preview","body","button","after"],"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string"},"preview":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"after":{"type":"string"}},"required":["subject","preview","body","button","after"],"additionalProperties":false}},"required":["en","bg"],"additionalProperties":false}},"required":["waitHours","offersCall","hasButton","words"],"additionalProperties":false},"required":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]}},"required":["window","promptWindow","spacingHours","weeklyMax","steps"],"additionalProperties":false},"callConfigured":{"type":"boolean"},"mode":{"type":"string","enum":["on","shadow","off"]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"updatedBy":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]}},"required":["settings","defaults","callConfigured","mode","updatedAt","updatedBy"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/launch/test":{"post":{"summary":"Send a follow-up to yourself","description":"Hintora Ops only, signed as above, administrators only. A step’s email for a made-up person, with the saved words or the `settings` given, sent to the staff member’s own address only, its subject marked [Test].","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"step":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"locale":{"type":"string","enum":["en","bg"]},"settings":{"type":"object","properties":{"paused":{"type":"boolean"},"window":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["days","startHour","endHour"],"additionalProperties":false},"promptWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":24},"endHour":{"type":"integer","minimum":0,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false},"spacingHours":{"type":"integer","minimum":0,"maximum":336},"weeklyMax":{"type":"integer","minimum":1,"maximum":7},"steps":{"type":"object","propertyNames":{"type":"string","enum":["invite","invite_nudge","invite_stuck","invite_last","download","install_help","first_win","permissions_help","tips","feedback","check_in","quiet_open","quiet_gone","quiet_whats_new","sign_in_trouble","update_available"]},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"waitHours":{"type":"number","minimum":0,"maximum":2160},"offersCall":{"type":"boolean"},"words":{"type":"object","properties":{"en":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false},"bg":{"type":"object","properties":{"subject":{"type":"string","maxLength":70},"preview":{"type":"string","maxLength":160},"body":{"type":"string","maxLength":3000},"button":{"type":"string","maxLength":40},"after":{"type":"string","maxLength":600}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false}},"required":["step","locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Send a follow-up to yourself","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sentTo":{"type":"string","maxLength":320}},"required":["sentTo"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/account-deletions/restore":{"post":{"summary":"Restore an account on its owner’s request, from Ops","description":"Hintora Ops only, signed as above (decision 0086 as amended 19 Oct 2026). The account is found by the address the person wrote from, and restored only while its owner’s deletion request waits and nothing has been deleted yet; 404 otherwise. Answers only whether it was restored and whether its plan renews again.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":320}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Restore an account on its owner’s request, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"restored":{"type":"boolean","const":true},"planResumed":{"type":"boolean"}},"required":["restored","planResumed"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets/{id}":{"get":{"summary":"One conversation, for Ops","description":"Hintora Ops only, signed as above. The whole conversation: every message, each file’s name, kind and size (never its bytes), whose it is and the app details.","security":[],"responses":{"200":{"description":"One conversation, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["person","staff"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnostics":{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","maxLength":40},"appVersion":{"type":"string","maxLength":60},"osVersion":{"type":"string","maxLength":100},"language":{"type":"string","maxLength":10},"recentErrors":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}},"plan":{"type":"string","maxLength":80},"build":{"type":"string","maxLength":40},"channel":{"type":"string","maxLength":20},"chip":{"type":"string","maxLength":20},"macModel":{"type":"string","maxLength":60},"freeDiskBytes":{"type":"number","minimum":0},"ramBytes":{"type":"number","minimum":0},"permissions":{"type":"object","properties":{"screenRecording":{"type":"string","maxLength":20},"microphone":{"type":"string","maxLength":20},"accessibility":{"type":"string","maxLength":20}},"required":["screenRecording","microphone","accessibility"]},"audioInput":{"type":"string","maxLength":120},"audioOutput":{"type":"string","maxLength":120},"integrationsConnected":{"type":"number","minimum":0},"secondsSinceLaunch":{"type":"number","minimum":0},"lastUpdateCheckAt":{"type":"string","maxLength":40},"apiLatencyMs":{"type":"number","minimum":0},"recentErrorIds":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}}},"required":["platform","appVersion","osVersion","language","recentErrors","plan"]},{"type":"null"}]}},"required":["id","number","type","status","subject","email","createdAt","updatedAt","messages","diagnostics"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets/{id}/messages":{"post":{"summary":"Answer a conversation, from Ops","description":"Hintora Ops only, signed as above. The team’s answer, kept with the staff member’s WorkOS id: the conversation is marked Answered, “Hintora replied to your message” goes to the person’s bell and the answer to their address. An `Idempotency-Key` header (a UUID) names the answer: the same key again is the same answer, kept and sent once. Answers the conversation, whole.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000},"authorName":{"type":"string","minLength":1,"maxLength":80},"authorFaceUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["body","authorName"],"additionalProperties":false}}}},"responses":{"201":{"description":"Answer a conversation, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["person","staff"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnostics":{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","maxLength":40},"appVersion":{"type":"string","maxLength":60},"osVersion":{"type":"string","maxLength":100},"language":{"type":"string","maxLength":10},"recentErrors":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}},"plan":{"type":"string","maxLength":80},"build":{"type":"string","maxLength":40},"channel":{"type":"string","maxLength":20},"chip":{"type":"string","maxLength":20},"macModel":{"type":"string","maxLength":60},"freeDiskBytes":{"type":"number","minimum":0},"ramBytes":{"type":"number","minimum":0},"permissions":{"type":"object","properties":{"screenRecording":{"type":"string","maxLength":20},"microphone":{"type":"string","maxLength":20},"accessibility":{"type":"string","maxLength":20}},"required":["screenRecording","microphone","accessibility"]},"audioInput":{"type":"string","maxLength":120},"audioOutput":{"type":"string","maxLength":120},"integrationsConnected":{"type":"number","minimum":0},"secondsSinceLaunch":{"type":"number","minimum":0},"lastUpdateCheckAt":{"type":"string","maxLength":40},"apiLatencyMs":{"type":"number","minimum":0},"recentErrorIds":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}}},"required":["platform","appVersion","osVersion","language","recentErrors","plan"]},{"type":"null"}]}},"required":["id","number","type","status","subject","email","createdAt","updatedAt","messages","diagnostics"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets/{id}/status":{"put":{"summary":"Set a conversation’s status, from Ops","description":"Hintora Ops only, signed as above. Open, Answered or Closed, kept with who set it and when. Nobody is emailed. Answers the conversation, whole.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["open","answered","closed"]}},"required":["status"],"additionalProperties":false}}}},"responses":{"200":{"description":"Set a conversation’s status, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["person","staff"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnostics":{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","maxLength":40},"appVersion":{"type":"string","maxLength":60},"osVersion":{"type":"string","maxLength":100},"language":{"type":"string","maxLength":10},"recentErrors":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}},"plan":{"type":"string","maxLength":80},"build":{"type":"string","maxLength":40},"channel":{"type":"string","maxLength":20},"chip":{"type":"string","maxLength":20},"macModel":{"type":"string","maxLength":60},"freeDiskBytes":{"type":"number","minimum":0},"ramBytes":{"type":"number","minimum":0},"permissions":{"type":"object","properties":{"screenRecording":{"type":"string","maxLength":20},"microphone":{"type":"string","maxLength":20},"accessibility":{"type":"string","maxLength":20}},"required":["screenRecording","microphone","accessibility"]},"audioInput":{"type":"string","maxLength":120},"audioOutput":{"type":"string","maxLength":120},"integrationsConnected":{"type":"number","minimum":0},"secondsSinceLaunch":{"type":"number","minimum":0},"lastUpdateCheckAt":{"type":"string","maxLength":40},"apiLatencyMs":{"type":"number","minimum":0},"recentErrorIds":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}}},"required":["platform","appVersion","osVersion","language","recentErrors","plan"]},{"type":"null"}]}},"required":["id","number","type","status","subject","email","createdAt","updatedAt","messages","diagnostics"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets/{id}/student-discount":{"get":{"summary":"The student discount of a conversation’s account, for Ops","description":"Hintora Ops only, signed as above (HNTR-869fk2pfe). Whether the account may have the student discount and why (`domain`: its verified address is a school’s; `manual`: approved by the team, with who and when), whether its address is a school’s now, and whether Checkout would still give it (only before a first paid plan).","security":[],"responses":{"200":{"description":"The student discount of a conversation’s account, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"studentDiscount":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","enum":["domain","manual"]},{"type":"null"}]},"approvedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"approvedBy":{"anyOf":[{"type":"string","minLength":3,"maxLength":320},{"type":"null"}]},"schoolAddress":{"type":"boolean"},"firstPurchase":{"type":"boolean"},"decision":{"anyOf":[{"type":"object","properties":{"decision":{"type":"string","enum":["approve","decline"]},"decidedBy":{"type":"string","minLength":3,"maxLength":320},"decidedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["decision","decidedBy","decidedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["source","approvedAt","approvedBy","schoolAddress","firstPurchase","decision"],"additionalProperties":false}},"required":["studentDiscount"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Approve or decline a student discount request, from Ops","description":"Hintora Ops only, signed as above. `approve` marks the account eligible (`manual`, with the staff member and the time); `decline` changes nothing on the account. Either way the person gets the API’s own calm reply in their language, by email and in the app, and the conversation is closed. An `Idempotency-Key` header (a UUID) names the reply: the same key again replies once. Answers the conversation and where the account now stands.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"decision":{"type":"string","enum":["approve","decline"]},"authorName":{"type":"string","minLength":1,"maxLength":80}},"required":["decision","authorName"],"additionalProperties":false}}}},"responses":{"201":{"description":"Approve or decline a student discount request, from Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["problem","idea","question","student_discount"]},"status":{"type":"string","enum":["open","answered","closed"]},"subject":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":320},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"type":"string","enum":["person","staff"]},"authorName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"attachments":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp","image/heic","application/pdf","text/plain","text/csv","application/json"]},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":3000000}},"required":["id","name","mediaType","bytes"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","author","authorName","body","attachments","createdAt"],"additionalProperties":false}},"diagnostics":{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","maxLength":40},"appVersion":{"type":"string","maxLength":60},"osVersion":{"type":"string","maxLength":100},"language":{"type":"string","maxLength":10},"recentErrors":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}},"plan":{"type":"string","maxLength":80},"build":{"type":"string","maxLength":40},"channel":{"type":"string","maxLength":20},"chip":{"type":"string","maxLength":20},"macModel":{"type":"string","maxLength":60},"freeDiskBytes":{"type":"number","minimum":0},"ramBytes":{"type":"number","minimum":0},"permissions":{"type":"object","properties":{"screenRecording":{"type":"string","maxLength":20},"microphone":{"type":"string","maxLength":20},"accessibility":{"type":"string","maxLength":20}},"required":["screenRecording","microphone","accessibility"]},"audioInput":{"type":"string","maxLength":120},"audioOutput":{"type":"string","maxLength":120},"integrationsConnected":{"type":"number","minimum":0},"secondsSinceLaunch":{"type":"number","minimum":0},"lastUpdateCheckAt":{"type":"string","maxLength":40},"apiLatencyMs":{"type":"number","minimum":0},"recentErrorIds":{"maxItems":10,"type":"array","items":{"type":"string","maxLength":64}}},"required":["platform","appVersion","osVersion","language","recentErrors","plan"]},{"type":"null"}]}},"required":["id","number","type","status","subject","email","createdAt","updatedAt","messages","diagnostics"],"additionalProperties":false},"studentDiscount":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","enum":["domain","manual"]},{"type":"null"}]},"approvedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"approvedBy":{"anyOf":[{"type":"string","minLength":3,"maxLength":320},{"type":"null"}]},"schoolAddress":{"type":"boolean"},"firstPurchase":{"type":"boolean"},"decision":{"anyOf":[{"type":"object","properties":{"decision":{"type":"string","enum":["approve","decline"]},"decidedBy":{"type":"string","minLength":3,"maxLength":320},"decidedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["decision","decidedBy","decidedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["source","approvedAt","approvedBy","schoolAddress","firstPurchase","decision"],"additionalProperties":false}},"required":["ticket","studentDiscount"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/tickets/{id}/attachments/{attachmentId}/link":{"post":{"summary":"A short-lived link to a file, for Ops","description":"Hintora Ops only, signed as above. A link to the file, for that staff member, that works for 5 minutes (`/v1/staff/support/files/{attachmentId}`); Ops sends the browser to it, so the file never passes through Ops.","security":[],"responses":{"201":{"description":"A short-lived link to a file, for Ops","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["url","expiresAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/staff/support/files/{attachmentId}":{"get":{"summary":"A file, through a staff link","description":"Opened from a link the API signed for a staff member (`?ticket=&staff=&expires=&sig=`), within 5 minutes. A download (`Content-Disposition: attachment`), sandboxed and never cached.","security":[],"responses":{"200":{"description":"A file, through a staff link","content":{"application/octet-stream":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/referrals":{"get":{"summary":"Referral link and referrals","description":"The account’s invite link and code, what a referral earns (a month of the base plan for each side, or a month of their own plan credited to the bill for someone who pays), and where each referral stands. With `?include=credit`, a referral whose month went to the bill says whether Stripe has it (`credit`: `credited` or `pending`); without it the key is left out, so a 0.4 Hub that reads referrals strictly keeps reading them.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Referral link and referrals","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{6,12}$"},"link":{"type":"string","format":"uri"},"reward":{"type":"object","properties":{"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"words":{"type":"integer","minimum":0,"maximum":9007199254740991},"maximumMonths":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"activeDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"trialDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["months","planName","words","maximumMonths","activeDays","trialDays"],"additionalProperties":false},"monthsEarned":{"type":"integer","minimum":0,"maximum":9007199254740991},"referrals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"label":{"type":"string"},"status":{"type":"string","enum":["invited","signed_up","qualified","rewarded","refused","expired"]},"wordsDictated":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"activeDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"signedUpAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"rewardedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"credit":{"type":"string","enum":["credited","pending"]}},"required":["id","label","status","wordsDictated","activeDays","invitedAt","signedUpAt","rewardedAt"],"additionalProperties":false}},"redeemableUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"invitesLeftToday":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["code","link","reward","monthsEarned","referrals","redeemableUntil","invitesLeftToday"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/referrals/codes/{code}":{"get":{"summary":"Who an invite link is from","description":"Public. The referrer’s first name and what the link gives, for the page it opens. Rate limited.","security":[],"responses":{"200":{"description":"Who an invite link is from","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z0-9]{6,12}$"},"referrerName":{"type":"string"},"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"redeemWithinDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","referrerName","months","planName","redeemWithinDays"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/referrals/invites":{"post":{"summary":"Invite people by email","description":"Emails up to 10 new addresses a day. Skips your own address, people already on Hintora and repeats.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"emails":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}},"required":["emails"],"additionalProperties":false}}}},"responses":{"200":{"description":"Invite people by email","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sent":{"type":"array","items":{"type":"string"}},"skipped":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"reason":{"type":"string"}},"required":["email","reason"],"additionalProperties":false}}},"required":["sent","skipped"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/referrals/redeem":{"post":{"summary":"Use a friend’s code","description":"Within 7 days of joining. Gives a month of the base plan; refused for your own code or a second one.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Use a friend’s code","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"referrerName":{"type":"string"},"credit":{"type":"string","enum":["credited","pending"]}},"required":["months","planName","expiresAt","referrerName"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles":{"get":{"summary":"Pointer style in use, and the ones kept","description":"Which style Hintora’s pointer uses (a built-in one or one of the account’s own) and the AI-made ones the account keeps, newest first: two, or up to 12 for an account that kept more before the cap of two. A choice of a style that is gone reads as Classic. Answered 304 to a matching If-None-Match.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Pointer style in use, and the ones kept","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"choice":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"id":{"type":"string","enum":["classic","arrow","rounded","hand","comet"]}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","id"],"additionalProperties":false}]},"styles":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}}},"required":["choice","styles"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles/choice":{"put":{"summary":"Use a pointer style","description":"A built-in style, or one the account keeps. Answers with the choice and the kept styles.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"id":{"type":"string","enum":["classic","arrow","rounded","hand","comet"]}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","id"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Use a pointer style","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"choice":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"id":{"type":"string","enum":["classic","arrow","rounded","hand","comet"]}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","id"],"additionalProperties":false}]},"styles":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}}},"required":["choice","styles"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles/generate":{"post":{"summary":"Draw pointers from a description","description":"Up to three shapes, checked and normalised, ranked by Jev, best first, offered for a day; none with a reason when the words are not something to draw or nothing drawn was usable. Signed-in accounts only (403 for a guest). One drawing at a time, 10 s between starts and 20 in any 24 hours per account, Regenerate included, and 60 a day per network address: 429 rate-limited with Retry-After. Billed to the plan’s allowance (402 usage-limit-reached once it is used up).","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"prompt":{"type":"string","minLength":1,"maxLength":80},"like":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fresh":{"type":"boolean"}},"required":["requestId","prompt"],"additionalProperties":false}}}},"responses":{"200":{"description":"Draw pointers from a description","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"candidates":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}},"reason":{"type":"string","enum":["refused","nothingUsable"]},"decidedBy":{"type":"string","enum":["jev","fallback"]}},"required":["requestId","candidates","decidedBy"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles/{id}/regenerate":{"post":{"summary":"Redraw a kept pointer","description":"Draws new shapes from the words a kept pointer was made from, offered as a drawing’s are; keeping one replaces the pointer redrawn. The same limits and billing as a drawing; 404 for a pointer the account does not keep.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120}},"required":["requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Redraw a kept pointer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"candidates":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}},"reason":{"type":"string","enum":["refused","nothingUsable"]},"decidedBy":{"type":"string","enum":["jev","fallback"]}},"required":["requestId","candidates","decidedBy"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles/{id}/save":{"post":{"summary":"Keep a pointer and use it","description":"Keeps a pointer offered in the last day and makes it the one in use. An account keeps two: a third replaces `replaces` (one it keeps) or, for a pointer a Regenerate offered, the pointer redrawn; without either it is refused with pointer-styles-full (409). The body may be left out. Answers with the choice and the kept styles.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"replaces":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Keep a pointer and use it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"choice":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"id":{"type":"string","enum":["classic","arrow","rounded","hand","comet"]}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","id"],"additionalProperties":false}]},"styles":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}}},"required":["choice","styles"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/pointer-styles/{id}":{"delete":{"summary":"Delete a pointer","description":"If it was in use, Classic is. Answers with the choice and the kept styles.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Delete a pointer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"choice":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"id":{"type":"string","enum":["classic","arrow","rounded","hand","comet"]}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","id"],"additionalProperties":false}]},"styles":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":8,"maxLength":4000,"pattern":"^M[0-9MLCZ .-]+Z$"},"tipReach":{"type":"number","minimum":4,"maximum":28.01},"upright":{"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"prompt":{"type":"string","maxLength":80},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["d","tipReach","upright","id","name","prompt","createdAt"],"additionalProperties":false}}},"required":["choice","styles"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/library":{"get":{"summary":"What the account library keeps","description":"How many dictations, notes, dictionary words, snippets and meetings are kept, and when anything last changed.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"What the account library keeps","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"counts":{"type":"object","properties":{"dictation":{"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"type":"integer","minimum":0,"maximum":9007199254740991},"dictionary":{"type":"integer","minimum":0,"maximum":9007199254740991},"snippet":{"type":"integer","minimum":0,"maximum":9007199254740991},"meeting":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["dictation","note","dictionary","snippet","meeting"],"additionalProperties":false},"lastChangedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["counts","lastChangedAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete the server copy of the library","description":"Removes every item and the account’s library key. Each Mac keeps its own copy.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Delete the server copy of the library"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/library/changes":{"get":{"summary":"Library changes since a cursor","description":"Query `since` (the last cursor, empty to start) and `limit` (up to 200). Oldest first, deletions included. The cursor only moves past changes a few seconds old, so keep paging while `hasMore` is true.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Library changes since a cursor","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictation"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","maxLength":100000},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"appName":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"bundleId":{"default":null,"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"language":{"default":null,"anyOf":[{"type":"string","maxLength":35},{"type":"null"}]},"wordCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"audioMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","maxLength":40}},"required":["text","startedAt","wordCount","audioMs","status"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"note"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"body":{"type":"string","maxLength":200000}},"required":["title","body"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictionary"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"phrase":{"type":"string","minLength":1,"maxLength":200},"replacement":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"starred":{"type":"boolean"},"source":{"type":"string","enum":["user","learned"]}},"required":["phrase","starred"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"snippet"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"trigger":{"type":"string","minLength":1,"maxLength":200},"expansion":{"type":"string","maxLength":4000}},"required":["trigger","expansion"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"meeting"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"default":null,"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"calendarEventId":{"default":null,"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"attendees":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":320}},"summary":{"type":"string","maxLength":50000},"decisions":{"default":[],"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"actionItems":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"transcript":{"maxItems":20000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string","maxLength":200},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string","maxLength":20000}},"required":["speaker","startMs","text"],"additionalProperties":false}}},"required":["title","startedAt","attendees","summary","actionItems","transcript"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false}]}},"cursor":{"type":"string"},"hasMore":{"type":"boolean"}},"required":["items","cursor","hasMore"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Push library changes","description":"Up to 200 items. The later `updatedAt` wins; items the server has a later version of come back in `conflicts`. Retrying a push is safe.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"minItems":1,"maxItems":200,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictation"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","maxLength":100000},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"appName":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"bundleId":{"default":null,"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"language":{"default":null,"anyOf":[{"type":"string","maxLength":35},{"type":"null"}]},"wordCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"audioMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","maxLength":40}},"required":["text","startedAt","wordCount","audioMs","status"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"note"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"body":{"type":"string","maxLength":200000}},"required":["title","body"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictionary"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"phrase":{"type":"string","minLength":1,"maxLength":200},"replacement":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"starred":{"type":"boolean"},"source":{"type":"string","enum":["user","learned"]}},"required":["phrase","starred"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"snippet"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"trigger":{"type":"string","minLength":1,"maxLength":200},"expansion":{"type":"string","maxLength":4000}},"required":["trigger","expansion"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"meeting"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"default":null,"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"calendarEventId":{"default":null,"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"attendees":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":320}},"summary":{"type":"string","maxLength":50000},"decisions":{"default":[],"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"actionItems":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"transcript":{"maxItems":20000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string","maxLength":200},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string","maxLength":20000}},"required":["speaker","startMs","text"],"additionalProperties":false}}},"required":["title","startedAt","attendees","summary","actionItems","transcript"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false}]}}},"required":["items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Push library changes","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"applied":{"type":"array","items":{"type":"string"}},"conflicts":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictation"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","maxLength":100000},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"appName":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"bundleId":{"default":null,"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"language":{"default":null,"anyOf":[{"type":"string","maxLength":35},{"type":"null"}]},"wordCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"audioMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","maxLength":40}},"required":["text","startedAt","wordCount","audioMs","status"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"note"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"body":{"type":"string","maxLength":200000}},"required":["title","body"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"dictionary"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"phrase":{"type":"string","minLength":1,"maxLength":200},"replacement":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"starred":{"type":"boolean"},"source":{"type":"string","enum":["user","learned"]}},"required":["phrase","starred"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"snippet"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"trigger":{"type":"string","minLength":1,"maxLength":200},"expansion":{"type":"string","maxLength":4000}},"required":["trigger","expansion"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9-]{1,64}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"kind":{"type":"string","const":"meeting"},"deleted":{"type":"boolean"},"body":{"anyOf":[{"type":"object","properties":{"title":{"type":"string","maxLength":500},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"default":null,"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"calendarEventId":{"default":null,"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"attendees":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":320}},"summary":{"type":"string","maxLength":50000},"decisions":{"default":[],"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"actionItems":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":2000}},"transcript":{"maxItems":20000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string","maxLength":200},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string","maxLength":20000}},"required":["speaker","startMs","text"],"additionalProperties":false}}},"required":["title","startedAt","attendees","summary","actionItems","transcript"],"additionalProperties":false},{"type":"null"}]}},"required":["id","createdAt","updatedAt","kind","deleted","body"],"additionalProperties":false}]}}},"required":["applied","conflicts"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team":{"get":{"summary":"Your team","description":"Your team with members and roles; for owners and admins, open invitations and the join link. Also invitations waiting for your address, a team your company domain can join, and whether the 14-day Pro trial is still available.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Your team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"joinDomain":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"joinedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastActiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isYou":{"type":"boolean"}},"required":["userId","name","email","role","joinedAt","lastActiveAt","isYou"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"invitedBy":{"type":["string","null"]},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","email","invitedBy","invitedAt","expiresAt"],"additionalProperties":false}},"joinLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"sharedWords":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedSnippets":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","joinDomain","role","members","invites","joinLink","sharedWords","sharedSnippets","createdAt"],"additionalProperties":false},{"type":"null"}]},"invitations":{"type":"array","items":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"teamName":{"type":"string"},"invitedBy":{"type":["string","null"]},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["inviteId","teamName","invitedBy","memberCount"],"additionalProperties":false}},"domainTeam":{"anyOf":[{"type":"object","properties":{"teamName":{"type":"string"},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["teamName","memberCount"],"additionalProperties":false},{"type":"null"}]},"suggestedDomain":{"type":["string","null"]},"trial":{"type":"object","properties":{"days":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"available":{"type":"boolean"}},"required":["days","planName","available"],"additionalProperties":false},"limits":{"type":"object","properties":{"members":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["members"],"additionalProperties":false}},"required":["team","invitations","domainTeam","suggestedDomain","trial","limits"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Start a team","description":"Makes you the owner, creates a join link, starts a 14-day Pro trial if you are on the free plan, and emails anyone listed.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"emails":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start a team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"joinDomain":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"joinedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastActiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isYou":{"type":"boolean"}},"required":["userId","name","email","role","joinedAt","lastActiveAt","isYou"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"invitedBy":{"type":["string","null"]},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","email","invitedBy","invitedAt","expiresAt"],"additionalProperties":false}},"joinLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"sharedWords":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedSnippets":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","joinDomain","role","members","invites","joinLink","sharedWords","sharedSnippets","createdAt"],"additionalProperties":false},"trialEndsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["team","trialEndsAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Rename a team or change domain joining","description":"Owners and admins. Domain joining uses your own verified work address; personal domains are refused.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"domainJoining":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Rename a team or change domain joining","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"joinDomain":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"joinedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastActiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isYou":{"type":"boolean"}},"required":["userId","name","email","role","joinedAt","lastActiveAt","isYou"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"invitedBy":{"type":["string","null"]},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","email","invitedBy","invitedAt","expiresAt"],"additionalProperties":false}},"joinLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"sharedWords":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedSnippets":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","joinDomain","role","members","invites","joinLink","sharedWords","sharedSnippets","createdAt"],"additionalProperties":false},{"type":"null"}]},"invitations":{"type":"array","items":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"teamName":{"type":"string"},"invitedBy":{"type":["string","null"]},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["inviteId","teamName","invitedBy","memberCount"],"additionalProperties":false}},"domainTeam":{"anyOf":[{"type":"object","properties":{"teamName":{"type":"string"},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["teamName","memberCount"],"additionalProperties":false},{"type":"null"}]},"suggestedDomain":{"type":["string","null"]},"trial":{"type":"object","properties":{"days":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"available":{"type":"boolean"}},"required":["days","planName","available"],"additionalProperties":false},"limits":{"type":"object","properties":{"members":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["members"],"additionalProperties":false}},"required":["team","invitations","domainTeam","suggestedDomain","trial","limits"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/invites":{"post":{"summary":"Invite people to your team","description":"Owners and admins. Up to 20 addresses at once and 50 a day; each invitation expires in 14 days.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"emails":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","maxLength":320,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}},"required":["emails"],"additionalProperties":false}}}},"responses":{"200":{"description":"Invite people to your team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sent":{"type":"array","items":{"type":"string"}},"skipped":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"reason":{"type":"string"}},"required":["email","reason"],"additionalProperties":false}}},"required":["sent","skipped"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/invites/{id}":{"delete":{"summary":"Withdraw an invitation","description":"Owners and admins.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Withdraw an invitation"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/link":{"post":{"summary":"Replace the join link","description":"Owners and admins. The previous link stops working.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Replace the join link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"joinLink":{"type":"string","format":"uri"}},"required":["joinLink"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/join":{"post":{"summary":"Join a team","description":"With a link token, an invitation to your address, or your company domain. One team per person.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,64}$"}},"required":["token"],"additionalProperties":false},{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["inviteId"],"additionalProperties":false},{"type":"object","properties":{"domain":{"type":"boolean","const":true}},"required":["domain"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Join a team","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"joinDomain":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"joinedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastActiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isYou":{"type":"boolean"}},"required":["userId","name","email","role","joinedAt","lastActiveAt","isYou"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"invitedBy":{"type":["string","null"]},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","email","invitedBy","invitedAt","expiresAt"],"additionalProperties":false}},"joinLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"sharedWords":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedSnippets":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","joinDomain","role","members","invites","joinLink","sharedWords","sharedSnippets","createdAt"],"additionalProperties":false},"trialEndsAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["team","trialEndsAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/links/{token}":{"get":{"summary":"What a join link opens","description":"Public. The team name, the inviter’s first name and the trial length. Rate limited.","security":[],"responses":{"200":{"description":"What a join link opens","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"teamName":{"type":"string"},"invitedBy":{"type":["string","null"]},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"trialDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["teamName","invitedBy","memberCount","trialDays"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/members/{id}":{"patch":{"summary":"Change a member’s role","description":"Owners and admins; only owners make or unmake owners, and a team always keeps one.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"role":{"type":"string","enum":["owner","admin","member"]}},"required":["role"],"additionalProperties":false}}}},"responses":{"200":{"description":"Change a member’s role","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"joinDomain":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member"]},"members":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]},"joinedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastActiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isYou":{"type":"boolean"}},"required":["userId","name","email","role","joinedAt","lastActiveAt","isYou"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"invitedBy":{"type":["string","null"]},"invitedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","email","invitedBy","invitedAt","expiresAt"],"additionalProperties":false}},"joinLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"sharedWords":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedSnippets":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","joinDomain","role","members","invites","joinLink","sharedWords","sharedSnippets","createdAt"],"additionalProperties":false},{"type":"null"}]},"invitations":{"type":"array","items":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"teamName":{"type":"string"},"invitedBy":{"type":["string","null"]},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["inviteId","teamName","invitedBy","memberCount"],"additionalProperties":false}},"domainTeam":{"anyOf":[{"type":"object","properties":{"teamName":{"type":"string"},"memberCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["teamName","memberCount"],"additionalProperties":false},{"type":"null"}]},"suggestedDomain":{"type":["string","null"]},"trial":{"type":"object","properties":{"days":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"planName":{"type":"string"},"available":{"type":"boolean"}},"required":["days","planName","available"],"additionalProperties":false},"limits":{"type":"object","properties":{"members":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["members"],"additionalProperties":false}},"required":["team","invitations","domainTeam","suggestedDomain","trial","limits"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Remove a member","description":"Owners and admins; only owners remove an owner.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Remove a member"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/leave":{"post":{"summary":"Leave your team","description":"The only owner hands over first; the last person leaving deletes the team.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Leave your team"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/library":{"get":{"summary":"Shared words and snippets","description":"Every member reads them, and dictation uses them.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Shared words and snippets","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","const":"dictionary"},"phrase":{"type":"string"},"replacement":{"type":["string","null"]},"addedBy":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","phrase","replacement","addedBy","createdAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","const":"snippet"},"trigger":{"type":"string"},"expansion":{"type":"string"},"addedBy":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","trigger","expansion","addedBy","createdAt"],"additionalProperties":false}]}}},"required":["items"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Share a word or snippet","description":"Any member. Words and snippet phrases are unique within a team.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"dictionary"},"phrase":{"type":"string","minLength":1,"maxLength":60},"replacement":{"default":null,"anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"null"}]}},"required":["kind","phrase"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"snippet"},"trigger":{"type":"string","minLength":1,"maxLength":60},"expansion":{"type":"string","minLength":1,"maxLength":4000}},"required":["kind","trigger","expansion"],"additionalProperties":false}]}}}},"responses":{"201":{"description":"Share a word or snippet","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","const":"dictionary"},"phrase":{"type":"string"},"replacement":{"type":["string","null"]},"addedBy":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","phrase","replacement","addedBy","createdAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","const":"snippet"},"trigger":{"type":"string"},"expansion":{"type":"string"},"addedBy":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","trigger","expansion","addedBy","createdAt"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/team/library/{id}":{"delete":{"summary":"Stop sharing a word or snippet","description":"Owners and admins remove anything; members remove what they added.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Stop sharing a word or snippet"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/mcp/connections":{"get":{"summary":"MCP server, tools and connected apps","description":"The MCP address to add to an AI app, every tool it offers with the access each needs, and the apps connected to this account with what they may read and when they last did.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"MCP server, tools and connected apps","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"serverUrl":{"type":"string","format":"uri"},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["name","title","description","scopes"],"additionalProperties":false}},"connections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"clientName":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"connectedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"lastUsedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","clientName","scopes","connectedAt","lastUsedAt"],"additionalProperties":false}}},"required":["serverUrl","tools","connections"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/mcp/connections/{id}":{"delete":{"summary":"Disconnect an MCP app","description":"Its access and refresh tokens stop working at once.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Disconnect an MCP app"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/apps":{"get":{"summary":"Apps to connect","description":"One page of apps a person can connect (Gmail, Notion, Linear…), from Composio, or from Pipedream Connect when Composio isn’t set up or doesn’t answer. Query: search, category, cursor from the previous page, and limit (48 by default, at most 100). A search also adds the apps only Pipedream has. Pages are kept for everyone for 15 minutes and refreshed behind the answer; each has an ETag, and a matching If-None-Match is answered 304.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Apps to connect","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"apps":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":400},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"categories":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"provider":{"type":"string","enum":["composio","pipedream"]},"authKind":{"type":"string","enum":["oauth","apiKey","none"]},"personalAccount":{"type":"boolean"}},"required":["slug","name","description","logoUrl","categories","provider"],"additionalProperties":false}},"cursor":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"total":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["apps","cursor"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/apps/connections":{"get":{"summary":"Connected apps","description":"Every app this account connected on either platform, newest first, with its status. When one platform doesn’t answer, the other’s connections are still listed. A listing may be one read in the last 30 s, never one from before a connect, a sign-in coming back or a disconnect.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Connected apps","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connections":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^(composio|pipedream):[A-Za-z0-9_-]{1,200}$"},"provider":{"type":"string","enum":["composio","pipedream"]},"app":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"name":{"type":"string","maxLength":120},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["slug","name","logoUrl"],"additionalProperties":false},"status":{"type":"string","enum":["active","pending","needs_reconnect","failed"]},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"connectedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","provider","app","status","account","connectedAt"],"additionalProperties":false}},"unavailable":{"maxItems":2,"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["composio","pipedream"]},"reason":{"type":"string","enum":["credential_rejected","unreachable"]}},"required":["provider","reason"],"additionalProperties":false}}},"required":["connections"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/apps/{slug}/connect":{"post":{"summary":"Start connecting an app","description":"The platform’s sign-in page to open in the browser: Composio when it can sign the person in by itself, otherwise Pipedream Connect. Only Hintora’s user id is shared; the platform keeps the tokens. It returns to the app named by returnScheme.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"returnScheme":{"default":null,"anyOf":[{"type":"string","enum":["hintora","hintora-stage","hintora-dev"]},{"type":"null"}]},"another":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Start connecting an app","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/apps/{slug}/logo":{"get":{"summary":"An app’s logo","description":"The app’s logo from Composio’s or Pipedream’s catalogue, fetched and kept by Hintora so the apps never load it from a third party: SVG, PNG, JPEG, WebP or GIF, checked by its bytes and at most 256 KB, with an ETag. Not found when neither platform has one.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"An app’s logo","content":{"image/svg+xml":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/sites/{host}/icon":{"get":{"summary":"A website’s icon","description":"The site’s own icon (touch icon, PNG or SVG), read by Hintora so the person’s computer never connects to the site; only the host is sent. SVG, PNG, JPEG, WebP or GIF, checked by its bytes and at most 256 KB, with an ETag. Not found when the host is not a public site name or has no icon to serve.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"A website’s icon","content":{"image/svg+xml":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/actions/plan":{"post":{"summary":"Plan an order in a connected app","description":"An explicit order the intercept was sure of (decision 0038) made into a confirm card: the person’s own account for the app at Pipedream, the arguments written from their words, and every gate’s verdict. Nothing runs. Answers confirm with a signed plan, notConnected with Pipedream’s sign-in, or stopped with the reason.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":500},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"timeZone":{"type":"string","minLength":1,"maxLength":64},"language":{"type":"string","enum":["en","bg"]},"returnScheme":{"anyOf":[{"type":"string","enum":["hintora","hintora-stage","hintora-dev"]},{"type":"null"}]},"actions":{"type":"number","const":2},"revises":{"type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"unchanged":{"type":"boolean","const":true},"recipient":{"type":"string","minLength":3,"maxLength":254}},"required":["planId","token"],"additionalProperties":false}},"required":["requestId","said","app","timeZone"],"additionalProperties":false}}}},"responses":{"200":{"description":"Plan an order in a connected app","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"confirm"},"plan":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"title":{"type":"string","minLength":1,"maxLength":80},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"fields":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["title","when","to","subject","body","team","location","description","account","channel","parent","repo","tool"]},"label":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","minLength":1,"maxLength":4000}},"required":["key","label","value"],"additionalProperties":false}},"said":{"type":"string","maxLength":500},"consequential":{"type":"boolean"},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verb":{"type":"string","enum":["send","create"]},"accounts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","minLength":1,"maxLength":320}},"required":["id","label"],"additionalProperties":false}},"recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254},"status":{"type":"string","enum":["said","found","picked","choose","missing","read"]},"candidates":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}},"sendsOnPick":{"type":"boolean","const":true}},"required":["status"],"additionalProperties":false}},"required":["id","token","app","appName","action","title","account","fields","said","consequential","warnings","expiresAt"],"additionalProperties":false}},"required":["requestId","status","plan"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"notConnected"},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"connectUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["requestId","status","app","appName","connectUrl","message"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"stopped"},"reason":{"type":"string","enum":["missing","untraceable","unsupported","unavailable","disabled"]},"message":{"type":"string","minLength":1,"maxLength":300},"severalAccounts":{"type":"boolean","const":true}},"required":["requestId","status","reason","message"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/actions/confirm":{"post":{"summary":"Carry out a confirmed order","description":"Runs exactly the plan the card showed, once, through Pipedream with the person’s own account, then checks the app’s answer against it. The token must be this person’s, from this device, unexpired and unused. Never retried.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"accountId":{"type":"string","minLength":1,"maxLength":200},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["planId","token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Carry out a confirmed order","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["done","unverified","failed","refused"]},"message":{"type":"string","minLength":1,"maxLength":300},"link":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["planId","status","message","link"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/actions/cancel":{"post":{"summary":"Cancel an order","description":"Closes a plan the person cancelled; nothing runs.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"accountId":{"type":"string","minLength":1,"maxLength":200}},"required":["planId","token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Cancel an order","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"cancelled":{"type":"boolean"}},"required":["planId","cancelled"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/actions/options":{"post":{"summary":"List where an order can go","description":"The person’s own Slack channels and people, Notion pages and databases, or GitHub repositories (decision 0039), listed from their connection through the same execute path an action runs on (Composio’s list tools first, the Pipedream action’s own prop options as fallback). Reads only.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"type":"string","enum":["slack_channel","notion_parent","github_repo"]},"language":{"type":"string","enum":["en","bg"]}},"required":["kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"List where an order can go","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"kind":{"type":"string","enum":["slack_channel","notion_parent","github_repo"]},"options":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200},"value":{"type":"string","minLength":1,"maxLength":200}},"required":["label","value"],"additionalProperties":false}}},"required":["status","kind","options"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["notConnected","unavailable","disabled"]},"kind":{"type":"string","enum":["slack_channel","notion_parent","github_repo"]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["status","kind","message"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/actions/do":{"post":{"summary":"Do what the person told Hintora to do","description":"Asked only after the intercept answered `do`, which it says only to a client that declared `does: 1` while the capability `doRoute` is on (decision 0040). An agent does it within a step and a time budget with the person’s connected apps’ reviewed reads and local actions the Mac runs. Server-sent events in the framing of `/v1/ai/sketch`: `step` as each thing starts, `local` for the Mac to do at once, then `done` with one line saying what was done — or `plan` (the order card, when it writes; decision 0039) or `connect` (an app it needs) in its stead. Nothing is written without the card.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":500},"appName":{"type":"string","maxLength":80},"timeZone":{"type":"string","minLength":1,"maxLength":64},"language":{"type":"string","enum":["en","bg"]},"returnScheme":{"anyOf":[{"type":"string","enum":["hintora","hintora-stage","hintora-dev"]},{"type":"null"}]},"actions":{"type":"number","const":2},"agents":{"type":"number","const":1},"localTools":{"type":"number","const":1},"inApp":{"type":"number","const":1},"drive":{"type":"number","const":1},"reminders":{"type":"number","const":1}},"required":["requestId","said","timeZone"],"additionalProperties":false}}}},"responses":{"200":{"description":"Do what the person told Hintora to do","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"start"},"requestId":{"type":"string"}},"required":["type","requestId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"step"},"text":{"type":"string","minLength":1,"maxLength":80}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"local"},"action":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"openApp"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["type","app"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openUrl"},"url":{"type":"string","minLength":1,"maxLength":2000},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"media"},"command":{"type":"string","enum":["playPause","next","previous"]}},"required":["type","command"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openFile"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["file","folder","any"]}},"required":["type","name","kind"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"createReminder"},"title":{"type":"string","minLength":1,"maxLength":200},"due":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"allDay":{"type":"boolean"},"notes":{"type":"string","minLength":1,"maxLength":2000},"list":{"type":"string","minLength":1,"maxLength":80}},"required":["type","title"],"additionalProperties":false}]}},"required":["type","action"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"plan"},"planned":{"oneOf":[{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"confirm"},"plan":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"title":{"type":"string","minLength":1,"maxLength":80},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"fields":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["title","when","to","subject","body","team","location","description","account","channel","parent","repo","tool"]},"label":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","minLength":1,"maxLength":4000}},"required":["key","label","value"],"additionalProperties":false}},"said":{"type":"string","maxLength":500},"consequential":{"type":"boolean"},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verb":{"type":"string","enum":["send","create"]},"accounts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","minLength":1,"maxLength":320}},"required":["id","label"],"additionalProperties":false}},"recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254},"status":{"type":"string","enum":["said","found","picked","choose","missing","read"]},"candidates":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}},"sendsOnPick":{"type":"boolean","const":true}},"required":["status"],"additionalProperties":false}},"required":["id","token","app","appName","action","title","account","fields","said","consequential","warnings","expiresAt"],"additionalProperties":false}},"required":["requestId","status","plan"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"notConnected"},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"connectUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["requestId","status","app","appName","connectUrl","message"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"stopped"},"reason":{"type":"string","enum":["missing","untraceable","unsupported","unavailable","disabled"]},"message":{"type":"string","minLength":1,"maxLength":300},"severalAccounts":{"type":"boolean","const":true}},"required":["requestId","status","reason","message"],"additionalProperties":false}]}},"required":["type","planned"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"connect"},"slug":{"type":"string","minLength":1,"maxLength":80},"appName":{"type":"string","minLength":1,"maxLength":60},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["type","slug","appName","message"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"status":{"type":"string","enum":["done","stopped"]},"result":{"type":"string","minLength":1,"maxLength":300},"keepGoing":{"type":"boolean","const":true}},"required":["type","status","result"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"error"},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["type","message"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"agent"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","runId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"drive"},"goal":{"type":"string","minLength":1,"maxLength":500},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["type","goal","app"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs":{"post":{"summary":"Start an agent run","description":"A task from the words, or a saved agent’s run (decision 0046). Admitted against the allowances and the plan’s runs at once and runs a day (runs at once answer `rate-limited`, runs a day `usage-limit-reached`, each with `Hintora-Agent-Limit`); the same `requestId` is the same run (200), a new one 201. The engine starts after the answer; follow it at `…/events`. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":4000},"agentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"origin":{"type":"string","enum":["voice","typed","hub","keepGoing","schedule","trigger"]},"context":{"type":"object","properties":{"appName":{"type":"string","maxLength":80},"windowTitle":{"type":"string","maxLength":200},"pageUrl":{"type":"string","maxLength":2000,"format":"uri"},"memoryNote":{"type":"string","maxLength":1500},"teach":{"type":"boolean"},"consent":{"type":"boolean"},"consentedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"frontPage":{"type":"boolean"},"editFile":{"type":"object","properties":{"path":{"type":"string","minLength":3,"maxLength":1024},"madeByHintora":{"type":"boolean"}},"required":["path"],"additionalProperties":false},"verifiedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verifyReview":{"type":"string","maxLength":300}},"additionalProperties":false},"timeZone":{"type":"string","minLength":1,"maxLength":64},"language":{"type":"string","enum":["en","bg"]},"foreground":{"type":"boolean"},"fromDo":{"type":"string","minLength":8,"maxLength":120},"continues":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actions":{"type":"number","const":2},"macHands":{"type":"number","const":1},"localTools":{"type":"number","const":1},"documents":{"type":"number","const":1},"browserAgent":{"type":"number","const":1},"pdf":{"type":"number","const":1},"reminders":{"type":"number","const":1},"threadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"attachments":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"screenshot"},"jpeg":{"type":"string","minLength":1,"maxLength":1100000},"width":{"type":"integer","minimum":1,"maximum":1600},"height":{"type":"integer","minimum":1,"maximum":8192},"marks":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["kind","jpeg","width","height"],"additionalProperties":false}},"threads":{"type":"number","const":1},"build":{"type":"number","const":1},"preview":{"type":"number","const":1},"assets":{"type":"number","const":1},"apps":{"type":"number","const":1}},"required":["requestId","said","origin","timeZone","foreground"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start an agent run","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]}},"required":["runId","status"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"get":{"summary":"List the person’s agent runs","description":"Newest first, a page at a time (`agentId`, `status`, `cursor`, `limit` in the query).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List the person’s agent runs","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runs":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"said":{"type":"string","minLength":1,"maxLength":4000},"origin":{"type":"string","enum":["voice","typed","hub","keepGoing","schedule","trigger"]},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]},"reason":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"null"}]},"effort":{"type":"string","enum":["light","standard","deep"]},"kind":{"type":"string","enum":["drive","browser","build"]},"threadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"turn":{"type":"integer","minimum":1,"maximum":9007199254740991},"foreground":{"type":"boolean"},"phrase":{"anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"null"}]},"checkpoint":{"anyOf":[{"type":"object","properties":{"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["confirm","review","choose","connect","handoff"]},"title":{"type":"string","minLength":1,"maxLength":120}},"required":["checkpointId","kind","title"],"additionalProperties":false},{"type":"null"}]},"result":{"anyOf":[{"type":"string","minLength":1,"maxLength":160},{"type":"null"}]},"outcome":{"type":"string","enum":["partial"]},"missing":{"type":"string","minLength":1,"maxLength":120},"summary":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"sources":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","url"],"additionalProperties":false}},"method":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","minLength":1,"maxLength":200},"failure":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["needsConnection","outOfTime","outOfBudget","blockedForSafety","nothingFound","mayHaveWorked","stuck","trouble"]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","message"],"additionalProperties":false},{"type":"null"}]},"outputs":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["kind","label","undoable"],"additionalProperties":false}},"mainOutput":{"type":"object","properties":{"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["kind","label","undoable"],"additionalProperties":false},"undo":{"type":"object","properties":{"state":{"type":"string","enum":["available","undone"]},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"restorable":{"type":"boolean"},"notes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["state","until","restorable"],"additionalProperties":false},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","header","said","origin","status","reason","effort","foreground","phrase","checkpoint","result","failure","outputs","costMicros","createdAt","startedAt","finishedAt"],"additionalProperties":false}},"cursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["runs","cursor"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Clear the person’s run history","description":"Settings › Agents’ Clear run history (reference parity 12b): every run that has ended goes now, with its timeline; runs still going on stay. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Clear the person’s run history"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents":{"get":{"summary":"List the person’s saved agents and routines","description":"Oldest first; archived ones are left out. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List the person’s saved agents and routines","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agents":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["active","paused","archived"]},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"shared":{"anyOf":[{"type":"object","properties":{"teamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["teamId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook","status","nextRunAt","lastRunAt","shared"],"additionalProperties":false}}},"required":["agents"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Save an agent or a routine","description":"reference parity 12a: a routine is saved only by the Save on the notch’s card. A schedule must be a rule the API writes (at most once a day; `schedule.rrule` from `/v1/agents/draft` or `/v1/agents/schedule/parse`) and needs `AGENT_SCHEDULES`; at most 10 routines a person (`usage-limit-reached` with `Hintora-Agent-Limit: scheduled`). Its next run is computed in its own zone. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000}},"required":["name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook"],"additionalProperties":false}}}},"responses":{"201":{"description":"Save an agent or a routine","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["active","paused","archived"]},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"shared":{"anyOf":[{"type":"object","properties":{"teamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["teamId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook","status","nextRunAt","lastRunAt","shared"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/{agentId}":{"get":{"summary":"One saved agent or routine","description":"The person’s own; an archived one and someone else’s are `not-found`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"One saved agent or routine","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["active","paused","archived"]},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"shared":{"anyOf":[{"type":"object","properties":{"teamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["teamId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook","status","nextRunAt","lastRunAt","shared"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Change a saved agent or routine","description":"The fields named, checked as the agent would be after; its next run is worked out again when its schedule or status changes (none while paused).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["active","paused"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Change a saved agent or routine","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["active","paused","archived"]},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"shared":{"anyOf":[{"type":"object","properties":{"teamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["teamId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook","status","nextRunAt","lastRunAt","shared"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a saved agent or routine","description":"Archived: it never runs again, a run going now finishes, and its runs stay for their 90 days.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Delete a saved agent or routine"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/draft":{"post":{"summary":"Draft a routine from words","description":"reference parity 12a, after the intercept answered `agent.kind: create`: the name, face, task and time read back for the notch’s card; `when` is null when no time could be traced to the words (Jev `schedule-trace`), and the card asks for one. With `updates`, that routine with the change. Saves nothing. Behind `AGENT_SCHEDULES`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":4000},"timeZone":{"type":"string","minLength":1,"maxLength":64},"language":{"type":"string","enum":["en","bg"]},"updates":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"clock":{"type":"string","enum":["12","24"]}},"required":["requestId","said","timeZone"],"additionalProperties":false}}}},"responses":{"200":{"description":"Draft a routine from words","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false},"instructions":{"type":"string","minLength":1,"maxLength":4000},"apps":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"tier":{"type":"string","enum":["read","create","send"]}},"required":["slug","tier"],"additionalProperties":false}},"hands":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["cloud","mac"]}},"schedule":{"anyOf":[{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},{"type":"null"}]},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"connector"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"event":{"type":"string","minLength":1,"maxLength":80},"condition":{"type":"string","maxLength":300}},"required":["kind","slug","event","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"appOpened"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","app"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"folderChanged"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","folder"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"firstUnlock"}},"required":["kind"],"additionalProperties":false}]},{"type":"null"}]},"notify":{"type":"object","properties":{"finished":{"type":"string","enum":["always","whenFound","never"]},"speak":{"type":"boolean"}},"required":["finished","speak"],"additionalProperties":false},"effort":{"type":"string","enum":["light","standard","deep"]},"standing":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"moveFiles"},"root":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","root"],"additionalProperties":false}},"notebook":{"type":"string","maxLength":2000}},"required":["name","face","instructions","apps","hands","schedule","trigger","notify","effort","standing","notebook"],"additionalProperties":false},"what":{"type":"string","minLength":1,"maxLength":300},"when":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"next":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"draftsOnly":{"type":"boolean","const":true}},"required":["draft","what","when"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/schedule/parse":{"post":{"summary":"Read timing words as a schedule","description":"Plain words, EN or BG, to a rule and its next three times with the rule read back (“Weekdays at 08:00”), or `unclear` with what to say. A model splits the words, code builds the rule, Jev checks it. Behind `AGENT_SCHEDULES`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"timeZone":{"type":"string","minLength":1,"maxLength":64},"language":{"type":"string","enum":["en","bg"]},"clock":{"type":"string","enum":["12","24"]}},"required":["said","timeZone"],"additionalProperties":false}}}},"responses":{"200":{"description":"Read timing words as a schedule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"schedule":{"type":"object","properties":{"said":{"type":"string","minLength":1,"maxLength":120},"rrule":{"type":"string","minLength":1,"maxLength":200},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["said","rrule","timeZone"],"additionalProperties":false},"next":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"summary":{"type":"string","minLength":1,"maxLength":120}},"required":["status","schedule","next","summary"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"unclear"},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["status","message"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/which":{"post":{"summary":"Read the answer to “Which one?”","description":"reference parity 08: the person’s answer to which of their ended runs to carry on, in words the Mac could not read as a row or an ordinal alone. Jev picks one of the runs asked about, `neither` (a new task) or `none` (not an answer: the words go on as a question). Starts nothing. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"answer":{"type":"string","minLength":1,"maxLength":500},"runs":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"said":{"type":"string","minLength":1,"maxLength":4000}},"required":["runId","said"],"additionalProperties":false}}},"required":["requestId","answer","runs"],"additionalProperties":false}}}},"responses":{"200":{"description":"Read the answer to “Which one?”","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pick":{"type":"string","enum":["run","neither","none"]},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["pick"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/settings":{"get":{"summary":"Read Settings › Agents","description":"reference parity 12b: whether every routine is paused (`pausedAll`) and a new routine’s default effort; the folders are each Mac’s own and come back empty. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Read Settings › Agents","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pausedAll":{"type":"boolean"},"defaultEffort":{"type":"string","enum":["light","standard","deep"]},"folders":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"historyDays":{"type":"number","const":90}},"required":["pausedAll","defaultEffort","folders","historyDays"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Change Settings › Agents","description":"Pause all (`pausedAll`): every routine’s time that comes while it is on passes unrun, and turning it off never sets off a late run. `defaultEffort`: how hard a new routine works. At least one of them. Behind `AGENTS`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pausedAll":{"type":"boolean"},"defaultEffort":{"type":"string","enum":["light","standard","deep"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Change Settings › Agents","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pausedAll":{"type":"boolean"},"defaultEffort":{"type":"string","enum":["light","standard","deep"]},"folders":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"historyDays":{"type":"number","const":90}},"required":["pausedAll","defaultEffort","folders","historyDays"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}":{"get":{"summary":"An agent run with its timeline","description":"One of the person’s runs and every event, oldest first.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"An agent run with its timeline","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"said":{"type":"string","minLength":1,"maxLength":4000},"origin":{"type":"string","enum":["voice","typed","hub","keepGoing","schedule","trigger"]},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]},"reason":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"null"}]},"effort":{"type":"string","enum":["light","standard","deep"]},"kind":{"type":"string","enum":["drive","browser","build"]},"threadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"turn":{"type":"integer","minimum":1,"maximum":9007199254740991},"foreground":{"type":"boolean"},"phrase":{"anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"null"}]},"checkpoint":{"anyOf":[{"type":"object","properties":{"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["confirm","review","choose","connect","handoff"]},"title":{"type":"string","minLength":1,"maxLength":120}},"required":["checkpointId","kind","title"],"additionalProperties":false},{"type":"null"}]},"result":{"anyOf":[{"type":"string","minLength":1,"maxLength":160},{"type":"null"}]},"outcome":{"type":"string","enum":["partial"]},"missing":{"type":"string","minLength":1,"maxLength":120},"summary":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"sources":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","url"],"additionalProperties":false}},"method":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","minLength":1,"maxLength":200},"failure":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["needsConnection","outOfTime","outOfBudget","blockedForSafety","nothingFound","mayHaveWorked","stuck","trouble"]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","message"],"additionalProperties":false},{"type":"null"}]},"outputs":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["kind","label","undoable"],"additionalProperties":false}},"mainOutput":{"type":"object","properties":{"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["kind","label","undoable"],"additionalProperties":false},"undo":{"type":"object","properties":{"state":{"type":"string","enum":["available","undone"]},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"restorable":{"type":"boolean"},"notes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["state","until","restorable"],"additionalProperties":false},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","header","said","origin","status","reason","effort","foreground","phrase","checkpoint","result","failure","outputs","costMicros","createdAt","startedAt","finishedAt"],"additionalProperties":false},"events":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"event":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"start"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","runId","seq"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"plan"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"phrases":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}}},"required":["type","seq","phrases"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"step"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"stepId":{"type":"string","minLength":1,"maxLength":40},"phrase":{"type":"string","minLength":1,"maxLength":60},"state":{"type":"string","enum":["started","done","failed"]},"source":{"type":"string","maxLength":80},"tool":{"type":"string","enum":["search","read","write","list","open","note","memory","app"]},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","seq","stepId","phrase","state"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"thought"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"thoughtId":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["think","say"]},"final":{"type":"boolean"}},"required":["type","seq","thoughtId","text","kind","final"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"peek"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"stepId":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","maxLength":140}},"required":["type","seq","stepId","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"progress"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"completed":{"type":"integer","minimum":0,"maximum":9007199254740991},"known":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"waiting":{"type":"boolean"}},"required":["type","seq","completed","known","waiting"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"local"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"callId":{"type":"string","minLength":1,"maxLength":40},"action":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"openApp"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["type","app"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openUrl"},"url":{"type":"string","minLength":1,"maxLength":2000},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"media"},"command":{"type":"string","enum":["playPause","next","previous"]}},"required":["type","command"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openFile"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["file","folder","any"]}},"required":["type","name","kind"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"createReminder"},"title":{"type":"string","minLength":1,"maxLength":200},"due":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"allDay":{"type":"boolean"},"notes":{"type":"string","minLength":1,"maxLength":2000},"list":{"type":"string","minLength":1,"maxLength":80}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"listFolder"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["type","folder"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"moveItems"},"folder":{"type":"string","minLength":1,"maxLength":300},"items":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":255}},"into":{"type":"string","minLength":1,"maxLength":300}},"required":["type","folder","items","into"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"renameItem"},"folder":{"type":"string","minLength":1,"maxLength":300},"item":{"type":"string","minLength":1,"maxLength":255},"to":{"type":"string","minLength":1,"maxLength":255}},"required":["type","folder","item","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"makeFolder"},"folder":{"type":"string","minLength":1,"maxLength":300},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["type","folder","name"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeFile"},"title":{"type":"string","minLength":1,"maxLength":120},"format":{"type":"string","enum":["md","txt","rtf","docx","html","csv","xlsx","pptx","pdf"]},"content":{"type":"string","minLength":1,"maxLength":100000},"place":{"type":"string","enum":["hintora","desktop","documents","downloads"]},"folder":{"type":"string","minLength":1,"maxLength":80},"open":{"type":"boolean"},"confirm":{"type":"boolean"}},"required":["type","title","format","content","place","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readFile"},"name":{"type":"string","minLength":1,"maxLength":255},"place":{"type":"string","enum":["hintora","desktop","documents","downloads"]},"maxChars":{"type":"integer","minimum":1,"maximum":20000}},"required":["type","name","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeProjectFile"},"project":{"type":"string","minLength":1,"maxLength":80},"path":{"type":"string","minLength":1,"maxLength":200},"content":{"type":"string","maxLength":100000},"open":{"type":"boolean"},"confirm":{"type":"boolean"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectColor":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"required":["type","project","path","content","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readEditFile"},"path":{"type":"string","minLength":3,"maxLength":1024},"maxChars":{"type":"integer","minimum":1,"maximum":100000}},"required":["type","path","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"editFile"},"path":{"type":"string","minLength":3,"maxLength":1024},"edits":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"find":{"type":"string","minLength":1,"maxLength":20000},"replace":{"type":"string","maxLength":100000}},"required":["find","replace"],"additionalProperties":false}},"open":{"type":"boolean"},"confirm":{"type":"boolean"}},"required":["type","path","edits","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"createAppleNote"},"title":{"type":"string","minLength":1,"maxLength":120},"body":{"type":"string","minLength":1,"maxLength":50000},"confirm":{"type":"boolean"}},"required":["type","title","body","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserOpen"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserOpenFront"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserRead"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserLook"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserClick"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"label":{"type":"string","maxLength":80},"confirm":{"type":"boolean"},"ask":{"type":"string","minLength":1,"maxLength":120},"goTo":{"type":"string","minLength":1,"maxLength":255},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","element","label","confirm","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserType"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"text":{"type":"string","minLength":1,"maxLength":500,"pattern":"^[^\\p{Cc}\\u2028\\u2029]+$"},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","element","text","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserKey"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"key":{"type":"string","enum":["Enter","Escape","ArrowDown","ArrowUp"]},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"confirm":{"type":"boolean"},"ask":{"type":"string","minLength":1,"maxLength":120},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","key","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserScroll"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"direction":{"type":"string","enum":["up","down"]},"amount":{"type":"integer","minimum":1,"maximum":10}},"required":["type","tab","direction","amount"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserBack"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserWait"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"ms":{"type":"integer","minimum":100,"maximum":5000}},"required":["type","tab","ms"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserClose"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserShow"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"site":{"type":"string","minLength":1,"maxLength":80}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readProjectFile"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"maxChars":{"type":"integer","minimum":1,"maximum":60000}},"required":["type","projectId","path","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"listProject"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","projectId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"editProjectFile"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"edits":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"find":{"type":"string","minLength":1,"maxLength":20000},"replace":{"type":"string","maxLength":100000}},"required":["find","replace"],"additionalProperties":false}},"expectHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["type","projectId","path","edits"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"previewProject"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"entry":{"type":"string","minLength":1,"maxLength":200},"widths":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"integer","minimum":320,"maximum":2560}}},"required":["type","projectId","widths"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeProjectAsset"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/svg+xml"]},"base64":{"type":"string","minLength":4,"maxLength":3333336,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"credit":{"type":"object","properties":{"source":{"type":"string","enum":["generated","openverse","pexels","own"]},"license":{"type":"string","minLength":1,"maxLength":40},"attribution":{"type":"string","minLength":1,"maxLength":600},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["source","license","attribution"],"additionalProperties":false}},"required":["type","projectId","path","mime","base64","hash"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"checkProjectApp"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pages":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","maxLength":200,"pattern":"^\\/[A-Za-z0-9._~\\-/]*$"}}},"required":["type","projectId","pages"],"additionalProperties":false}]},"waits":{"type":"boolean"}},"required":["type","seq","callId","action"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"checkpoint"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["confirm","review","choose","connect","handoff"]},"title":{"type":"string","minLength":1,"maxLength":120},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["type","seq","checkpointId","kind","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"answer"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"outcome":{"type":"string","enum":["confirmed","skipped","chosen","connected","didIt","expired"]}},"required":["type","seq","checkpointId","outcome"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"output"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["type","seq","kind","label","undoable"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"status"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]},"reason":{"type":"string","minLength":1,"maxLength":40}},"required":["type","seq","status"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["done","stopped","failed"]},"result":{"type":"string","minLength":1,"maxLength":160},"failure":{"type":"object","properties":{"kind":{"type":"string","enum":["needsConnection","outOfTime","outOfBudget","blockedForSafety","nothingFound","mayHaveWorked","stuck","trouble"]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","message"],"additionalProperties":false},"reason":{"type":"string","minLength":1,"maxLength":40},"outcome":{"type":"string","enum":["partial"]},"missing":{"type":"string","minLength":1,"maxLength":120},"summary":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"sources":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","url"],"additionalProperties":false}},"report":{"type":"string","minLength":1,"maxLength":8000},"next":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":32}},"method":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","minLength":1,"maxLength":200}},"required":["type","seq","status","result"],"additionalProperties":false}]}},"required":["at","event"],"additionalProperties":false}},"usage":{"type":"object","properties":{"weekPercent":{"type":"number","minimum":0,"maximum":100}},"required":["weekPercent"],"additionalProperties":false}},"required":["run","events"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/events":{"get":{"summary":"Follow an agent run live","description":"Server-sent events from `Last-Event-ID` (or `?after=`), each with its `seq` as the id and its type as the event name: resumable with nothing missed or repeated. Ends after `done`, or after about 270 s (reconnect). A `local` event with `waits` is answered at `…/local/{callId}` (docs/plans/agents/09-local-tools-contract.md).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Follow an agent run live","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"start"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["type","runId","seq"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"plan"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"phrases":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}}},"required":["type","seq","phrases"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"step"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"stepId":{"type":"string","minLength":1,"maxLength":40},"phrase":{"type":"string","minLength":1,"maxLength":60},"state":{"type":"string","enum":["started","done","failed"]},"source":{"type":"string","maxLength":80},"tool":{"type":"string","enum":["search","read","write","list","open","note","memory","app"]},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","seq","stepId","phrase","state"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"thought"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"thoughtId":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["think","say"]},"final":{"type":"boolean"}},"required":["type","seq","thoughtId","text","kind","final"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"peek"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"stepId":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","maxLength":140}},"required":["type","seq","stepId","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"progress"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"completed":{"type":"integer","minimum":0,"maximum":9007199254740991},"known":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"waiting":{"type":"boolean"}},"required":["type","seq","completed","known","waiting"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"local"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"callId":{"type":"string","minLength":1,"maxLength":40},"action":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"openApp"},"app":{"type":"string","minLength":1,"maxLength":80}},"required":["type","app"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openUrl"},"url":{"type":"string","minLength":1,"maxLength":2000},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"media"},"command":{"type":"string","enum":["playPause","next","previous"]}},"required":["type","command"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"openFile"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["file","folder","any"]}},"required":["type","name","kind"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"createReminder"},"title":{"type":"string","minLength":1,"maxLength":200},"due":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"allDay":{"type":"boolean"},"notes":{"type":"string","minLength":1,"maxLength":2000},"list":{"type":"string","minLength":1,"maxLength":80}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"listFolder"},"folder":{"type":"string","minLength":1,"maxLength":300}},"required":["type","folder"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"moveItems"},"folder":{"type":"string","minLength":1,"maxLength":300},"items":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":255}},"into":{"type":"string","minLength":1,"maxLength":300}},"required":["type","folder","items","into"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"renameItem"},"folder":{"type":"string","minLength":1,"maxLength":300},"item":{"type":"string","minLength":1,"maxLength":255},"to":{"type":"string","minLength":1,"maxLength":255}},"required":["type","folder","item","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"makeFolder"},"folder":{"type":"string","minLength":1,"maxLength":300},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["type","folder","name"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeFile"},"title":{"type":"string","minLength":1,"maxLength":120},"format":{"type":"string","enum":["md","txt","rtf","docx","html","csv","xlsx","pptx","pdf"]},"content":{"type":"string","minLength":1,"maxLength":100000},"place":{"type":"string","enum":["hintora","desktop","documents","downloads"]},"folder":{"type":"string","minLength":1,"maxLength":80},"open":{"type":"boolean"},"confirm":{"type":"boolean"}},"required":["type","title","format","content","place","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readFile"},"name":{"type":"string","minLength":1,"maxLength":255},"place":{"type":"string","enum":["hintora","desktop","documents","downloads"]},"maxChars":{"type":"integer","minimum":1,"maximum":20000}},"required":["type","name","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeProjectFile"},"project":{"type":"string","minLength":1,"maxLength":80},"path":{"type":"string","minLength":1,"maxLength":200},"content":{"type":"string","maxLength":100000},"open":{"type":"boolean"},"confirm":{"type":"boolean"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectColor":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"required":["type","project","path","content","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readEditFile"},"path":{"type":"string","minLength":3,"maxLength":1024},"maxChars":{"type":"integer","minimum":1,"maximum":100000}},"required":["type","path","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"editFile"},"path":{"type":"string","minLength":3,"maxLength":1024},"edits":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"find":{"type":"string","minLength":1,"maxLength":20000},"replace":{"type":"string","maxLength":100000}},"required":["find","replace"],"additionalProperties":false}},"open":{"type":"boolean"},"confirm":{"type":"boolean"}},"required":["type","path","edits","open","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"createAppleNote"},"title":{"type":"string","minLength":1,"maxLength":120},"body":{"type":"string","minLength":1,"maxLength":50000},"confirm":{"type":"boolean"}},"required":["type","title","body","confirm"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserOpen"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserOpenFront"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserRead"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserLook"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserClick"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"label":{"type":"string","maxLength":80},"confirm":{"type":"boolean"},"ask":{"type":"string","minLength":1,"maxLength":120},"goTo":{"type":"string","minLength":1,"maxLength":255},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","element","label","confirm","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserType"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"text":{"type":"string","minLength":1,"maxLength":500,"pattern":"^[^\\p{Cc}\\u2028\\u2029]+$"},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","element","text","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserKey"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"key":{"type":"string","enum":["Enter","Escape","ArrowDown","ArrowUp"]},"element":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"confirm":{"type":"boolean"},"ask":{"type":"string","minLength":1,"maxLength":120},"at":{"type":"string","minLength":1,"maxLength":2200}},"required":["type","tab","key","at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserScroll"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"direction":{"type":"string","enum":["up","down"]},"amount":{"type":"integer","minimum":1,"maximum":10}},"required":["type","tab","direction","amount"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserBack"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserWait"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"ms":{"type":"integer","minimum":100,"maximum":5000}},"required":["type","tab","ms"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserClose"},"tab":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"browserShow"},"tab":{"type":"integer","minimum":0,"maximum":2147483647},"site":{"type":"string","minLength":1,"maxLength":80}},"required":["type","tab"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"readProjectFile"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"maxChars":{"type":"integer","minimum":1,"maximum":60000}},"required":["type","projectId","path","maxChars"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"listProject"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","projectId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"editProjectFile"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"edits":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"find":{"type":"string","minLength":1,"maxLength":20000},"replace":{"type":"string","maxLength":100000}},"required":["find","replace"],"additionalProperties":false}},"expectHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["type","projectId","path","edits"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"previewProject"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"entry":{"type":"string","minLength":1,"maxLength":200},"widths":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"integer","minimum":320,"maximum":2560}}},"required":["type","projectId","widths"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"writeProjectAsset"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"path":{"type":"string","minLength":1,"maxLength":200},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/svg+xml"]},"base64":{"type":"string","minLength":4,"maxLength":3333336,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"credit":{"type":"object","properties":{"source":{"type":"string","enum":["generated","openverse","pexels","own"]},"license":{"type":"string","minLength":1,"maxLength":40},"attribution":{"type":"string","minLength":1,"maxLength":600},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["source","license","attribution"],"additionalProperties":false}},"required":["type","projectId","path","mime","base64","hash"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"checkProjectApp"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pages":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","maxLength":200,"pattern":"^\\/[A-Za-z0-9._~\\-/]*$"}}},"required":["type","projectId","pages"],"additionalProperties":false}]},"waits":{"type":"boolean"}},"required":["type","seq","callId","action"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"checkpoint"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["confirm","review","choose","connect","handoff"]},"title":{"type":"string","minLength":1,"maxLength":120},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["type","seq","checkpointId","kind","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"answer"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"outcome":{"type":"string","enum":["confirmed","skipped","chosen","connected","didIt","expired"]}},"required":["type","seq","checkpointId","outcome"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"output"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["type","seq","kind","label","undoable"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"status"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]},"reason":{"type":"string","minLength":1,"maxLength":40}},"required":["type","seq","status"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"seq":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["done","stopped","failed"]},"result":{"type":"string","minLength":1,"maxLength":160},"failure":{"type":"object","properties":{"kind":{"type":"string","enum":["needsConnection","outOfTime","outOfBudget","blockedForSafety","nothingFound","mayHaveWorked","stuck","trouble"]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["kind","message"],"additionalProperties":false},"reason":{"type":"string","minLength":1,"maxLength":40},"outcome":{"type":"string","enum":["partial"]},"missing":{"type":"string","minLength":1,"maxLength":120},"summary":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"sources":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","url"],"additionalProperties":false}},"report":{"type":"string","minLength":1,"maxLength":8000},"next":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":32}},"method":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","minLength":1,"maxLength":200}},"required":["type","seq","status","result"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/control":{"post":{"summary":"Pause, resume, stop, steer or background a run","description":"Recorded for the engine’s next step boundary. A stop of a run nobody is advancing ends it at once.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"type":"string","enum":["pause","resume","stop","background","steer"]},"text":{"type":"string","minLength":1,"maxLength":300}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Pause, resume, stop, steer or background a run","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]}},"required":["runId","status"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/undo":{"post":{"summary":"Undo what an ended run made, or restore it","description":"Owner only, and the same answer however often it is asked. Takes back the Hintora notes the run made, restorably (`restore: true` puts them back), and lists in `local` what the run made on its Mac, which that Mac puts back through its journal.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"restore":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Undo what an ended run made, or restore it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"undone":{"type":"integer","minimum":0,"maximum":9007199254740991},"kept":{"type":"integer","minimum":0,"maximum":9007199254740991},"message":{"type":"string","minLength":1,"maxLength":300},"local":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["note","link","draft","files","project"]},"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","maxLength":2000},"undoable":{"type":"boolean"}},"required":["kind","label","undoable"],"additionalProperties":false}},"undo":{"type":"object","properties":{"state":{"type":"string","enum":["available","undone"]},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"restorable":{"type":"boolean"},"notes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["state","until","restorable"],"additionalProperties":false}},"required":["runId","undone","kept","message"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/local/{callId}":{"post":{"summary":"The Mac’s answer to a local tool call","description":"From the device that started the run only (403 from any other). The first answer to a call is kept; a run waiting for the Mac carries on (09 §5.2).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"done"},"items":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"kind":{"type":"string","enum":["file","folder"]},"modifiedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","kind"],"additionalProperties":false}},"changed":{"type":"integer","minimum":0,"maximum":500},"journalId":{"type":"string","minLength":1,"maxLength":80},"file":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","minLength":1,"maxLength":1024},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["name","path","bytes"],"additionalProperties":false},"text":{"type":"string","maxLength":100000},"truncated":{"type":"boolean"},"note":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120}},"required":["title"],"additionalProperties":false},"reminder":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200}},"required":["title"],"additionalProperties":false},"browser":{"type":"object","properties":{"tab":{"type":"integer","minimum":0,"maximum":2147483647},"page":{"type":"object","properties":{"url":{"type":"string","maxLength":2048},"title":{"type":"string","maxLength":200},"elements":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^b[1-9]\\d{0,3}$"},"role":{"type":"string","minLength":1,"maxLength":40},"name":{"type":"string","maxLength":80},"value":{"type":"string","maxLength":80},"host":{"type":"string","maxLength":255},"secret":{"type":"boolean","const":true},"search":{"type":"boolean","const":true},"submit":{"type":"string","maxLength":80}},"required":["id","role","name"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["url","title","elements"],"additionalProperties":false},"look":{"type":"object","properties":{"jpeg":{"type":"string","maxLength":600000},"width":{"type":"integer","minimum":1,"maximum":1024},"height":{"type":"integer","minimum":1,"maximum":8192}},"required":["jpeg","width","height"],"additionalProperties":false},"navigated":{"type":"boolean"},"refused":{"type":"string","enum":["secretField","pay","notOurTab","gone","detached","userActive","signIn","notConnected","version","stale","moved","notAField","disconnected","noFrontPage","private","blocked","notPermitted","notReadable","tooLarge","tooMany","unknownFile"]},"retried":{"type":"boolean"},"front":{"type":"string","maxLength":2048,"format":"uri"}},"additionalProperties":false},"project":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"folder":{"type":"string","minLength":1,"maxLength":1024},"file":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":200},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["path","hash","bytes"],"additionalProperties":false},"text":{"type":"string","maxLength":60000},"truncated":{"type":"boolean"},"entries":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":200},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"modifiedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"hintoraWrote":{"type":"boolean"}},"required":["path","hash","bytes","hintoraWrote"],"additionalProperties":false}},"applied":{"type":"integer","minimum":0,"maximum":20},"edit":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":19},"matches":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["index","matches"],"additionalProperties":false},"preview":{"type":"object","properties":{"entry":{"type":"string","minLength":1,"maxLength":200},"shots":{"maxItems":2,"type":"array","items":{"type":"object","properties":{"width":{"type":"integer","minimum":320,"maximum":2560},"height":{"type":"integer","minimum":1,"maximum":100000},"jpeg":{"type":"string","maxLength":1100000},"cropped":{"type":"boolean"}},"required":["width","height","jpeg"],"additionalProperties":false}},"checks":{"type":"object","properties":{"consoleErrors":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"message":{"type":"string","maxLength":300},"source":{"type":"string","maxLength":300}},"required":["message"],"additionalProperties":false}},"brokenImages":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"src":{"type":"string","maxLength":500}},"required":["src"],"additionalProperties":false}},"brokenLinks":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"href":{"type":"string","maxLength":500}},"required":["href"],"additionalProperties":false}},"overflow":{"maxItems":2,"type":"array","items":{"type":"object","properties":{"width":{"type":"integer","minimum":1,"maximum":9007199254740991},"scrollWidth":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["width","scrollWidth"],"additionalProperties":false}},"contrast":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":80},"ratio":{"type":"number","minimum":1,"maximum":21},"required":{"type":"number","minimum":1,"maximum":21},"width":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["text","ratio","required","width"],"additionalProperties":false}},"headings":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":120}}},"required":["consoleErrors","brokenImages","brokenLinks","overflow","contrast","headings"],"additionalProperties":false}},"required":["entry","shots","checks"],"additionalProperties":false},"app":{"type":"object","properties":{"outcome":{"type":"string","enum":["ran","notAnApp","noToolchain","noIsolation","installFailed","didNotStart"]},"isolation":{"type":"string","enum":["container","sandbox"]},"pages":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","maxLength":200,"pattern":"^\\/[A-Za-z0-9._~\\-/]*$"},"status":{"type":"integer","minimum":0,"maximum":599},"ms":{"type":"integer","minimum":0,"maximum":120000}},"required":["path","status","ms"],"additionalProperties":false}},"log":{"type":"string","maxLength":4000}},"required":["outcome","pages"],"additionalProperties":false}},"additionalProperties":false}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"failed"},"reason":{"type":"string","enum":["notAllowed","notFound","conflict","refused","unavailable","declined","unsupported","tooLarge"]},"message":{"type":"string","minLength":1,"maxLength":300},"browser":{"type":"object","properties":{"refused":{"type":"string","enum":["secretField","pay","notOurTab","gone","detached","userActive","signIn","notConnected","version","stale","moved","notAField","disconnected","noFrontPage","private","blocked","notPermitted","notReadable","tooLarge","tooMany","unknownFile"]}},"required":["refused"],"additionalProperties":false},"project":{"type":"object","properties":{"file":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":200},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["path","hash","bytes"],"additionalProperties":false},"edit":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":19},"matches":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["index","matches"],"additionalProperties":false}},"additionalProperties":false}},"required":["status","reason","message"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"The Mac’s answer to a local tool call","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]}},"required":["runId","status"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/checkpoints/{checkpointId}/answer":{"post":{"summary":"Answer a run’s checkpoint","description":"Skip, choose, connected or did it; the run carries on. A confirm card is confirmed with `/v1/actions/confirm` and the checkpoint’s id instead.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"answer":{"type":"string","const":"skip"}},"required":["answer"],"additionalProperties":false},{"type":"object","properties":{"answer":{"type":"string","const":"choose"},"optionId":{"type":"string","minLength":1,"maxLength":40}},"required":["answer","optionId"],"additionalProperties":false},{"type":"object","properties":{"answer":{"type":"string","const":"connected"}},"required":["answer"],"additionalProperties":false},{"type":"object","properties":{"answer":{"type":"string","const":"didIt"}},"required":["answer"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Answer a run’s checkpoint","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]}},"required":["runId","status"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/agents/runs/{runId}/checkpoints/{checkpointId}/card":{"post":{"summary":"The card for a run’s checkpoint","description":"Made when the Mac shows it: choose, connect and hand-off cards (confirm cards come with A7).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"language":{"type":"string","enum":["en","bg"]},"returnScheme":{"anyOf":[{"type":"string","enum":["hintora","hintora-stage","hintora-dev"]},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"The card for a run’s checkpoint","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"confirm"},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"planned":{"anyOf":[{"oneOf":[{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"confirm"},"plan":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"title":{"type":"string","minLength":1,"maxLength":80},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"fields":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["title","when","to","subject","body","team","location","description","account","channel","parent","repo","tool"]},"label":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","minLength":1,"maxLength":4000}},"required":["key","label","value"],"additionalProperties":false}},"said":{"type":"string","maxLength":500},"consequential":{"type":"boolean"},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verb":{"type":"string","enum":["send","create"]},"accounts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","minLength":1,"maxLength":320}},"required":["id","label"],"additionalProperties":false}},"recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254},"status":{"type":"string","enum":["said","found","picked","choose","missing","read"]},"candidates":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}},"sendsOnPick":{"type":"boolean","const":true}},"required":["status"],"additionalProperties":false}},"required":["id","token","app","appName","action","title","account","fields","said","consequential","warnings","expiresAt"],"additionalProperties":false}},"required":["requestId","status","plan"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"notConnected"},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"connectUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"message":{"type":"string","minLength":1,"maxLength":300}},"required":["requestId","status","app","appName","connectUrl","message"],"additionalProperties":false},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"stopped"},"reason":{"type":"string","enum":["missing","untraceable","unsupported","unavailable","disabled"]},"message":{"type":"string","minLength":1,"maxLength":300},"severalAccounts":{"type":"boolean","const":true}},"required":["requestId","status","reason","message"],"additionalProperties":false}]},{"type":"object","properties":{"requestId":{"type":"string"},"status":{"type":"string","const":"confirm"},"plan":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"app":{"type":"string","const":"mcp"},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"type":"string","const":"mcp.callTool"},"title":{"type":"string","minLength":1,"maxLength":80},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"fields":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["title","when","to","subject","body","team","location","description","account","channel","parent","repo","tool"]},"label":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","minLength":1,"maxLength":4000}},"required":["key","label","value"],"additionalProperties":false}},"said":{"type":"string","maxLength":500},"consequential":{"type":"boolean"},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verb":{"type":"string","enum":["send","create"]},"accounts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","minLength":1,"maxLength":320}},"required":["id","label"],"additionalProperties":false}},"recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254},"status":{"type":"string","enum":["said","found","picked","choose","missing","read"]},"candidates":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}},"sendsOnPick":{"type":"boolean","const":true}},"required":["status"],"additionalProperties":false}},"required":["id","token","app","appName","action","title","account","fields","said","consequential","warnings","expiresAt"],"additionalProperties":false}},"required":["requestId","status","plan"],"additionalProperties":false}]}},"required":["kind","checkpointId","runId","header","planned"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"review"},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"title":{"type":"string","minLength":1,"maxLength":120},"plans":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"token":{"type":"string","minLength":20,"maxLength":600},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"title":{"type":"string","minLength":1,"maxLength":80},"account":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"fields":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["title","when","to","subject","body","team","location","description","account","channel","parent","repo","tool"]},"label":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","minLength":1,"maxLength":4000}},"required":["key","label","value"],"additionalProperties":false}},"said":{"type":"string","maxLength":500},"consequential":{"type":"boolean"},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"verb":{"type":"string","enum":["send","create"]},"accounts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","minLength":1,"maxLength":320}},"required":["id","label"],"additionalProperties":false}},"recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254},"status":{"type":"string","enum":["said","found","picked","choose","missing","read"]},"candidates":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}},"sendsOnPick":{"type":"boolean","const":true}},"required":["status"],"additionalProperties":false}},"required":["id","token","app","appName","action","title","account","fields","said","consequential","warnings","expiresAt"],"additionalProperties":false}},"warnings":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}}},"required":["kind","checkpointId","runId","header","title","plans","warnings"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"choose"},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"question":{"type":"string","minLength":1,"maxLength":120},"options":{"minItems":2,"maxItems":4,"type":"array","items":{"type":"object","properties":{"optionId":{"type":"string","minLength":1,"maxLength":40},"label":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","minLength":1,"maxLength":200},"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"}},"required":["optionId","label"],"additionalProperties":false}}},"required":["kind","checkpointId","runId","header","question","options"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"connect"},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"appName":{"type":"string","minLength":1,"maxLength":60},"message":{"type":"string","minLength":1,"maxLength":300},"connectUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["kind","checkpointId","runId","header","slug","appName","message","connectUrl"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"handoff"},"checkpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"reason":{"type":"string","enum":["signIn","captcha","purchase","password","noApi","never"]},"browser":{"type":"string","enum":["check","paused","stopped"]},"message":{"type":"string","minLength":1,"maxLength":200},"app":{"type":"string","minLength":1,"maxLength":80},"goal":{"type":"string","minLength":1,"maxLength":200}},"required":["kind","checkpointId","runId","header","reason","message","goal"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/apps/connections/{id}":{"delete":{"summary":"Disconnect an app","description":"Deletes the connection at the platform its id names (composio:… or pipedream:…) and revokes the app’s access where the platform can. Someone else’s connection is not found.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"204":{"description":"Disconnect an app"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/calendar/upcoming":{"get":{"summary":"Upcoming events","description":"Events in the next `hours` (48 by default, at most 336), without declined ones, read from the Google Calendar or Outlook connected in Apps (decision 0135). None connected is an empty list.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Upcoming events","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["google_calendar","outlook_calendar"]},"title":{"type":"string"},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"allDay":{"type":"boolean"},"declined":{"type":"boolean"},"attendees":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["name","email"],"additionalProperties":false}},"meetingUrl":{"type":["string","null"]}},"required":["id","provider","title","startsAt","endsAt","allDay","declined","attendees","meetingUrl"],"additionalProperties":false}},"syncedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["events","syncedAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/meetings":{"get":{"summary":"Meetings","description":"Meetings recorded on the Mac, newest first, with summaries, and how many more the plan allows this week.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Meetings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["recording","summarising","ready","failed"]},"title":{"type":"string"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"attendees":{"type":"array","items":{"type":"string"}},"summary":{"type":"string"},"decisions":{"type":"array","items":{"type":"string"}},"actionItems":{"type":"array","items":{"type":"string"}},"error":{"type":["string","null"]}},"required":["id","status","title","startedAt","endedAt","attendees","summary","decisions","actionItems","error"],"additionalProperties":false}},"remainingThisWeek":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["meetings","remainingThisWeek"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Start taking notes","description":"Starts a meeting under the Mac’s own id; a retried start returns the same one. The free plan records 3 meetings a week, up to 30 minutes each.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"sourceApp":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"calendarEventId":{"default":null,"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["id","startedAt"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start taking notes","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"chunkSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maximumMinutes":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","chunkSeconds","maximumMinutes"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/meetings/{id}/chunks":{"post":{"summary":"Send a chunk of audio","description":"Multipart: track (microphone or system), n, offsetMs, durationMs and file (AAC in M4A, at most 4 MB). Transcribed at once with speakers; the audio is not kept, only the sealed transcript.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Send a chunk of audio","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"track":{"type":"string","enum":["microphone","system"]},"n":{"type":"integer","minimum":0,"maximum":9007199254740991},"words":{"type":"integer","minimum":0,"maximum":9007199254740991},"lines":{"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string"},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string"}},"required":["speaker","startMs","text"],"additionalProperties":false}}},"required":["track","n","words"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/meetings/{id}/finish":{"post":{"summary":"Finish a meeting","description":"Summarises the transcript into a title, summary, decisions and action items and files the meeting in the library. Finishing again is safe.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"title":{"default":null,"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}]}},"required":["endedAt"],"additionalProperties":false}}}},"responses":{"200":{"description":"Finish a meeting","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["recording","summarising","ready","failed"]},"title":{"type":"string"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"attendees":{"type":"array","items":{"type":"string"}},"summary":{"type":"string"},"decisions":{"type":"array","items":{"type":"string"}},"actionItems":{"type":"array","items":{"type":"string"}},"transcript":{"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string"},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string"}},"required":["speaker","startMs","text"],"additionalProperties":false}},"error":{"type":["string","null"]}},"required":["id","status","title","startedAt","endedAt","attendees","summary","decisions","actionItems","transcript","error"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/meetings/{id}/ask":{"post":{"summary":"Ask about a meeting so far","description":"Answers a question from the meeting’s transcript so far and the person’s notes, citing the transcript lines it used as [n] (their place in the transcript, with time and speaker). The conversation’s earlier turns come from the client; nothing new is kept. Streamed one event a line with Accept: application/x-ndjson (delta, then done, or problem).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"turns":{"default":[],"maxItems":12,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"answer":{"type":"string","maxLength":8000}},"required":["question","answer"],"additionalProperties":false}},"notes":{"default":null,"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}]},"language":{"type":"string","enum":["en","bg"]}},"required":["question"],"additionalProperties":false}}}},"responses":{"200":{"description":"Ask about a meeting so far","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"answer":{"type":"string","maxLength":16000},"citations":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"segment":{"type":"integer","minimum":0,"maximum":9007199254740991},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"speaker":{"type":"string","maxLength":200}},"required":["segment","startMs","speaker"],"additionalProperties":false}},"transcriptLines":{"type":"integer","minimum":0,"maximum":9007199254740991},"trimmed":{"type":"boolean"}},"required":["answer","citations","transcriptLines","trimmed"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/meetings/{id}":{"get":{"summary":"A meeting","description":"Summary, decisions, action items and the speaker-labelled transcript.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"A meeting","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["recording","summarising","ready","failed"]},"title":{"type":"string"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"attendees":{"type":"array","items":{"type":"string"}},"summary":{"type":"string"},"decisions":{"type":"array","items":{"type":"string"}},"actionItems":{"type":"array","items":{"type":"string"}},"transcript":{"type":"array","items":{"type":"object","properties":{"speaker":{"type":"string"},"startMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"text":{"type":"string"}},"required":["speaker","startMs","text"],"additionalProperties":false}},"error":{"type":["string","null"]}},"required":["id","status","title","startedAt","endedAt","attendees","summary","decisions","actionItems","transcript","error"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a meeting","description":"Deletes it here and in the library, so every Mac and connected app loses it too.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Delete a meeting"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/me":{"get":{"summary":"Identity, plan and usage","description":"Limits are precomputed here so a client never re-derives the rules and drifts from the server.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Identity, plan and usage","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"usage":{"type":"object","properties":{"periodStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"periodEnd":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"tokensUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"requestsUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["periodStart","periodEnd","tokensUsed","requestsUsed","costMicros"],"additionalProperties":false},"limits":{"type":"object","properties":{"tokensRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"requestsRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"exhausted":{"type":"boolean"}},"required":["tokensRemaining","requestsRemaining","exhausted"],"additionalProperties":false}},"required":["userId","email","deviceId","plan","usage","limits"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/models":{"get":{"summary":"Available assistant models","description":"Returns the reviewed cross-provider models this client may select. The internal router model is never client-selectable.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Available assistant models","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"defaultModelId":{"type":"string","minLength":3,"maxLength":160,"pattern":"^[a-z0-9-]+\\/[a-zA-Z0-9._:-]+$"},"models":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":3,"maxLength":160,"pattern":"^[a-z0-9-]+\\/[a-zA-Z0-9._:-]+$"},"displayName":{"type":"string","minLength":1,"maxLength":120},"creator":{"type":"string","minLength":1,"maxLength":40},"description":{"type":"string","minLength":1,"maxLength":240},"speed":{"type":"string","enum":["Fast","Balanced","Deep"]}},"required":["id","displayName","creator","description","speed"],"additionalProperties":false}}},"required":["defaultModelId","models"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/messages":{"post":{"summary":"Metered model call","description":"A multi-turn conversation with inline screenshots, a reviewed model choice and bounded automatic web search. New clients may request a non-streaming, schema-validated visual guide plan when the deployment advertises that capability. A typed question may carry attached files in its last message while the deployment advertises `attachments`: images, inlined text and PDFs as `document` blocks (at most 5), with the whole body within 4.5 MB (413 beyond). It is proxied through AI Gateway so no client holds a provider key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"model":{"type":"string","enum":["assistant","router"]},"modelId":{"type":"string","minLength":3,"maxLength":160,"pattern":"^[a-z0-9-]+\\/[a-zA-Z0-9._:-]+$"},"system":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":40000}},"required":["text"],"additionalProperties":false}},"messages":{"minItems":1,"maxItems":80,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"anyOf":[{"type":"string","minLength":1},{"minItems":1,"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"source":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"url"},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false}]}},"required":["type","source"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"document"},"source":{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["application/pdf"]},"data":{"type":"string","minLength":1,"maxLength":3400000}},"required":["type","mediaType","data"],"additionalProperties":false},"title":{"type":"string","minLength":1,"maxLength":200}},"required":["type","source"],"additionalProperties":false}]}}]}},"required":["role","content"],"additionalProperties":false}},"maxOutputTokens":{"type":"integer","exclusiveMinimum":0,"maximum":4096},"temperature":{"type":"number","minimum":0,"maximum":1},"stream":{"type":"boolean"},"responseMode":{"type":"string","enum":["text","visual-guide-v1","visual-guide-v2"]},"guideContext":{"type":"object","properties":{"guideSessionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stepNumber":{"type":"integer","minimum":1,"maximum":12},"originalGoal":{"type":"string","minLength":1,"maxLength":2000},"capturedScreenNumbers":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":16}},"priorCues":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"stepNumber":{"type":"integer","minimum":1,"maximum":12},"summary":{"type":"string","minLength":1,"maxLength":320},"actionKind":{"type":"string","enum":["leftClick","contextClick","doubleClick","scroll","hover","drag","manual","wait"]}},"required":["stepNumber","summary"],"additionalProperties":false}},"lastCandidateAction":{"type":"object","properties":{"kind":{"type":"string","enum":["leftClick","contextClick","doubleClick","scroll","hover","drag","manual","wait"]},"summary":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","summary"],"additionalProperties":false},"retryCount":{"type":"integer","minimum":0,"maximum":2}},"required":["guideSessionId","stepNumber","originalGoal","capturedScreenNumbers","priorCues","retryCount"],"additionalProperties":false},"guideContextV2":{"type":"object","properties":{"guideSessionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"originalGoal":{"type":"string","minLength":1,"maxLength":2000},"round":{"type":"integer","minimum":1,"maximum":30},"capturedScreens":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"width":{"type":"integer","minimum":1,"maximum":9007199254740991},"height":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["screen","width","height"],"additionalProperties":false}},"candidates":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^c\\d{1,4}$"},"screen":{"type":"integer","minimum":1,"maximum":16},"role":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":60},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"enabled":{"type":"boolean"},"container":{"type":"string","enum":["window","sheet","menu","popover","sidebar","toolbar","menuBar","dock","dialog"]},"state":{"type":"string","minLength":1,"maxLength":80},"section":{"type":"string","minLength":1,"maxLength":60}},"required":["id","screen","role","label","box","enabled"],"additionalProperties":false}},"frontmostBundleId":{"type":"string","maxLength":255},"frontmostAppName":{"type":"string","maxLength":80},"frontmostWindowTitle":{"type":"string","minLength":1,"maxLength":120},"lastStepEvidence":{"type":"object","properties":{"target":{"type":"object","properties":{"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","minLength":1,"maxLength":120},"windowNumber":{"type":"integer","minimum":0,"maximum":9007199254740991},"windowFrame":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number"}},"role":{"type":"string","minLength":1,"maxLength":32},"label":{"type":"string","minLength":1,"maxLength":80}}},"targetStillThere":{"type":"boolean"},"windowStillOpen":{"type":"boolean"},"sheetInFront":{"type":"boolean"},"frontApp":{"type":"string","minLength":1,"maxLength":80},"frontWindow":{"type":"string","minLength":1,"maxLength":120}}},"system":{"type":"object","properties":{"macOS":{"type":"string","pattern":"^\\d{1,3}(\\.\\d{1,3}){0,2}$"},"uiLanguage":{"type":"string","pattern":"^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8}){0,3}$"}},"additionalProperties":false},"previousPlan":{"type":"object","properties":{"version":{"type":"number","const":2},"goal":{"default":"Not given","type":"string"},"doneWhen":{"default":"Not given","type":"string"},"feasibility":{"default":"unknown","type":"string","enum":["possible","notInThisApp","needsOtherVersion","unknown"]},"speech":{"default":"Not given","type":"string"},"path":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"default":0,"type":"integer","minimum":1,"maximum":15},"status":{"default":"predicted","type":"string","enum":["done","current","visible","predicted"]},"instruction":{"default":"Step","type":"string"},"action":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"click"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"contextClick"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"doubleClick"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"hover"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"wait"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"manual"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"scroll"},"direction":{"type":"string","enum":["up","down","left","right"]}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"drag"},"hint":{"type":"string","minLength":1,"maxLength":24}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"keys"},"combo":{"type":"string","minLength":1,"maxLength":24}},"required":["kind","combo"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"type"},"hint":{"type":"string","minLength":1,"maxLength":80},"text":{"type":"string","minLength":1,"maxLength":2000},"confirm":{"type":"string","enum":["return"]}},"required":["kind","hint"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"open"},"url":{"type":"string","maxLength":2000},"browser":{"type":"string","minLength":1,"maxLength":40}},"required":["kind","url"],"additionalProperties":false}]},{}]},"target":{"type":"object","properties":{"screen":{"default":1,"type":"number"},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string"},"callout":{"type":"string"},"role":{"type":"string"},"unsure":{"type":"boolean","const":true}}},"destination":{"type":"object","properties":{"screen":{"default":1,"type":"number"},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string"},"callout":{"type":"string"},"role":{"type":"string"},"unsure":{"type":"boolean","const":true}}},"opensAt":{"type":"object","properties":{"screen":{"default":1,"type":"number"},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string"},"callout":{"type":"string"},"role":{"type":"string"},"unsure":{"type":"boolean","const":true}}},"expectAfter":{"type":"object","properties":{"kind":{"default":"screenChanges","type":"string","enum":["menuOpened","windowAppears","valueChanged","focusChanged","selectionChanged","screenChanges"]},"detail":{"type":"string"}},"required":["kind"]},"result":{"type":"string"},"alternatives":{"type":"array","items":{}},"confidence":{"default":0.5,"type":"number"},"mark":{"default":"none","type":"string","enum":["strong","faint","none"]},"spec":{"type":"object","properties":{"role":{"type":"string","enum":["button","popup","menu","menuItem","switch","checkbox","slider","tab","row","textField","link","icon","other"]},"row":{"type":"string","minLength":1,"maxLength":80},"position":{"type":"string","enum":["leading","trailing","only","center"]},"container":{"type":"string","enum":["window","sheet","menu","popover","sidebar","toolbar","menuBar","dock","dialog"]},"action":{"type":"string","enum":["click","open","choose","toggle","type","drag","scroll"]},"option":{"type":"string","minLength":1,"maxLength":80},"expect":{"type":"string","minLength":1,"maxLength":160},"alternatives":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}}}}},"required":["id","status","action","expectAfter","mark"]}},"complete":{"default":false,"type":"boolean"},"notMarked":{"default":[],"type":"array","items":{}},"loop":{"type":"boolean"}},"required":["version","feasibility","path","complete"]},"zoom":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"scale":{"type":"number","minimum":1,"maximum":4}},"required":["screen","box","scale"],"additionalProperties":false},"followUp":{"type":"string","minLength":1,"maxLength":500},"attention":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"kind":{"type":"string","enum":["circled","pointed","underlined"]}},"required":["screen","box","kind"],"additionalProperties":false}},"lastOutcome":{"type":"object","properties":{"stepId":{"type":"integer","minimum":1,"maximum":15},"kind":{"type":"string","enum":["verified","wrong","skipped","timeout"]},"detail":{"type":"string","maxLength":160}},"required":["stepId","kind"]},"actionKinds":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":24}},"menus":{"type":"object","properties":{"items":{"maxItems":800,"type":"array","items":{}},"fullScreen":{"type":"boolean"},"truncated":{"type":"boolean"}},"required":["items"]},"doneSteps":{"minItems":1,"maxItems":12,"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":120},"label":{"type":"string","minLength":1,"maxLength":60},"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","minLength":1,"maxLength":120}},"required":["instruction"]}},"avoid":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":120},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["instruction"]}},"loopGuard":{"type":"boolean"},"confirmsTyping":{"type":"boolean"}},"required":["guideSessionId","originalGoal","round","capturedScreens","candidates"]},"captures":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","minLength":1,"maxLength":160},"image":{"type":"integer","minimum":0,"maximum":63},"context":{"type":"integer","minimum":0,"maximum":63},"marks":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":24},"box":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"integer","minimum":-20000,"maximum":20000}},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","box"]}},"earlier":{"type":"boolean"},"offsetMs":{"type":"integer","minimum":0,"maximum":600000}},"required":["image","marks"]}},"wordOffsetsMs":{"minItems":1,"maxItems":300,"type":"array","items":{"type":"integer","minimum":0,"maximum":600000}},"personal":{"type":"object","properties":{"about":{"type":"string","minLength":1,"maxLength":1400},"memories":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":400},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["text"],"additionalProperties":false}},"recall":{"type":"boolean"},"writingStyle":{"type":"string","minLength":1,"maxLength":6000}},"additionalProperties":false},"modelOverride":{"type":"string","minLength":3,"maxLength":160,"pattern":"^[a-z0-9-]+\\/[a-zA-Z0-9._:-]+$"},"answerDepth":{"type":"string","enum":["quick","deep"]},"agents":{"type":"number","const":1},"agentRun":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["requestId","model","messages","maxOutputTokens","stream"],"additionalProperties":false}}}},"responses":{"200":{"description":"Metered model call","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"model":{"type":"string"},"text":{"type":"string"},"visibleText":{"type":"string"},"stopReason":{"type":["string","null"]},"usage":{"type":"object","properties":{"inputTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"cachedInputTokens":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["inputTokens","outputTokens","cachedInputTokens"],"additionalProperties":false},"guide":{"type":"object","properties":{"version":{"type":"number","const":1},"mode":{"type":"string","enum":["answer","explanation","interactive"]},"cues":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"spokenText":{"type":"string","minLength":1,"maxLength":320},"label":{"type":"string","minLength":1,"maxLength":48},"regions":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"},"screenNumber":{"type":"integer","exclusiveMinimum":0,"maximum":16},"rect":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":1000},"y":{"type":"integer","minimum":0,"maximum":1000},"width":{"type":"integer","minimum":1,"maximum":1000},"height":{"type":"integer","minimum":1,"maximum":1000}},"required":["x","y","width","height"],"additionalProperties":false},"shape":{"type":"string","enum":["circle","ellipse","roundedRectangle"]},"emphasis":{"type":"string","enum":["primary","secondary"]}},"required":["id","screenNumber","rect","shape","emphasis"],"additionalProperties":false}},"arrows":{"maxItems":2,"type":"array","items":{"type":"object","properties":{"screenNumber":{"type":"integer","exclusiveMinimum":0,"maximum":16},"start":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":1000},"y":{"type":"integer","minimum":0,"maximum":1000}},"required":["x","y"],"additionalProperties":false},"end":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":1000},"y":{"type":"integer","minimum":0,"maximum":1000}},"required":["x","y"],"additionalProperties":false},"style":{"type":"string","enum":["straight","curved"]},"meaning":{"type":"string","enum":["flow","scroll","drag","direction"]}},"required":["screenNumber","start","end","style","meaning"],"additionalProperties":false}},"advance":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"afterSpeech"},"delayMilliseconds":{"type":"integer","minimum":0,"maximum":2000}},"required":["kind","delayMilliseconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"wait"},"delayMilliseconds":{"type":"integer","minimum":250,"maximum":5000}},"required":["kind","delayMilliseconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"awaitAction"},"action":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"leftClick"},"targetRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"}},"required":["kind","targetRegionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"contextClick"},"targetRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"}},"required":["kind","targetRegionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"doubleClick"},"targetRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"}},"required":["kind","targetRegionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"scroll"},"targetRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"}},"required":["kind","targetRegionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"hover"},"targetRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"},"dwellMilliseconds":{"type":"integer","minimum":300,"maximum":2000}},"required":["kind","targetRegionId","dwellMilliseconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"drag"},"sourceRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"},"destinationRegionId":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z][a-z0-9-]*$"}},"required":["kind","sourceRegionId","destinationRegionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"manual"},"reason":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","reason"],"additionalProperties":false}]}},"required":["kind","action"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"complete"}},"required":["kind"],"additionalProperties":false}]}},"required":["spokenText","regions","arrows","advance"],"additionalProperties":false}}},"required":["version","mode","cues"],"additionalProperties":false},"guideV2":{"type":"object","properties":{"version":{"type":"number","const":2},"goal":{"type":"string","minLength":1,"maxLength":200},"doneWhen":{"type":"string","minLength":1,"maxLength":160},"feasibility":{"type":"string","enum":["possible","notInThisApp","needsOtherVersion","unknown"]},"speech":{"type":"string","minLength":1,"maxLength":320},"path":{"minItems":1,"maxItems":15,"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":15},"status":{"type":"string","enum":["done","current","visible","predicted"]},"instruction":{"type":"string","minLength":1,"maxLength":120},"action":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"click"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"contextClick"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"doubleClick"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"hover"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"wait"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"manual"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"scroll"},"direction":{"type":"string","enum":["up","down","left","right"]}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"drag"},"hint":{"type":"string","minLength":1,"maxLength":24}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"keys"},"combo":{"type":"string","minLength":1,"maxLength":24}},"required":["kind","combo"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"type"},"hint":{"type":"string","minLength":1,"maxLength":80},"text":{"type":"string","minLength":1,"maxLength":2000},"confirm":{"type":"string","enum":["return"]}},"required":["kind","hint"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"open"},"url":{"type":"string","maxLength":2000},"browser":{"type":"string","minLength":1,"maxLength":40}},"required":["kind","url"],"additionalProperties":false}]},"target":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string","minLength":1,"maxLength":60},"callout":{"type":"string","minLength":1,"maxLength":32},"role":{"type":"string","maxLength":32},"unsure":{"type":"boolean","const":true},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991}],"items":false,"minItems":2,"maxItems":2}},"required":["screen","label"],"additionalProperties":false},"destination":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string","minLength":1,"maxLength":60},"callout":{"type":"string","minLength":1,"maxLength":32},"role":{"type":"string","maxLength":32},"unsure":{"type":"boolean","const":true},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991}],"items":false,"minItems":2,"maxItems":2}},"required":["screen","label"],"additionalProperties":false},"opensAt":{"type":"object","properties":{"screen":{"type":"integer","minimum":1,"maximum":16},"candidateId":{"type":"string","pattern":"^c\\d{1,4}$"},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"label":{"type":"string","minLength":1,"maxLength":60},"callout":{"type":"string","minLength":1,"maxLength":32},"role":{"type":"string","maxLength":32},"unsure":{"type":"boolean","const":true},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991}],"items":false,"minItems":2,"maxItems":2}},"required":["screen","label"],"additionalProperties":false},"expectAfter":{"type":"object","properties":{"kind":{"type":"string","enum":["menuOpened","windowAppears","valueChanged","focusChanged","selectionChanged","screenChanges"]},"detail":{"type":"string","maxLength":120}},"required":["kind"],"additionalProperties":false},"result":{"type":"string","maxLength":80},"alternatives":{"maxItems":2,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["keys","menu","deepLink"]},"value":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","value"],"additionalProperties":false}},"confidence":{"type":"number","minimum":0,"maximum":1},"mark":{"type":"string","enum":["strong","faint","none"]},"spec":{"type":"object","properties":{"role":{"type":"string","enum":["button","popup","menu","menuItem","switch","checkbox","slider","tab","row","textField","link","icon","other"]},"row":{"type":"string","minLength":1,"maxLength":80},"position":{"type":"string","enum":["leading","trailing","only","center"]},"container":{"type":"string","enum":["window","sheet","menu","popover","sidebar","toolbar","menuBar","dock","dialog"]},"action":{"type":"string","enum":["click","open","choose","toggle","type","drag","scroll"]},"option":{"type":"string","minLength":1,"maxLength":80},"expect":{"type":"string","minLength":1,"maxLength":160},"alternatives":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}}},"additionalProperties":false}},"required":["id","status","instruction","action","expectAfter","confidence","mark"],"additionalProperties":false}},"complete":{"type":"boolean"},"notMarked":{"maxItems":5,"type":"array","items":{"type":"string","maxLength":80}},"loop":{"type":"boolean"}},"required":["version","goal","doneWhen","feasibility","speech","path","complete","notMarked"],"additionalProperties":false}},"required":["requestId","model","text","stopReason","usage"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/messages/{requestId}/recall":{"post":{"summary":"Reply to an answer's recall of the person's memories","description":"Memory B's recall tool. While a streamed answer asked with `personal.recall` runs, the model may send a `recall` event with a query; the device that asked searches its memories and replies here with the event's `callId` and at most eight memories (none is a valid reply). `accepted` is false when nothing waits for that call: it timed out, it already ended, or it belongs to another device. Offered while the capability `memoryRecall` is true.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"callId":{"type":"string","minLength":1,"maxLength":100},"memories":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":400},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["text"],"additionalProperties":false}}},"required":["callId","memories"],"additionalProperties":false}}}},"responses":{"200":{"description":"Reply to an answer's recall of the person's memories","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/click-risk":{"post":{"summary":"Whether a control is safe to press for the person","description":"Click for me (proof of concept, HNTR-869fm8u1r): asked by the Mac before every click it makes for the person, with the control's label and role, where it sits (web content, a sheet or dialog, the default or cancel button) and a dialog's own words; never a screenshot, a field's value or a window title. `safe` lets the click go; `confirm` asks the person first with one tap in the notch. A risky word or a price in the label, web content, a dialog, a default or cancel button, or a label in another script always asks (`decidedBy: rule`); Jev may only let a click go when it is sure it is harmless (`JEV_CLICK_FOR_ME` on; shadow and off always ask). 503 unless the deployment advertises `clickForMe`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"label":{"type":"string","minLength":1,"maxLength":120},"role":{"type":"string","maxLength":40},"dialogText":{"type":"string","maxLength":300},"inWebArea":{"type":"boolean"},"inDialog":{"type":"boolean"},"defaultOrCancel":{"type":"boolean"},"goal":{"type":"string","minLength":1,"maxLength":300},"step":{"type":"string","minLength":1,"maxLength":300},"subrole":{"type":"string","maxLength":40},"app":{"type":"string","maxLength":80},"window":{"type":"string","maxLength":120}},"required":["requestId","label"],"additionalProperties":false}}}},"responses":{"200":{"description":"Whether a control is safe to press for the person","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"risk":{"type":"string","enum":["safe","confirm"]},"kind":{"type":"string","enum":["send","pay","delete","publish","permission","submit","other"]},"decidedBy":{"type":"string","enum":["jev","rule","fallback"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","risk","decidedBy","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/drive/runs":{"post":{"summary":"Start a Drive run in the app in front","description":"Drive (reference parity 13, HNTR-869fma756): Hintora does a whole task in the app in front, one checked step at a time, with Click for me's hands. Starts the run, an agent run with `kind: 'drive'` the task engine never leases. Since S2 every start carries `consent` (one without it is refused) and nothing is judged at the start: the copy decision comes with the person's Go ahead (`POST /v1/drive/runs/{runId}/consent`), so `copyFirst` here is always false. Text only: the goal and the app's name. 503 unless the deployment advertises `drive`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"goal":{"type":"string","minLength":1,"maxLength":500},"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","maxLength":160},"hasDocument":{"type":"boolean"},"origin":{"type":"string","enum":["voice","typed"]},"language":{"type":"string","enum":["en","bg"]},"timeZone":{"type":"string","minLength":1,"maxLength":64},"teachToken":{"type":"string","minLength":16,"maxLength":1000},"consent":{"type":"boolean","const":true}},"required":["requestId","goal","app","hasDocument","origin","language"],"additionalProperties":false}}}},"responses":{"200":{"description":"Start a Drive run in the app in front","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"copyFirst":{"type":"boolean"},"maxSteps":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxSeconds":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxCostMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"teach":{"type":"boolean","const":true}},"required":["runId","copyFirst","maxSteps","maxSeconds","maxCostMicros"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/drive/step":{"post":{"summary":"One step of a Drive run","description":"Drive (HNTR-869fma756): one look at the active display (a JPEG, password fields blacked out), the element table, the last steps as labels and any steer words; the screen model (`DRIVE_MODEL`) answers one action, held to the rules: an element not in the table, a point off the screenshot or a key off the allowed list is refused; a secret in typed text or a label that pays hands off; any other risky label is marked `confirm`. Steer words go through Jev `drive-steer`, the last step's check through `drive-step`, and a `done` through `drive-goal`. Neither the picture nor the table is stored or logged. A run stopped anywhere answers `stop`. 503 unless the deployment advertises `drive`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"step":{"type":"integer","minimum":1,"maximum":160},"goal":{"type":"string","minLength":1,"maxLength":500},"language":{"type":"string","enum":["en","bg"]},"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","maxLength":160},"original":{"default":"none","type":"string","enum":["copy","kept","none"]},"history":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":20},"label":{"type":"string","minLength":1,"maxLength":60},"outcome":{"type":"string","enum":["ok","unsure","refused","declined","failed","paused","answered"]},"why":{"type":"string","minLength":1,"maxLength":40}},"required":["kind","label","outcome"],"additionalProperties":false}},"screenshot":{"type":"string","minLength":100,"maxLength":1350000},"width":{"type":"integer","minimum":1,"maximum":1280},"height":{"type":"integer","minimum":1,"maximum":1280},"elements":{"maxItems":300,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^c\\d{1,4}$"},"screen":{"type":"integer","minimum":1,"maximum":16},"role":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":60},"box":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"integer","minimum":1,"maximum":9007199254740991}],"items":false,"minItems":4,"maxItems":4},"enabled":{"type":"boolean"},"container":{"type":"string","enum":["window","sheet","menu","popover","sidebar","toolbar","menuBar","dock","dialog"]},"state":{"type":"string","minLength":1,"maxLength":80},"section":{"type":"string","minLength":1,"maxLength":60}},"required":["id","screen","role","label","box","enabled"],"additionalProperties":false}},"check":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":20},"label":{"type":"string","minLength":1,"maxLength":60},"expect":{"type":"string","minLength":1,"maxLength":120},"before":{"maxItems":60,"type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"after":{"maxItems":60,"type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"changed":{"type":"boolean"}},"required":["kind","label","before","after","changed"],"additionalProperties":false},"steer":{"type":"string","minLength":1,"maxLength":300},"teach":{"type":"boolean"},"consented":{"type":"boolean","const":true},"anotherWay":{"type":"boolean","const":true}},"required":["runId","step","goal","language","app","history","screenshot","width","height","elements"],"additionalProperties":false}}}},"responses":{"200":{"description":"One step of a Drive run","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"click"},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"doubleClick"},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rightClick"},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","target"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"type"},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"text":{"type":"string","minLength":1,"maxLength":500},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","target","text"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"key"},"keys":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","keys"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"scroll"},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"direction":{"type":"string","enum":["up","down","left","right"]},"amount":{"type":"integer","minimum":1,"maximum":10},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","direction","amount"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"drag"},"from":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"to":{"type":"object","properties":{"element":{"type":"string","pattern":"^c\\d{1,4}$"},"point":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":10000},{"type":"integer","minimum":0,"maximum":10000}],"items":false,"minItems":2,"maxItems":2},"label":{"type":"string","minLength":1,"maxLength":60}},"required":["label"],"additionalProperties":false},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"menu"},"path":{"minItems":2,"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"expect":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","path"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"wait"},"seconds":{"type":"number","minimum":0.5,"maximum":3},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ask"},"question":{"type":"string","minLength":1,"maxLength":120},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","question"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"handOff"},"reason":{"type":"string","enum":["signIn","password","payment","settings","web","stuck","otherDisplay","never","yours"]},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","reason"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"done"},"result":{"type":"string","minLength":1,"maxLength":200},"savedAt":{"type":"string","minLength":1,"maxLength":300},"idea":{"type":"string","minLength":1,"maxLength":140},"say":{"type":"string","minLength":1,"maxLength":140},"phase":{"type":"string","minLength":1,"maxLength":40},"preference":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["kind","result"],"additionalProperties":false}]},"steer":{"type":"string","enum":["stop","goOn","instruction"]},"stop":{"type":"string","enum":["stoppedByYou","switchedOff","outOfBudget","ended","paused"]},"refused":{"type":"string","minLength":1,"maxLength":40},"landed":{"type":"boolean"},"goal":{"type":"string","enum":["reached","unsure"]},"costMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"teach":{"type":"boolean","const":false}},"required":["costMicros"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/drive/runs/{runId}/consent":{"post":{"summary":"Go ahead on a Drive run’s card","description":"Drive's one yes for the run (S2, HNTR-869fmhvhu): the person pressed Go ahead on the card naming the app and their words. The server records it on this Mac's own running run (`context.consentedAt`, once), for the app the run started in only, and only then asks Jev `drive-changes-original` whether to work on a copy, from the window's title sent here (read once, never kept). Every step needs that mark. 503 unless the deployment advertises `drive`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"app":{"type":"string","minLength":1,"maxLength":80},"window":{"type":"string","maxLength":160},"hasDocument":{"type":"boolean"}},"required":["app","hasDocument"],"additionalProperties":false}}}},"responses":{"200":{"description":"Go ahead on a Drive run’s card","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"copyFirst":{"type":"boolean"}},"required":["copyFirst"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/drive/runs/{runId}/finish":{"post":{"summary":"End a Drive run","description":"Drive (HNTR-869fma756): the run ends with the Mac's words — done, handed back or stopped — and the copy it made as a local output, which Undo moves to the Trash. The first end wins. 503 unless the deployment advertises `drive`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"outcome":{"type":"string","enum":["done","unsure","handedOff","stopped","failed","outOfBudget"]},"reason":{"type":"string","minLength":1,"maxLength":40},"result":{"type":"string","minLength":1,"maxLength":200},"savedAt":{"type":"string","minLength":1,"maxLength":300},"idea":{"type":"string","minLength":1,"maxLength":140},"copy":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120},"href":{"type":"string","minLength":1,"maxLength":2000}},"required":["label","href"],"additionalProperties":false}},"required":["outcome","result"],"additionalProperties":false}}}},"responses":{"200":{"description":"End a Drive run","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]}},"required":["runId","status"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/board3d":{"post":{"summary":"Build a small 3D model floating over the screen while the voice explains it","description":"3D models over the screen (reference GAPS G8, spec 19, HNTR-869fmhzm7, held out of 0.6's defaults). Asked by a Mac that reads `boards3d`, for a question the intercept already answered `route: board`. Jev (`board-3d`) decides whether depth helps; when it does not, the only event is `flat` and the Mac draws its 2D board as before. Otherwise server-sent events in the board's framing: `scene` (primitives in a unit space: no files, textures or downloads), a `beat` as each sentence closes (its focus part, pen marks and motions: explode, turn, cut, spin, move, reset), then `done` with the whole script, or `flat` (`why: failed`) when no model came within 5 s. `previous` and `pointedPart` build a follow-up from the floating model. 503 unless `BOARDS_3D=on` (held out of 0.6's defaults; the local stack sets it).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"language":{"type":"string","minLength":2,"maxLength":12},"appName":{"type":"string","maxLength":80},"screen":{"type":"object","properties":{"window":{"type":"string","maxLength":160},"elements":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^e\\d{1,4}$"},"kind":{"type":"string","minLength":1,"maxLength":32},"name":{"type":"string","maxLength":120},"state":{"type":"string","maxLength":80},"row":{"type":"string","maxLength":120},"place":{"type":"string","maxLength":40},"ordinal":{"type":"string","pattern":"^\\d{1,4} of \\d{1,4}$"}},"required":["id","kind","name","place"]}},"coverage":{"type":"object","properties":{"accessibilityLabelled":{"type":"integer","minimum":0,"maximum":1000000},"webArea":{"type":"boolean"},"canvas":{"type":"boolean"},"unnamedIcons":{"type":"integer","minimum":0,"maximum":1000000},"truncated":{"type":"boolean"}},"required":["accessibilityLabelled","webArea","canvas","unnamedIcons","truncated"]}},"required":["elements","coverage"]},"system":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":40000}},"required":["text"],"additionalProperties":false}},"messages":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"anyOf":[{"type":"string","minLength":1},{"minItems":1,"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"source":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"url"},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false}]}},"required":["type","source"],"additionalProperties":false}]}}]}},"required":["role","content"],"additionalProperties":false}},"take":{"default":0,"type":"integer","minimum":0,"maximum":5},"previous":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"script":{"type":"object","properties":{"space":{"type":"string","const":"3d"},"scene":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":60},"camera":{"type":"object","properties":{"yaw":{"type":"number","minimum":-180,"maximum":180},"pitch":{"type":"number","minimum":-60,"maximum":60}},"required":["yaw","pitch"],"additionalProperties":false},"parts":{"minItems":2,"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"kind":{"type":"string","enum":["box","cylinder","sphere","cone","torus","capsule","extrude"]},"size":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"number","minimum":0.005,"maximum":2}},"at":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"rot":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":3,"maxItems":3},"outline":{"minItems":3,"maxItems":24,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":2,"maxItems":2}},"tone":{"default":"body","type":"string","enum":["body","metal","glass","dark","accent"]},"label":{"type":"string","minLength":1,"maxLength":24},"parent":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"repeat":{"type":"object","properties":{"n":{"type":"integer","minimum":2,"maximum":24},"step":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"turn":{"type":"number","minimum":-180,"maximum":180}},"required":["n","step"],"additionalProperties":false},"tint":{"type":"string","enum":["sand","amber","rose","green","blue"]},"bands":{"type":"boolean"},"flat":{"type":"boolean"},"material":{"type":"string","enum":["matte","glossy","metal","glass","soft","banded","rock","fabric"]},"model":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,31}$"},"touches":{"maxItems":6,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"joint":{"type":"object","properties":{"kind":{"type":"string","enum":["coaxial","seated","inside"]},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["kind","to"],"additionalProperties":false}},"required":["id","kind","size","at"],"additionalProperties":false}}},"required":["title","parts"],"additionalProperties":false},"beats":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"say":{"type":"string","minLength":1,"maxLength":160},"focus":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"marks":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["ring","label","arrow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["kind","on"],"additionalProperties":false}},"do":{"default":[],"maxItems":3,"type":"array","items":{"oneOf":[{"type":"object","properties":{"do":{"type":"string","const":"explode"},"on":{"anyOf":[{"type":"string","const":"all"},{"minItems":1,"maxItems":12,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}}]},"by":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"turn"},"yaw":{"type":"number","minimum":-180,"maximum":180}},"required":["do","yaw"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"cut"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["do","on"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"spin"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"rps":{"type":"number","minimum":0,"maximum":2}},"required":["do","on","rps"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"move"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"reset"}},"required":["do"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"path"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"via":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}}},"required":["do","on","via"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"follow"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"gap":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"bob"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.3}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"squash"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.6}},"required":["do","on","by"],"additionalProperties":false}]}}},"required":["say"],"additionalProperties":false}}},"required":["space","scene","beats"],"additionalProperties":false}},"required":["question","script"],"additionalProperties":false},"pointedPart":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"motion":{"type":"number","const":1},"models":{"type":"integer","minimum":1,"maximum":999},"deep":{"type":"number","const":1}},"required":["requestId","question"],"additionalProperties":false}}}},"responses":{"200":{"description":"Build a small 3D model floating over the screen while the voice explains it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"opening"},"title":{"type":"string","minLength":1,"maxLength":60},"status":{"type":"string","enum":["checking"]}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"place"},"place":{"type":"string","enum":["board","screen"]}},"required":["type","place"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"flat"},"why":{"type":"string","enum":["gate","failed"]}},"required":["type","why"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"scene"},"scene":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":60},"camera":{"type":"object","properties":{"yaw":{"type":"number","minimum":-180,"maximum":180},"pitch":{"type":"number","minimum":-60,"maximum":60}},"required":["yaw","pitch"],"additionalProperties":false},"parts":{"minItems":2,"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"kind":{"type":"string","enum":["box","cylinder","sphere","cone","torus","capsule","extrude"]},"size":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"number","minimum":0.005,"maximum":2}},"at":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"rot":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":3,"maxItems":3},"outline":{"minItems":3,"maxItems":24,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":2,"maxItems":2}},"tone":{"default":"body","type":"string","enum":["body","metal","glass","dark","accent"]},"label":{"type":"string","minLength":1,"maxLength":24},"parent":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"repeat":{"type":"object","properties":{"n":{"type":"integer","minimum":2,"maximum":24},"step":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"turn":{"type":"number","minimum":-180,"maximum":180}},"required":["n","step"],"additionalProperties":false},"tint":{"type":"string","enum":["sand","amber","rose","green","blue"]},"bands":{"type":"boolean"},"flat":{"type":"boolean"},"material":{"type":"string","enum":["matte","glossy","metal","glass","soft","banded","rock","fabric"]},"model":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,31}$"},"touches":{"maxItems":6,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"joint":{"type":"object","properties":{"kind":{"type":"string","enum":["coaxial","seated","inside"]},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["kind","to"],"additionalProperties":false}},"required":["id","kind","size","at"],"additionalProperties":false}}},"required":["title","parts"],"additionalProperties":false}},"required":["type","scene"],"additionalProperties":false},{"type":"object","properties":{"say":{"type":"string","minLength":1,"maxLength":160},"focus":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"marks":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["ring","label","arrow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["kind","on"],"additionalProperties":false}},"do":{"default":[],"maxItems":3,"type":"array","items":{"oneOf":[{"type":"object","properties":{"do":{"type":"string","const":"explode"},"on":{"anyOf":[{"type":"string","const":"all"},{"minItems":1,"maxItems":12,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}}]},"by":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"turn"},"yaw":{"type":"number","minimum":-180,"maximum":180}},"required":["do","yaw"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"cut"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["do","on"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"spin"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"rps":{"type":"number","minimum":0,"maximum":2}},"required":["do","on","rps"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"move"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"reset"}},"required":["do"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"path"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"via":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}}},"required":["do","on","via"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"follow"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"gap":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"bob"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.3}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"squash"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.6}},"required":["do","on","by"],"additionalProperties":false}]}},"type":{"type":"string","const":"beat"},"index":{"type":"integer","minimum":0,"maximum":9}},"required":["say","type","index"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"script":{"type":"object","properties":{"space":{"type":"string","const":"3d"},"scene":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":60},"camera":{"type":"object","properties":{"yaw":{"type":"number","minimum":-180,"maximum":180},"pitch":{"type":"number","minimum":-60,"maximum":60}},"required":["yaw","pitch"],"additionalProperties":false},"parts":{"minItems":2,"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"kind":{"type":"string","enum":["box","cylinder","sphere","cone","torus","capsule","extrude"]},"size":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"number","minimum":0.005,"maximum":2}},"at":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"rot":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":3,"maxItems":3},"outline":{"minItems":3,"maxItems":24,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":2,"maxItems":2}},"tone":{"default":"body","type":"string","enum":["body","metal","glass","dark","accent"]},"label":{"type":"string","minLength":1,"maxLength":24},"parent":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"repeat":{"type":"object","properties":{"n":{"type":"integer","minimum":2,"maximum":24},"step":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3},"turn":{"type":"number","minimum":-180,"maximum":180}},"required":["n","step"],"additionalProperties":false},"tint":{"type":"string","enum":["sand","amber","rose","green","blue"]},"bands":{"type":"boolean"},"flat":{"type":"boolean"},"material":{"type":"string","enum":["matte","glossy","metal","glass","soft","banded","rock","fabric"]},"model":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,31}$"},"touches":{"maxItems":6,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"joint":{"type":"object","properties":{"kind":{"type":"string","enum":["coaxial","seated","inside"]},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["kind","to"],"additionalProperties":false}},"required":["id","kind","size","at"],"additionalProperties":false}}},"required":["title","parts"],"additionalProperties":false},"beats":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"say":{"type":"string","minLength":1,"maxLength":160},"focus":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"marks":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["ring","label","arrow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["kind","on"],"additionalProperties":false}},"do":{"default":[],"maxItems":3,"type":"array","items":{"oneOf":[{"type":"object","properties":{"do":{"type":"string","const":"explode"},"on":{"anyOf":[{"type":"string","const":"all"},{"minItems":1,"maxItems":12,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}}]},"by":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"turn"},"yaw":{"type":"number","minimum":-180,"maximum":180}},"required":["do","yaw"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"cut"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"}},"required":["do","on"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"spin"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"rps":{"type":"number","minimum":0,"maximum":2}},"required":["do","on","rps"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"move"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"reset"}},"required":["do"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"path"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"via":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1},{"type":"number","minimum":-1,"maximum":1}],"items":false,"minItems":3,"maxItems":3}}},"required":["do","on","via"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"follow"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"gap":{"type":"number","minimum":0,"maximum":1}},"required":["do","on","to"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"bob"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.3}},"required":["do","on","by"],"additionalProperties":false},{"type":"object","properties":{"do":{"type":"string","const":"squash"},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,15}$"},"by":{"type":"number","minimum":0,"maximum":0.6}},"required":["do","on","by"],"additionalProperties":false}]}}},"required":["say"],"additionalProperties":false}}},"required":["space","scene","beats"],"additionalProperties":false}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"error"},"code":{"type":"string","enum":["failed"]}},"required":["type","code"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/progress":{"post":{"summary":"A progress acknowledgement to speak while an answer takes long","description":"Returns a short line from a fixed list for the situation (a slow answer or a web search) in the language of the request. No model is asked, so it is instant, costs nothing and never states a fact.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"transcript":{"type":"string","minLength":1,"maxLength":2000},"reason":{"type":"string","enum":["slow","webSearch"]}},"required":["requestId","transcript","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"A progress acknowledgement to speak while an answer takes long","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"text":{"type":"string","minLength":1,"maxLength":48}},"required":["requestId","text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/narrate":{"post":{"summary":"One spoken sentence saying what Hintora is about to do while an answer is slow","description":"Given only the question, the route, the app in front and whether a screenshot was taken (never the screenshot), a cheap fast model writes one short sentence in the language of the question saying what Hintora is about to do. It never states a result or a place. `text` is null when the setting is off, the model was too slow or the line was unfit; the client then says its own short clip.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"route":{"type":"string","enum":["answer","card","screen","guide","action"]},"appName":{"type":"string","minLength":1,"maxLength":120},"screenshot":{"type":"boolean"}},"required":["requestId","question","route","screenshot"],"additionalProperties":false}}}},"responses":{"200":{"description":"One spoken sentence saying what Hintora is about to do while an answer is slow","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"text":{"anyOf":[{"type":"string","minLength":1,"maxLength":160},{"type":"null"}]}},"required":["requestId","text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/ack-line":{"post":{"summary":"One short spoken line naming the task a slow route is about","description":"Given only the words and the route already decided (a live lookup, opening a page, an agent’s task, a routine draft or a drive), a cheap fast model names the thing the words are about, and the route’s own verb is put in front of it: “Checking Faker’s latest results.” The model never chooses the verb, so the line promises only what the route does. `text` is null when the setting is off, the writer took longer than 600 ms or the line was unfit; the client then says nothing more.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"words":{"type":"string","minLength":1,"maxLength":2000},"kind":{"type":"string","enum":["live","open","agent","routine","drive"]},"language":{"type":"string","enum":["en","bg"]}},"required":["requestId","words","kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"One short spoken line naming the task a slow route is about","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"text":{"anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"null"}]}},"required":["requestId","text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/intercept":{"post":{"summary":"Route a question before answering it","description":"A small, fast model decides what a question needs: nothing (a stray sound heard as words), a plain answer, an answer about the screen, or a guide. Also returns the question with mis-hearings put right and the language to answer in. Never fails a question: when the model is slow or unavailable it answers with the route the question would have taken anyway. With `memories` (sent only while the capability `memoryAnswers` is true), Jev may answer `route: memory` with `memory`: one short sentence from the memory that answers a personal-fact question on its own, so the client asks no model and takes no screenshot.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"text":{"type":"string","minLength":1,"maxLength":2000},"languages":{"maxItems":8,"type":"array","items":{"type":"string","minLength":2,"maxLength":12}},"appName":{"type":"string","maxLength":80},"appBundle":{"type":"string","minLength":1,"maxLength":200},"namedApps":{"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"screenAvailable":{"type":"boolean"},"spoken":{"type":"boolean"},"language":{"type":"string","minLength":2,"maxLength":12},"marked":{"type":"boolean"},"screen":{"type":"object","properties":{"window":{"type":"string","maxLength":160},"elements":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^e\\d{1,4}$"},"kind":{"type":"string","minLength":1,"maxLength":32},"name":{"type":"string","maxLength":120},"state":{"type":"string","maxLength":80},"row":{"type":"string","maxLength":120},"place":{"type":"string","maxLength":40},"ordinal":{"type":"string","pattern":"^\\d{1,4} of \\d{1,4}$"}},"required":["id","kind","name","place"]}},"coverage":{"type":"object","properties":{"accessibilityLabelled":{"type":"integer","minimum":0,"maximum":1000000},"webArea":{"type":"boolean"},"canvas":{"type":"boolean"},"unnamedIcons":{"type":"integer","minimum":0,"maximum":1000000},"truncated":{"type":"boolean"}},"required":["accessibilityLabelled","webArea","canvas","unnamedIcons","truncated"]}},"required":["elements","coverage"]},"actions":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"offers":{"type":"number","const":1},"does":{"type":"number","const":1},"clicks":{"type":"number","const":1},"drive":{"type":"number","const":1},"captures":{"type":"integer","minimum":1,"maximum":4},"sketch":{"type":"number","const":1},"sketchFresh":{"type":"number","const":1},"board":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"memories":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^m[1-3]$"},"text":{"type":"string","minLength":1,"maxLength":240}},"required":["key","text"],"additionalProperties":false}},"earlierTalk":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^d[1-3]$"},"text":{"type":"string","minLength":1,"maxLength":1000},"ago":{"type":"string","enum":["minutes","hours","yesterday","days"]}},"required":["key","text","ago"],"additionalProperties":false}},"seenEarlier":{"type":"number","const":1},"about":{"type":"object","properties":{"version":{"type":"string","minLength":1,"maxLength":24},"build":{"type":"string","minLength":1,"maxLength":24},"channel":{"type":"string","enum":["dev","stage","prod"]},"macos":{"type":"string","minLength":1,"maxLength":24},"uiLanguage":{"type":"string","pattern":"^[a-z]{2}$"},"plan":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"session":{"type":"integer","minimum":0,"maximum":100},"week":{"type":"integer","minimum":0,"maximum":100}},"required":["name"]},"shortcuts":{"maxItems":16,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","pattern":"^[A-Za-z]{1,32}$"},"keys":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":16}}},"required":["action","keys"]}},"features":{"type":"object","properties":{"guidance":{"type":"boolean"},"dictation":{"type":"boolean"},"handsFree":{"type":"boolean"},"drawings":{"type":"boolean"},"ink":{"type":"boolean"},"memory":{"type":"boolean"},"connectors":{"type":"boolean"},"voice":{"type":"boolean"},"screen":{"type":"boolean"}}},"connected":{"maxItems":40,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"permissions":{"type":"object","properties":{"screenRecording":{"type":"boolean"},"accessibility":{"type":"boolean"},"microphone":{"type":"string","enum":["granted","denied","undetermined"]}},"required":["screenRecording","accessibility","microphone"]}},"required":["version","build","channel","macos","uiLanguage","shortcuts","features","permissions"]},"replayables":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^r[1-6]$"},"question":{"type":"string","minLength":1,"maxLength":1000},"about":{"type":"string","minLength":1,"maxLength":1000},"ago":{"type":"string","enum":["minutes","hours","yesterday","days"]}},"required":["key","question","about","ago"],"additionalProperties":false}},"thread":{"minItems":1,"maxItems":12,"type":"array","items":{"type":"object","properties":{"asked":{"type":"string","minLength":1,"maxLength":300},"route":{"type":"string","minLength":1,"maxLength":16},"answer":{"type":"string","maxLength":300},"entities":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"app":{"type":"string","maxLength":80},"secondsAgo":{"type":"integer","minimum":0,"maximum":86400}},"required":["asked","route","secondsAgo"],"additionalProperties":false}},"threadSummary":{"type":"string","minLength":1,"maxLength":1500},"ends":{"type":"number","const":1},"agents":{"type":"number","const":1},"localTools":{"type":"number","const":1},"documents":{"type":"number","const":1},"askFirst":{"type":"number","const":1},"browserAgent":{"type":"number","const":1},"pdf":{"type":"number","const":1},"reminders":{"type":"number","const":1},"threads":{"type":"number","const":1},"build":{"type":"number","const":1},"preview":{"type":"number","const":1},"assets":{"type":"number","const":1},"apps":{"type":"number","const":1},"frontPage":{"type":"number","const":1},"agentRecap":{"type":"number","const":1},"routines":{"type":"number","const":1},"timeZone":{"type":"string","minLength":1,"maxLength":64},"router":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3}]},"context":{"type":"object","properties":{"selection":{"type":"object","properties":{"preview":{"type":"string","maxLength":4000},"chars":{"type":"integer","minimum":1,"maximum":10000000},"editable":{"type":"boolean"}},"required":["preview","chars","editable"],"additionalProperties":false},"field":{"type":"object","properties":{"role":{"type":"string","minLength":1,"maxLength":32},"preview":{"type":"string","maxLength":4000},"chars":{"type":"integer","minimum":0,"maximum":10000000},"editable":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":1000000},"limitSource":{"type":"string","enum":["counter","site"]}},"required":["role","preview","chars","editable"],"additionalProperties":false},"clipboard":{"type":"object","properties":{"preview":{"type":"string","maxLength":4000},"chars":{"type":"integer","minimum":1,"maximum":10000000},"ageSec":{"type":"integer","minimum":0,"maximum":60}},"required":["preview","chars","ageSec"],"additionalProperties":false},"lastMessage":{"type":"object","properties":{"from":{"type":"string","maxLength":60},"preview":{"type":"string","maxLength":4000}},"required":["preview"],"additionalProperties":false},"ink":{"type":"object","properties":{"preview":{"type":"string","maxLength":4000},"inField":{"type":"boolean"}},"required":["preview"],"additionalProperties":false},"proposal":{"type":"object","properties":{"preview":{"type":"string","maxLength":4000},"chars":{"type":"integer","minimum":1,"maximum":10000000},"ageSec":{"type":"integer","minimum":0,"maximum":120}},"required":["preview","chars","ageSec"],"additionalProperties":false},"lastEdit":{"type":"object","properties":{"outcome":{"type":"string","enum":["failed","dismissed"]},"ageSec":{"type":"integer","minimum":0,"maximum":120},"target":{"type":"string","enum":["selection","field"]},"asked":{"type":"string","maxLength":4000}},"required":["outcome","ageSec","target","asked"],"additionalProperties":false},"thread":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"],"additionalProperties":false}},"additionalProperties":false},"guide":{"type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":300},"step":{"type":"string","minLength":1,"maxLength":300},"target":{"type":"string","minLength":1,"maxLength":120},"index":{"type":"integer","minimum":1,"maximum":20},"count":{"type":"integer","minimum":1,"maximum":20},"pausedSecondsAgo":{"type":"integer","minimum":0,"maximum":600},"stuck":{"type":"boolean"},"saidBefore":{"type":"integer","minimum":0,"maximum":20}},"required":["goal","step","index","pausedSecondsAgo"],"additionalProperties":false},"live":{"type":"number","const":1},"liveSessionId":{"type":"string","minLength":8,"maxLength":120},"liveAbout":{"type":"number","const":1},"livePictures":{"type":"number","const":1},"earlierCaptures":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":4},"asked":{"type":"string","minLength":1,"maxLength":300},"secondsAgo":{"type":"integer","minimum":0,"maximum":86400},"app":{"type":"string","minLength":1,"maxLength":80},"marked":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"required":["count","asked","secondsAgo"],"additionalProperties":false},"depth":{"type":"number","const":1},"styles":{"type":"number","const":1},"openDraft":{"type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"to":{"type":"string","maxLength":200},"subject":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":600},"ageSec":{"type":"integer","minimum":0,"maximum":120}},"required":["planId","app","action","ageSec"],"additionalProperties":false},"frontFile":{"type":"object","properties":{"path":{"type":"string","minLength":3,"maxLength":1024,"pattern":"^(?:~\\/|\\/)[^\\0]+$"},"madeByHintora":{"type":"boolean"}},"required":["path"],"additionalProperties":false},"screenImage":{"type":"object","properties":{"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["mediaType","data"],"additionalProperties":false}},"required":["requestId","text","screenAvailable","spoken"],"additionalProperties":false}}}},"responses":{"200":{"description":"Route a question before answering it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"route":{"type":"string","enum":["noise","answer","screen","guide","sketch","memory","about","board","replay"]},"question":{"type":"string","maxLength":2000},"language":{"type":"string","maxLength":12},"needsWeb":{"type":"boolean"},"screenshot":{"type":"boolean"},"decidedBy":{"type":"string","enum":["jev","model","rule","fallback"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]},"order":{"type":"object","properties":{"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["app","confidence"],"additionalProperties":false},"do":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1},"effect":{"type":"string","enum":["read","write"]},"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"inApp":{"type":"boolean","const":true}},"required":["confidence","effect"],"additionalProperties":false},"draftEdit":{"type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"confidence":{"type":"number","minimum":0,"maximum":1},"wants":{"type":"string","enum":["edit","send"]}},"required":["planId","confidence"],"additionalProperties":false},"draftAsk":{"type":"object","properties":{"planId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["planId"],"additionalProperties":false},"edit":{"type":"object","properties":{"target":{"type":"string","enum":["selection","field"]},"source":{"type":"string","enum":["referent","proposal","ink","draft","retry"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["target","confidence"],"additionalProperties":false},"result":{"type":"object","properties":{"referent":{"type":"string","enum":["ink","selection","field","proposal","clipboard","lastMessage","screen"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["referent","confidence"],"additionalProperties":false},"clarify":{"type":"object","properties":{"reason":{"type":"string","enum":["referent","nothing","words"]},"options":{"maxItems":3,"type":"array","items":{"type":"string","enum":["ink","selection","field","proposal","clipboard","lastMessage"]}},"doKind":{"type":"string","enum":["edit","result"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["reason","options","confidence"],"additionalProperties":false},"answerAbout":{"type":"object","properties":{"referent":{"type":"string","enum":["ink","selection","field","proposal","clipboard","lastMessage"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["referent","confidence"],"additionalProperties":false},"offer":{"type":"object","properties":{"app":{"type":"string","enum":["google_calendar","gmail","linear_app","slack","notion","github"]},"appName":{"type":"string","minLength":1,"maxLength":60},"action":{"anyOf":[{"type":"string","enum":["calendar.createEvent","gmail.createDraft","linear.createIssue"]},{"type":"string","enum":["slack.draftMessage","slack.sendMessage","notion.createPage","github.createIssue","calendar.createEvent","gmail.createDraft","gmail.sendEmail"]}]},"connected":{"type":"boolean"},"label":{"type":"string","minLength":1,"maxLength":60},"connectSlug":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$"},"prefill":{"type":"string","minLength":1,"maxLength":120},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["app","appName","action","connected","label","prefill","confidence"],"additionalProperties":false},"target":{"type":"object","properties":{"element":{"type":"string","pattern":"^e\\d{1,4}$"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["element","confidence"],"additionalProperties":false},"pointOut":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["confidence"],"additionalProperties":false},"memory":{"type":"object","properties":{"answer":{"type":"string","minLength":1,"maxLength":400},"used":{"type":"string","pattern":"^[md][1-3]$"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["answer","used","confidence"],"additionalProperties":false},"replay":{"type":"object","properties":{"key":{"type":"string","pattern":"^r[1-6]$"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["confidence"],"additionalProperties":false},"about":{"type":"object","properties":{"answer":{"type":"string","minLength":1,"maxLength":500},"topic":{"type":"string","enum":["version","screen","microphone","keys","other"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["answer","topic","confidence"],"additionalProperties":false},"pastTalk":{"type":"number","minimum":0,"maximum":1},"seenTalk":{"type":"number","minimum":0,"maximum":1},"followUp":{"type":"number","minimum":0,"maximum":1},"repeat":{"type":"string","enum":["same","replay"]},"end":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["confidence"],"additionalProperties":false},"agent":{"type":"object","properties":{"kind":{"type":"string","enum":["task","address","create","control","recap"]},"confidence":{"type":"number","minimum":0,"maximum":1},"agentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"control":{"type":"string","enum":["status","stop","pause","resume","steer","background"]},"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"which":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"said":{"type":"string","minLength":1,"maxLength":4000}},"required":["runId","said"],"additionalProperties":false}},"run":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","waiting","paused","waitingForMac","done","failed","stopped","expired","skipped"]},"header":{"type":"object","properties":{"agentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":40},"face":{"type":"object","properties":{"glyph":{"type":"string","minLength":1,"maxLength":8},"tint":{"type":"string","enum":["sky","lavender","mint","peach"]}},"required":["glyph","tint"],"additionalProperties":false}},"required":["agentId","name","face"],"additionalProperties":false},"continues":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"said":{"type":"string","minLength":1,"maxLength":4000}},"required":["runId","said"],"additionalProperties":false}},"required":["runId","status","header"],"additionalProperties":false},"ask":{"type":"object","properties":{"question":{"type":"string","minLength":3,"maxLength":80},"options":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":24}}},"required":["question","options"],"additionalProperties":false},"updates":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"routine":{"type":"string","enum":["pause","resume","delete"]},"threadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","confidence"],"additionalProperties":false},"guideFollowUp":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["confidence"],"additionalProperties":false},"doStep":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1},"rest":{"type":"boolean"}},"required":["confidence","rest"],"additionalProperties":false},"drive":{"type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":500},"confidence":{"type":"number","minimum":0,"maximum":1},"teach":{"type":"boolean","const":true},"teachToken":{"type":"string","minLength":16,"maxLength":1000}},"required":["goal","confidence"],"additionalProperties":false},"live":{"type":"object","properties":{"sessionId":{"type":"string","minLength":8,"maxLength":120},"kind":{"type":"string","enum":["price","rate","news","sports","other","about"]},"phrase":{"type":"string","minLength":1,"maxLength":80}},"required":["sessionId","kind","phrase"],"additionalProperties":false},"earlierCaptures":{"type":"object","properties":{"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["confidence"],"additionalProperties":false},"depth":{"type":"object","properties":{"level":{"type":"string","enum":["quick","deep"]},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["level","confidence"],"additionalProperties":false},"style":{"type":"object","properties":{"set":{"type":"string","enum":["short","detailed","showMore","talkNormal"]},"only":{"type":"boolean"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["set","only","confidence"],"additionalProperties":false}},"required":["requestId","route","question"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/live":{"post":{"summary":"Start a live answer","description":"For a question that needs a value from right now (a price, a rate, a score, the latest news): starts the quick research lane and answers `live` to follow on `…/live/{sessionId}/events`, or `skipped` (not a live question, the daily ceiling, the device limit, or the lane is off), when the question takes the usual answer path. Without `kind`, Jev decides. The intercept starts the same lane itself for a request with `live: 1`. Only while the capability `liveAnswers` is true (decisions 0081, 0082).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"kind":{"type":"string","enum":["price","rate","news","sports","other","about"]},"language":{"type":"string","minLength":2,"maxLength":12},"timeZone":{"type":"string","minLength":1,"maxLength":64},"liveAbout":{"type":"number","const":1},"livePictures":{"type":"number","const":1}},"required":["requestId","question"],"additionalProperties":false}}}},"responses":{"200":{"description":"Start a live answer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"live":{"type":"object","properties":{"sessionId":{"type":"string","minLength":8,"maxLength":120},"kind":{"type":"string","enum":["price","rate","news","sports","other","about"]},"phrase":{"type":"string","minLength":1,"maxLength":80}},"required":["sessionId","kind","phrase"],"additionalProperties":false},"skipped":{"type":"string","enum":["notLive","daily","device","off","error"]}},"required":["requestId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/live/{sessionId}/events":{"get":{"summary":"Follow a live answer","description":"Server-sent events from `Last-Event-ID` (or `?after=`), each numbered as its id and named by its type: `phase`, `source` as each site is read, then one `answer` (a checked value with its time and sources, `partial`, or `couldntConfirm`) or `failed`, then `done`. Ends after `done`, or after 20 s (reconnect). Only the person’s own session.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Follow a live answer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"phase"},"text":{"type":"string","minLength":1,"maxLength":80}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"source"},"host":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000,"format":"uri"},"state":{"type":"string","enum":["reading","read","skipped"]}},"required":["type","host","url","state"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"answer"},"answer":{"type":"object","properties":{"status":{"type":"string","enum":["answered","couldntConfirm","partial"]},"kind":{"type":"string","enum":["price","rate","news","sports","other","about"]},"subject":{"type":"string","minLength":1,"maxLength":80},"value":{"type":"number"},"display":{"type":"string","minLength":1,"maxLength":40},"unit":{"type":"string","minLength":1,"maxLength":40},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"asOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"atClose":{"type":"boolean"},"checkedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"sources":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"host":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000,"format":"uri"},"title":{"type":"string","minLength":1,"maxLength":120},"asOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"picture":{"type":"string","maxLength":1500,"format":"uri"}},"required":["host","url"],"additionalProperties":false}},"spoken":{"type":"string","minLength":1,"maxLength":200},"items":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":140},"source":{"type":"integer","minimum":0,"maximum":2}},"required":["text","source"],"additionalProperties":false}},"reason":{"type":"string","enum":["timeCap","disagree","noTime","noValue","notGrounded","unavailable"]},"summary":{"type":"string","minLength":1,"maxLength":280},"timeline":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"when":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":3,"maxLength":80},"source":{"type":"integer","minimum":0,"maximum":2}},"required":["when","text","source"],"additionalProperties":false}}},"required":["status","kind","subject","checkedAt","sources","spoken"],"additionalProperties":false}},"required":["type","answer"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"failed"},"reason":{"type":"string","enum":["timeCap","disagree","noTime","noValue","notGrounded","unavailable"]}},"required":["type","reason"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"}},"required":["type"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/live/{sessionId}/control":{"post":{"summary":"Stop a live answer, or dig deeper","description":"`stop` ends the lane: it writes nothing more and its stream ends. `deeper` stops it and starts an agent run seeded with the session’s subject and sources, answered with its `runId` (the same session always starts the same run); refused as `POST /v1/agents/runs` is while Agents are off or the plan’s runs are used up.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"type":"string","enum":["stop","deeper"]}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Stop a live answer, or dig deeper","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sessionId":{"type":"string","minLength":8,"maxLength":120},"runId":{"type":"string","minLength":1,"maxLength":120}},"required":["sessionId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/live/picture/{token}":{"get":{"summary":"A live answer’s picture","description":"A source’s own picture (`og:image`), named on a live answer’s source as `picture` for a client that declared `livePictures: 1`. The ticket lasts ten minutes and names the picture and the live session; only that session’s person gets it. Fetched by the API so the client never reaches the picture’s host: public https hosts only, at most three redirects, at most 512 KB, PNG, JPEG, WebP or GIF by its bytes (never SVG), at least 120 px a side and no wider than 4:1. Held in memory only. Not found for a bad or expired ticket, someone else’s session, or a picture not to show.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"A live answer’s picture","content":{"image/jpeg":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/sketch":{"post":{"summary":"Explain what is on the screen by drawing on it while the voice explains","description":"Asked only after the intercept answered `route: sketch`, which it says only to a client that declared `sketch: 1` while the capability `sketches` is on. Server-sent events in the framing of `/v1/ai/messages`: a `beat` (one sentence and the marks drawn with it, in pixels of the screenshot sent) as soon as each is whole and checked, then `done` with every beat, or `error` when nothing could be said. A model too slow for its first beat answers in plain words instead: beats with no marks.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"language":{"type":"string","minLength":2,"maxLength":12},"appName":{"type":"string","maxLength":80},"screenshot":{"type":"object","properties":{"source":{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},"width":{"type":"integer","minimum":1,"maximum":8192},"height":{"type":"integer","minimum":1,"maximum":8192},"screen":{"type":"integer","minimum":1,"maximum":16},"points":{"type":"object","properties":{"width":{"type":"integer","minimum":1,"maximum":16384},"height":{"type":"integer","minimum":1,"maximum":16384}},"required":["width","height"],"additionalProperties":false}},"required":["source","width","height","screen"],"additionalProperties":false},"screen":{"type":"object","properties":{"window":{"type":"string","maxLength":160},"elements":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^e\\d{1,4}$"},"kind":{"type":"string","minLength":1,"maxLength":32},"name":{"type":"string","maxLength":120},"state":{"type":"string","maxLength":80},"row":{"type":"string","maxLength":120},"place":{"type":"string","maxLength":40},"ordinal":{"type":"string","pattern":"^\\d{1,4} of \\d{1,4}$"}},"required":["id","kind","name","place"]}},"coverage":{"type":"object","properties":{"accessibilityLabelled":{"type":"integer","minimum":0,"maximum":1000000},"webArea":{"type":"boolean"},"canvas":{"type":"boolean"},"unnamedIcons":{"type":"integer","minimum":0,"maximum":1000000},"truncated":{"type":"boolean"}},"required":["accessibilityLabelled","webArea","canvas","unnamedIcons","truncated"]}},"required":["elements","coverage"]},"marks":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":24},"box":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"integer","minimum":-20000,"maximum":20000}},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","box"]}},"previous":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"beats":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9},"say":{"type":"string","minLength":1,"maxLength":220},"shapes":{"maxItems":4,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"line"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"arrow"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"bend":{"type":"number","minimum":-1,"maximum":1},"heads":{"type":"string","enum":["end","both"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"curve"},"points":{"minItems":2,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"arrowHead":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"polygon"},"points":{"minItems":3,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"highlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"spotlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"loupe"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"radius":{"type":"number","exclusiveMinimum":0},"zoom":{"type":"number","minimum":1.5,"maximum":6},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","center","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"badge"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"n":{"type":"integer","minimum":1,"maximum":9},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"check"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cross"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"callout"},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"title":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":90},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","to","title"],"additionalProperties":false}]}}},"required":["index","say","shapes"],"additionalProperties":false}}},"required":["question","beats"],"additionalProperties":false},"system":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":40000}},"required":["text"],"additionalProperties":false}},"messages":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"anyOf":[{"type":"string","minLength":1},{"minItems":1,"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"source":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"url"},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false}]}},"required":["type","source"],"additionalProperties":false}]}}]}},"required":["role","content"],"additionalProperties":false}},"callouts":{"type":"number","const":1},"spotlight":{"type":"number","const":1},"capturesElsewhere":{"type":"integer","minimum":1,"maximum":4}},"required":["requestId","question","screenshot"],"additionalProperties":false}}}},"responses":{"200":{"description":"Explain what is on the screen by drawing on it while the voice explains","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"waiting"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"beat"},"index":{"type":"integer","minimum":0,"maximum":9},"say":{"type":"string","minLength":1,"maxLength":220},"shapes":{"maxItems":4,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"line"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"arrow"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"bend":{"type":"number","minimum":-1,"maximum":1},"heads":{"type":"string","enum":["end","both"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"curve"},"points":{"minItems":2,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"arrowHead":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"polygon"},"points":{"minItems":3,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"highlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"spotlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"loupe"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"radius":{"type":"number","exclusiveMinimum":0},"zoom":{"type":"number","minimum":1.5,"maximum":6},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","center","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"badge"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"n":{"type":"integer","minimum":1,"maximum":9},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"check"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cross"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"callout"},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"title":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":90},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","to","title"],"additionalProperties":false}]}}},"required":["type","index","say","shapes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"beats":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9},"say":{"type":"string","minLength":1,"maxLength":220},"shapes":{"maxItems":4,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"line"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"arrow"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"bend":{"type":"number","minimum":-1,"maximum":1},"heads":{"type":"string","enum":["end","both"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"curve"},"points":{"minItems":2,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"arrowHead":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"polygon"},"points":{"minItems":3,"maxItems":12,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","points"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"highlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"spotlight"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"loupe"},"center":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"radius":{"type":"number","exclusiveMinimum":0},"zoom":{"type":"number","minimum":1.5,"maximum":6},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","center","radius"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"badge"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"n":{"type":"integer","minimum":1,"maximum":9},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"check"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cross"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"callout"},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"title":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":90},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","to","title"],"additionalProperties":false}]}}},"required":["index","say","shapes"],"additionalProperties":false}}},"required":["type","beats"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"error"},"message":{"type":"string","minLength":1,"maxLength":500}},"required":["type","message"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/sketch-steer":{"post":{"summary":"Say what words said over a drawing ask of it","description":"While a drawn explanation shows, says what the words the person said over it ask of it: the whole drawing again, the part it is on again, back, next, go on, pause, deeper, show me how, or a question asked as any other. Over text alone: the words, the question the drawing explains, the sentence it is on and where it is. Asked only while the capability `sketchSteer` is on, after the Mac's own rules (go on, next, stop) found nothing. Without a sure steer the answer has none and the Mac asks the words as a question, as before.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":300},"question":{"type":"string","maxLength":300},"sentence":{"type":"string","maxLength":300},"part":{"type":"integer","minimum":1,"maximum":50},"parts":{"type":"integer","minimum":1,"maximum":50},"finished":{"type":"boolean"},"paused":{"type":"boolean"},"boards":{"type":"number","const":1}},"required":["requestId","said","question","sentence","part","parts","finished","paused"],"additionalProperties":false}}}},"responses":{"200":{"description":"Say what words said over a drawing ask of it","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"steer":{"type":"string","enum":["again","thisAgain","back","next","goOn","pause","deeper","showHow","question","simpler","another"]},"decidedBy":{"type":"string","enum":["jev","fallback"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","decidedBy","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/about":{"post":{"summary":"Answer a question typed in the Hub’s search about Hintora itself","description":"The Hub’s ⌘K Ask Hintora: a typed question nothing in the Hub matched. Jev decides whether it is about Hintora (its features, shortcuts, settings, version, plan or permissions); the version, or a permission that is off, is said with no model, and anything else is one or two sentences from the Hintora guide and the facts the Mac sent. `answer` is null when it is not about Hintora, the guide cannot answer it, or `ABOUT_ANSWERS` is disabled. Asked only while the capability `aboutAnswers` is true.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":500},"language":{"type":"string","minLength":2,"maxLength":12},"about":{"type":"object","properties":{"version":{"type":"string","minLength":1,"maxLength":24},"build":{"type":"string","minLength":1,"maxLength":24},"channel":{"type":"string","enum":["dev","stage","prod"]},"macos":{"type":"string","minLength":1,"maxLength":24},"uiLanguage":{"type":"string","pattern":"^[a-z]{2}$"},"plan":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"session":{"type":"integer","minimum":0,"maximum":100},"week":{"type":"integer","minimum":0,"maximum":100}},"required":["name"]},"shortcuts":{"maxItems":16,"type":"array","items":{"type":"object","properties":{"action":{"type":"string","pattern":"^[A-Za-z]{1,32}$"},"keys":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":16}}},"required":["action","keys"]}},"features":{"type":"object","properties":{"guidance":{"type":"boolean"},"dictation":{"type":"boolean"},"handsFree":{"type":"boolean"},"drawings":{"type":"boolean"},"ink":{"type":"boolean"},"memory":{"type":"boolean"},"connectors":{"type":"boolean"},"voice":{"type":"boolean"},"screen":{"type":"boolean"}}},"connected":{"maxItems":40,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"permissions":{"type":"object","properties":{"screenRecording":{"type":"boolean"},"accessibility":{"type":"boolean"},"microphone":{"type":"string","enum":["granted","denied","undetermined"]}},"required":["screenRecording","accessibility","microphone"]}},"required":["version","build","channel","macos","uiLanguage","shortcuts","features","permissions"]}},"required":["requestId","question","about"],"additionalProperties":false}}}},"responses":{"200":{"description":"Answer a question typed in the Hub’s search about Hintora itself","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"answer":{"anyOf":[{"type":"string","minLength":1,"maxLength":600},{"type":"null"}]},"topic":{"anyOf":[{"type":"string","enum":["version","screen","microphone","keys","other"]},{"type":"null"}]}},"required":["requestId","answer","topic"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/welcome-match":{"post":{"summary":"Is this the welcome’s suggested question?","description":"The welcome’s ask try: whether what the person asked while holding fn is the question the stage suggested, in any words or language, Jev deciding. `matches` is null when nobody decided, and the Mac’s own word match decides. Asked only while the capability `welcomeMatch` is true.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"heard":{"type":"string","minLength":1,"maxLength":500},"expected":{"type":"string","minLength":1,"maxLength":300},"scene":{"type":"string","minLength":1,"maxLength":300}},"required":["requestId","heard","expected"],"additionalProperties":false}}}},"responses":{"200":{"description":"Is this the welcome’s suggested question?","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"matches":{"type":["boolean","null"]},"probability":{"type":"number","minimum":0,"maximum":1},"sceneProbability":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","matches","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/display-scope":{"post":{"summary":"Is this an order about which displays Hintora uses?","description":"Display scope (spec 11): whether what the person said or typed (\"only use this monitor\", \"ignore that monitor\", \"use all my monitors\") is such an order, Jev deciding over the words and the display count alone. `act` is absent when Jev is not sure, the words are about something else, or `JEV_DISPLAY_SCOPE` is not on: the Mac then asks the words as a question and keeps nothing. Asked only after the Mac’s own phrase rule matched, on a Mac with two displays or one ignored.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":300},"displays":{"type":"integer","minimum":1,"maximum":16}},"required":["requestId","said","displays"],"additionalProperties":false}}}},"responses":{"200":{"description":"Is this an order about which displays Hintora uses?","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"act":{"type":"string","enum":["onlyThis","ignoreThat","useAll"]},"decidedBy":{"type":"string","enum":["jev","fallback"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","decidedBy","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/open":{"post":{"summary":"Which page does \"open that article\" mean?","description":"Open by voice (reference parity 07): what the person said (\"open that article\", \"pull up her Twitter\", \"the page where I can buy it\") and up to eight pages it could mean, as titles and hosts only (sources of the last answers, links in the front browser window, the page in front); the full addresses stay on the Mac. Jev decides whether the words order a page opened and which: `candidate` names one by id, `ask` offers two or three for one \"Which one?\" (the answer comes back with `answering` and only those asked), `search` carries an address built by the server from a known search site or a source's host (a model writes only the words, which Jev checks against what was said), and `none` says why nothing opens. Answers 503 while `JEV_OPEN_THAT` is off; in shadow it asks Jev, logs and always answers `none`. Asked only while the capability `openThat` is true.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":500},"language":{"type":"string","maxLength":12},"candidates":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^c[1-8]$"},"title":{"type":"string","minLength":1,"maxLength":160},"host":{"type":"string","minLength":1,"maxLength":80},"from":{"type":"string","enum":["said","screen","page"]}},"required":["id","title","host","from"],"additionalProperties":false}},"lastAnswer":{"type":"string","maxLength":300},"namedBrowser":{"type":"string","maxLength":40},"answering":{"type":"boolean"},"asked":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^c[1-8]$"}},"exact":{"type":"boolean"}},"required":["requestId","said","candidates"],"additionalProperties":false}}}},"responses":{"200":{"description":"Which page does \"open that article\" mean?","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"action":{"type":"string","enum":["candidate","search","ask","none"]},"candidate":{"type":"string","pattern":"^c[1-8]$"},"ask":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^c[1-8]$"}},"search":{"type":"object","properties":{"site":{"type":"string","minLength":1,"maxLength":40},"url":{"type":"string","format":"uri"},"words":{"type":"string","minLength":1,"maxLength":200},"exact":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"host":{"type":"string","minLength":1,"maxLength":253},"title":{"type":"string","maxLength":160},"mark":{"type":"string","minLength":1,"maxLength":200},"signIn":{"type":"boolean"}},"required":["url","host","title","mark"],"additionalProperties":false}},"required":["site","url","words"],"additionalProperties":false},"reason":{"type":"string","enum":["notAnOrder","unsure","noPage"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","action","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/next":{"post":{"summary":"What might the person ask next?","description":"Next questions, one tap away (reference parity S3): the question and the answer it got, both text already on the Mac, and nothing else. Jev (`next-worth`) decides whether a follow-up would help or the answer is closed (\"what time is it\"); Flash Lite writes up to three questions of at most 32 characters in the answer's language beside it (Jev within 0.7 s, the words within 1.5 s; the Mac asks once the answer is in, so nothing waits on them), so `next` is empty when Jev said no, was unsure or slow, or the words came late. Answers 503 while `JEV_NEXT_WORTH` is off; in shadow it asks Jev, logs and answers none. Asked only while the capability `nextQuestions` is true.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"said":{"type":"string","minLength":1,"maxLength":2000},"answer":{"type":"string","minLength":1,"maxLength":6000}},"required":["requestId","said","answer"],"additionalProperties":false}}}},"responses":{"200":{"description":"What might the person ask next?","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"next":{"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":32}},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","next","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/guide-drift":{"post":{"summary":"Read what the person did during a guide","description":"While a guide shows a step, says whether what the person just did was progress, neutral (unrelated, the step still stands) or blocking (the step can no longer be done as shown). Asked only when the Mac cannot tell by its own rules, over text alone: the step, what was acted on, the app and window before and after. Without a sure verdict the answer has none and the Mac looks again as before.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"goal":{"type":"string","minLength":1,"maxLength":200},"step":{"type":"string","minLength":1,"maxLength":160},"target":{"type":"string","maxLength":80},"change":{"type":"string","enum":["clickAway","sceneChanged","targetGone"]},"actedOn":{"type":"string","maxLength":80},"appBefore":{"type":"string","maxLength":80},"appAfter":{"type":"string","maxLength":80},"windowBefore":{"type":"string","maxLength":120},"windowAfter":{"type":"string","maxLength":120},"targetPresent":{"type":"boolean"}},"required":["requestId","goal","step","change"],"additionalProperties":false}}}},"responses":{"200":{"description":"Read what the person did during a guide","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"verdict":{"type":"string","enum":["progress","neutral","blocking"]},"decidedBy":{"type":"string","enum":["jev","fallback"]},"confidence":{"type":"number","minimum":0,"maximum":1},"jevMode":{"type":"string","enum":["on","shadow","off"]}},"required":["requestId","decidedBy","jevMode"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/card":{"post":{"summary":"Answer a question with a card of real data","description":"For a question with a known shape — the weather somewhere (MET Norway), the time in a place, an amount in another currency (European Central Bank rates via Frankfurter), when an event, holiday or release happens (a web search read into checked calendar dates) — returns a card with real data and a short sentence to say. A small fast model only reads the place, currencies or event out of the question. No card, for any reason, is not an error: the Mac answers in words.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"language":{"type":"string","minLength":2,"maxLength":12},"region":{"type":"string","minLength":2,"maxLength":2},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["requestId","question"],"additionalProperties":false}}}},"responses":{"200":{"description":"Answer a question with a card of real data","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string"},"card":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weather"},"place":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"region":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["name","latitude","longitude","timeZone"],"additionalProperties":false},"units":{"type":"string","enum":["celsius","fahrenheit"]},"updatedAt":{"type":"string"},"now":{"type":"object","properties":{"temperature":{"type":"number"},"condition":{"type":"string","enum":["clear","partlyCloudy","cloudy","fog","drizzle","rain","heavyRain","sleet","snow","thunder"]},"isDay":{"type":"boolean"},"summary":{"type":"string","maxLength":60},"humidity":{"type":"number","minimum":0,"maximum":100},"wind":{"type":"number","minimum":0},"precipitation":{"type":"number","minimum":0}},"required":["temperature","condition","isDay","summary"],"additionalProperties":false},"hourly":{"maxItems":24,"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"temperature":{"type":"number"},"condition":{"type":"string","enum":["clear","partlyCloudy","cloudy","fog","drizzle","rain","heavyRain","sleet","snow","thunder"]},"isDay":{"type":"boolean"}},"required":["time","temperature","condition","isDay"],"additionalProperties":false}},"daily":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"low":{"type":"number"},"high":{"type":"number"},"condition":{"type":"string","enum":["clear","partlyCloudy","cloudy","fog","drizzle","rain","heavyRain","sleet","snow","thunder"]}},"required":["date","low","high","condition"],"additionalProperties":false}},"attribution":{"type":"string","maxLength":120}},"required":["kind","place","units","updatedAt","now","hourly","daily","attribution"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"place":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"region":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"timeZone":{"type":"string","minLength":1,"maxLength":64}},"required":["name","latitude","longitude","timeZone"],"additionalProperties":false},"now":{"type":"string"},"differenceMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","place","now"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"currency"},"amount":{"type":"number","exclusiveMinimum":0},"from":{"type":"string","minLength":3,"maxLength":3},"to":{"type":"string","minLength":3,"maxLength":3},"rate":{"type":"number","exclusiveMinimum":0},"result":{"type":"number"},"date":{"type":"string"},"attribution":{"type":"string","maxLength":120}},"required":["kind","amount","from","to","rate","result","date","attribution"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"dates"},"title":{"type":"string","minLength":1,"maxLength":80},"place":{"type":"string","minLength":1,"maxLength":80},"ranges":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"end":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"startTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"endTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["start","end"],"additionalProperties":false}},"note":{"type":"string","minLength":1,"maxLength":120},"source":{"type":"string","minLength":1,"maxLength":120},"today":{"type":"boolean","const":true}},"required":["kind","title","ranges"],"additionalProperties":false}]},"spoken":{"type":"string","maxLength":400}},"required":["requestId"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/voice/speech":{"post":{"summary":"Speak an answer","description":"Streams MP3 as it is generated, so playback can begin before the answer is fully voiced. The voice and model are server settings.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"text":{"type":"string","minLength":1,"maxLength":2500},"purpose":{"default":"answer","type":"string","enum":["answer","progress","practice"]},"language":{"type":"string","enum":["en","bg"]}},"required":["requestId","text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Speak an answer","content":{"audio/mpeg":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/voice/transcription":{"post":{"summary":"Transcribe a recording","description":"A `multipart/form-data` upload with the recording as `audio`, a `requestId`, and its length as `durationMs`. Recordings are limited to 4 MB.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{}}},"responses":{"200":{"description":"Transcribe a recording","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/download-requests/sign-up":{"get":{"summary":"Sign up before the Mac download","description":"hintora.ai/download’s “Download for free” (HNTR-869fmq4xc). `device` is `mac` or anything else. Starts a browser sign-up and redirects to WorkOS’s hosted AuthKit sign-up, which comes back signed in to the dashboard’s `/download/continue`. Past 30 a quarter-hour from one address, redirects to the dashboard’s own sign-up instead.","security":[],"responses":{"302":{"description":"Sign up before the Mac download"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/start/visits":{"post":{"summary":"Count a start-page visit","description":"The unlisted start page (hintora.ai/start?ref=…, decision 0113) was opened: one more visit for its ref today, as a number. Nothing is stored about the visitor. Website origin only; past 60 a quarter-hour from one network, not counted.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ref":{"type":"string","maxLength":200},"invite":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"204":{"description":"Count a start-page visit"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/start/sign-up":{"post":{"summary":"Start the start page’s sign-up","description":"A browser sign-up through WorkOS’s hosted AuthKit (Google straight to Google, email on AuthKit’s page) that comes back to the start page signed in. The attempt carries the ref and whether this person’s steps may be linked (no Global Privacy Control or Do Not Track, `linkage` not false). Website origin only.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ref":{"type":"string","maxLength":200},"method":{"type":"string","enum":["google","email"]},"linkage":{"default":true,"type":"boolean"}},"required":["method"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start the start page’s sign-up","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"authorizationUrl":{"type":"string","format":"uri"}},"required":["authorizationUrl"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/start/download-link":{"post":{"summary":"The start page’s download link","description":"For the person signed in in this browser: a link to `GET /v1/start/download` with a signed ticket naming the ref and, for a linked visit, its random id; never the account. Good for an hour. 401 without a session.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ref":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"The start page’s download link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["url","expiresIn"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/start/download":{"get":{"summary":"Download the Mac app from the start page","description":"Counts the download for its ref (`?t=` a signed ticket from the download link, counted once; or `?ref=` for a download without an account, a number only, with nothing stored or set) and redirects to this channel’s Mac installer. Never refuses: a fault, a forged or spent ticket or a busy network still gets the installer.","security":[],"responses":{"302":{"description":"Download the Mac app from the start page"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/email/unsubscribe":{"get":{"summary":"The follow-ups’ unsubscribe page","description":"`?t=` the signed token from an email’s footer (decision 0122). Shows one button and changes nothing, so a mail scanner opening the link unsubscribes nobody. 400 for a token this API didn’t sign. HTML.","security":[],"responses":{"200":{"description":"The follow-ups’ unsubscribe page"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Unsubscribe from the follow-ups","description":"`?t=` the signed token. The page’s button, or a mail app’s one-click unsubscribe (RFC 8058, body `List-Unsubscribe=One-Click`). Stops the follow-ups for the address the token names, by its hash; security, billing and support emails still go. HTML.","security":[],"responses":{"200":{"description":"Unsubscribe from the follow-ups"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/email/review":{"get":{"summary":"The follow-ups’ Trustpilot link","description":"`?t=` the signed token from a follow-up email. A page that posts itself at once and notes nothing, so a mail scanner opening the link counts as no one. HTML.","security":[],"responses":{"200":{"description":"The follow-ups’ Trustpilot link"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Open Trustpilot’s review page","description":"`?t=` as above. Keeps that the address the token names clicked, by its hash (migration 0099), so no follow-up asks again, then 303 to Trustpilot. A token this API didn’t sign goes on with nothing kept.","security":[],"responses":{"303":{"description":"Open Trustpilot’s review page"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/launch/call":{"get":{"summary":"The onboarding call’s link","description":"`?i=` an invitation’s link token, optional (decision 0122). A page that posts itself at once and notes nothing, so a mail scanner opening the link counts as no one. 404 when no booking page is set (ONBOARDING_CALL_URL). HTML.","security":[],"responses":{"200":{"description":"The onboarding call’s link"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Open the onboarding call’s booking page","description":"`?i=` as above. Notes the invitee’s first click (migration 0088), then 303 to the Google Calendar booking page. A token that isn’t an invitation’s goes on with nothing noted. 404 when no booking page is set.","security":[],"responses":{"303":{"description":"Open the onboarding call’s booking page"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/releases/mac/ticket":{"post":{"summary":"Get a build ticket for dev and stage updates","description":"Decision 0121: for staff only (a verified address on `STAFF_EMAIL_DOMAINS`, or one of `STAFF_EMAIL_ADDRESSES`: the rule Ops signs staff in by), 403 for anyone else. Answers `{ ticket, expiresAt }`, valid 12 hours on this API only, which a dev or stage Mac sends as `X-Hintora-Build-Ticket` to read its update feed and download its updates.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Get a build ticket for dev and stage updates"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/releases/mac/{channel}/appcast.xml":{"get":{"summary":"Read the dev or stage update feed","description":"Decision 0121: `channel` is `dev` or `stage`. Needs a build ticket in `X-Hintora-Build-Ticket` (401 without). The Sparkle appcast from the private staff builds repository, byte for byte, so its EdDSA signature holds. 404 before the channel has a staff build; 503 without `STAFF_BUILDS_TOKEN`.","security":[],"responses":{"200":{"description":"Read the dev or stage update feed","content":{"application/rss+xml":{}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/releases/mac/{channel}/download/{tag}/{asset}":{"get":{"summary":"Download a dev or stage archive","description":"Decision 0121: needs a build ticket in `X-Hintora-Build-Ticket` (401 without). Redirects to the short-lived signed URL GitHub gives for that archive of that channel’s release in the private staff builds repository, never a permanent one. 404 for a tag or archive the channel cannot have; 429 past 20 downloads an hour for one ticket.","security":[],"responses":{"302":{"description":"Download a dev or stage archive"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/download-requests":{"post":{"summary":"Email before the Mac download","description":"hintora.ai/download (HNTR-869fmq4xc). Takes `email`, `device` (`mac` or anything else) and optional `chip` (`apple_silicon` or `intel`) plus attribution fields. Keeps the address with the access requests (source `download:<device>`) and emails the download link, at most three a day per address. Validated by `lib/downloads/request.ts`, so no body schema is published here.","security":[],"responses":{"200":{"description":"Email before the Mac download"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/waitlist":{"post":{"summary":"Record an access request","description":"Takes `fullName`, `email` and optional `company` plus attribution fields. Rate limited per address and per email. Validated by `lib/waitlist/validation.ts` rather than a shared schema, so no body schema is published here.","security":[],"responses":{"201":{"description":"Record an access request"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"patch":{"summary":"Qualify an access request","description":"Adds the follow-up answers to a request already recorded, authorised by the `updateToken` returned when it was created.","security":[],"responses":{"200":{"description":"Qualify an access request"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/plans":{"get":{"summary":"Paid plans","description":"The plans that can be bought (Lite, Pro and Max), one entry per price: Pro first, then Lite and Max, monthly before yearly within a plan; and which provider takes payment. Lite monthly carries its introductory offer for anyone not signed in and for a signed-in person who has never paid or had a trial. With `?include=student`, each price also carries `student`: the student discount (50% off the first month) on Pro monthly for a signed-in student whose first plan it would be, null otherwise. Empty when this deployment takes no payments. Public, so the pricing page can read it.","security":[],"responses":{"200":{"description":"Paid plans","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"plans":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyTokenLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyRequestLimit":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"maxDevices":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id","name","monthlyTokenLimit","monthlyRequestLimit","maxDevices"],"additionalProperties":false},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":8},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["amount","currency","interval"],"additionalProperties":false},{"type":"null"}]},"introductory":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":8},"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["amount","currency","months"],"additionalProperties":false},{"type":"null"}]},"student":{"anyOf":[{"type":"object","properties":{"percentOff":{"type":"integer","minimum":1,"maximum":100},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":8},"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["percentOff","amount","currency","months"],"additionalProperties":false},{"type":"null"}]}},"required":["plan","price"],"additionalProperties":false}}},"required":["provider","plans"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/checkout":{"post":{"summary":"Start a checkout","description":"A checkout link for Lite, Pro or Max: Stripe Checkout, with Lite’s introductory offer or, on Pro monthly, the student discount for someone eligible, never both (Whop sells only Pro). The plan changes only when the provider’s signed webhook confirms payment.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["lite","pro","max"]},"interval":{"type":"string","enum":["month","year"]},"returnTo":{"type":"string","enum":["billing","welcome"]},"language":{"type":"string","enum":["en","bg"]},"withdrawalWaiver":{"type":"object","properties":{"version":{"type":"string","minLength":1,"maxLength":40},"accepted":{"type":"boolean","const":true}},"required":["version","accepted"],"additionalProperties":false}},"required":["plan"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start a checkout","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/invoices":{"get":{"summary":"Invoices","description":"The latest twelve finalised invoices from Stripe, newest first, with their hosted page and PDF. Empty for an account that never paid through Stripe; a Whop membership keeps its receipts on Whop.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Invoices","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"number":{"type":["string","null"]},"status":{"type":"string","enum":["paid","open","void","uncollectible"]},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"pdfUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","number","status","total","currency","createdAt","url","pdfUrl"],"additionalProperties":false}},"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]}},"required":["invoices","provider"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/manage":{"post":{"summary":"Manage the subscription","description":"The provider’s own page for payment details and cancellation.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Manage the subscription","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/summary":{"get":{"summary":"Plans and Billing: the account’s billing","description":"The card on file (brand and last four), the latest invoices and a change waiting for the renewal, read from Stripe (decision 0030, as amended on 9 Oct 2026). Offered while the capability `billingInApp` is true; 60 reads an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Plans and Billing: the account’s billing","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"type":"string","enum":["whop","stripe"]},{"type":"null"}]},"paymentMethod":{"anyOf":[{"type":"object","properties":{"brand":{"type":"string","minLength":1,"maxLength":40},"last4":{"type":"string","pattern":"^\\d{4}$"},"expMonth":{"type":"integer","minimum":1,"maximum":12},"expYear":{"type":"integer","minimum":2000,"maximum":2200}},"required":["brand","last4","expMonth","expYear"],"additionalProperties":false},{"type":"null"}]},"invoices":{"maxItems":24,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"number":{"type":["string","null"]},"status":{"type":"string","enum":["paid","open","void","uncollectible"]},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"pdfUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","number","status","total","currency","createdAt","url","pdfUrl"],"additionalProperties":false}},"scheduledChange":{"anyOf":[{"type":"object","properties":{"planId":{"type":"string","minLength":1,"maxLength":40},"planName":{"type":"string","minLength":1,"maxLength":80},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["planId","planName","interval","at"],"additionalProperties":false},{"type":"null"}]},"retriesAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"pendingChange":{"anyOf":[{"type":"object","properties":{"planId":{"type":"string","minLength":1,"maxLength":40},"planName":{"type":"string","minLength":1,"maxLength":80},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["planId","planName","interval","amount","currency","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"owed":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3},"url":{"type":"string","format":"uri"}},"required":["amount","currency","url"],"additionalProperties":false},{"type":"null"}]}},"required":["provider","paymentMethod","invoices","scheduledChange","retriesAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/preview":{"post":{"summary":"Price a plan change","description":"Stripe’s own preview of what a move to another plan or interval would charge today, held as a quote for its confirmation. Nothing is charged. Behind `billingInApp`; 30 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["free","lite","pro","max","team"]},"interval":{"type":"string","enum":["month","year"]}},"required":["plan"],"additionalProperties":false}}}},"responses":{"200":{"description":"Price a plan change","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["upgrade","downgrade","cancel","checkout","noCharge"]},"from":{"anyOf":[{"type":"object","properties":{"planId":{"type":"string","minLength":1,"maxLength":40},"planName":{"type":"string","minLength":1,"maxLength":80},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["planId","planName","interval"],"additionalProperties":false},{"type":"null"}]},"to":{"type":"object","properties":{"planId":{"type":"string","minLength":1,"maxLength":40},"planName":{"type":"string","minLength":1,"maxLength":80},"interval":{"anyOf":[{"type":"string","enum":["month","year"]},{"type":"null"}]}},"required":["planId","planName","interval"],"additionalProperties":false},"currency":{"type":"string","minLength":3,"maxLength":3},"dueToday":{"type":"integer","minimum":0,"maximum":9007199254740991},"lines":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["newPlan","unused","other"]},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"start":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"end":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["kind","amount","start","end"],"additionalProperties":false}},"next":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["amount","at"],"additionalProperties":false},{"type":"null"}]},"effectiveAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"introductory":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":8},"months":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["amount","currency","months"],"additionalProperties":false},{"type":"null"}]},"paymentMethod":{"anyOf":[{"type":"object","properties":{"brand":{"type":"string","minLength":1,"maxLength":40},"last4":{"type":"string","pattern":"^\\d{4}$"},"expMonth":{"type":"integer","minimum":1,"maximum":12},"expYear":{"type":"integer","minimum":2000,"maximum":2200}},"required":["brand","last4","expMonth","expYear"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","from","to","currency","dueToday","lines","next","effectiveAt","introductory","paymentMethod","expiresAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/change":{"post":{"summary":"Apply a quoted change","description":"Applies a held quote exactly as it was shown, by its id alone, or refuses it with nothing charged when it expired or Stripe would now charge another amount. A repeated confirmation answers the same. Behind `billingInApp`; 20 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quoteId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"language":{"type":"string","enum":["en","bg"]},"withdrawalWaiver":{"type":"object","properties":{"version":{"type":"string","minLength":1,"maxLength":40},"accepted":{"type":"boolean","const":true}},"required":["version","accepted"],"additionalProperties":false}},"required":["quoteId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Apply a quoted change","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"outcome":{"type":"string","const":"paid"},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3},"paymentMethod":{"anyOf":[{"type":"object","properties":{"brand":{"type":"string","minLength":1,"maxLength":40},"last4":{"type":"string","pattern":"^\\d{4}$"},"expMonth":{"type":"integer","minimum":1,"maximum":12},"expYear":{"type":"integer","minimum":2000,"maximum":2200}},"required":["brand","last4","expMonth","expYear"],"additionalProperties":false},{"type":"null"}]}},"required":["outcome","amount","currency","paymentMethod"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"requiresAction"},"url":{"type":"string","format":"uri"}},"required":["outcome","url"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"declined"},"reason":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]}},"required":["outcome","reason"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"scheduled"},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","at"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"checkout"},"url":{"type":"string","format":"uri"}},"required":["outcome","url"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"changed"}},"required":["outcome"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/resume":{"post":{"summary":"Keep the plan","description":"Undoes a cancellation or a move waiting for the renewal date. Nothing is charged. Behind `billingInApp`; 20 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Keep the plan"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/cancel":{"get":{"summary":"Cancel plan: what ends, and when","description":"The plan paid for, when it would end if cancelled now, whether it is already set to end, and the one retention offer when there is one to give (HNTR-869fmc9gm): a share off the next bill of a monthly plan, once per account, recorded as shown when it is. Wherever Stripe sells; 60 reads an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Cancel plan: what ends, and when","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"object","properties":{"planId":{"type":"string","minLength":1,"maxLength":40},"planName":{"type":"string","minLength":1,"maxLength":80},"interval":{"type":"string","enum":["month","year"]}},"required":["planId","planName","interval"],"additionalProperties":false},"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"cancelling":{"type":"boolean"},"offer":{"anyOf":[{"type":"object","properties":{"percentOff":{"type":"integer","minimum":1,"maximum":99},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"discountedAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["percentOff","at","amount","discountedAmount","currency"],"additionalProperties":false},{"type":"null"}]}},"required":["plan","endsAt","cancelling","offer"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Cancel the plan","description":"Cancels at the end of the period paid for: nothing is refunded or charged, and the plan is kept until then. A scheduled move is let go and a change waiting for the bank dropped. A repeat answers the same. Wherever Stripe sells; 20 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"language":{"type":"string","enum":["en","bg"]}},"required":["requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Cancel the plan","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planName":{"type":"string","minLength":1,"maxLength":80},"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["planName","endsAt"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/cancel/offer":{"post":{"summary":"Take the retention offer","description":"Puts the retention coupon on the subscription, once per account: a share off the next bill. The plan and its price stay as they are and nothing is charged now. Refused for an offer never shown, already decided or no longer fitting. 20 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"language":{"type":"string","enum":["en","bg"]}},"required":["requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Take the retention offer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"percentOff":{"type":"integer","minimum":1,"maximum":99},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"discountedAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["percentOff","at","amount","discountedAmount","currency"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/billing/payment-method":{"post":{"summary":"Change the card","description":"Stripe’s own page for a new card, coming back to the web account. The card number is only ever typed there. Behind `billingInApp`; 20 an hour per account.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Change the card","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/jobs/account-deletions":{"get":{"summary":"Finish held-up account deletions","description":"Called by Vercel Cron with `Authorization: Bearer CRON_SECRET`. Deletes the accounts whose owners asked to delete them and whose 30 days have passed, and retries the steps a provider held up (decision 0086 as amended 19 Oct 2026); nothing else is ever picked. Answers whether the run is on, how many deletions it ran and how many finished. While `DELETION_SWEEP` is off (production, until Georgi turns it on) it does nothing; accounts closed before `DELETION_SWEEP_FROM` are never picked.","security":[],"responses":{"200":{"description":"Finish held-up account deletions"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}},"post":{"summary":"Finish one older closure by hand","description":"With `Authorization: Bearer CRON_SECRET` and `{\"userId\": \"…\", \"beforeCutoff\": true}`: runs one account’s deletion past `DELETION_SWEEP_FROM` (decision 0086, \"Older closures\"). The guard still holds (19 Oct 2026): only an owner’s request whose 30 days have passed is deleted; anything else answers `waiting: not_requested` and is left as it is. Refused while `DELETION_SWEEP` is off. Answers the deletion’s progress.","security":[],"responses":{"200":{"description":"Finish one older closure by hand"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/jobs/agents":{"get":{"summary":"Run the routines that are due","description":"With `Authorization: Bearer CRON_SECRET`. reference parity 12a: each routine whose time has come starts once as a background run (a double call starts nothing new; a slot missed by hours runs once), then runs whose invocation died are carried on. In Hintora Dev the local stack calls it every 60 s; no deployment has a cron line for it yet. Nothing while `AGENT_SCHEDULES` is off. Answers counts only.","security":[],"responses":{"200":{"description":"Run the routines that are due"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/jobs/lifecycle":{"get":{"summary":"Soft-launch follow-ups","description":"Called by Vercel Cron every 15 minutes with `Authorization: Bearer CRON_SECRET` (decision 0122). Sends each invited person (and each account made since `LIFECYCLE_ACCOUNTS_SINCE`) the follow-up step due now, once, in their own morning, at most one every three days; honours opt-outs, suppressions, holds and open conversations. Nothing while `LIFECYCLE` is off; logs only in shadow. Answers counts only.","security":[],"responses":{"200":{"description":"Soft-launch follow-ups"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/jobs/upkeep":{"get":{"summary":"Daily upkeep","description":"Called by Vercel Cron with `Authorization: Bearer CRON_SECRET`. Sends again the support emails that didn’t go (5 tries per message at most) and deletes support files after 12 months and conversations 24 months after their last message (decision 0089). Answers how many, nothing else.","security":[],"responses":{"200":{"description":"Daily upkeep"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/webhooks/workos":{"post":{"summary":"WorkOS events","description":"Signed with `WorkOS-Signature`. Applies profile changes, deletes the accounts of deleted users and ends revoked sessions.","security":[],"responses":{"200":{"description":"WorkOS events"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/webhooks/resend":{"post":{"summary":"Resend delivery reports","description":"Signed by Svix (`svix-id`, `svix-timestamp`, `svix-signature`) with `RESEND_WEBHOOK_SECRET`. Keeps what happened to each email Hintora sent (sent, delivered, bounced, complained, clicked; opened only for invitations) by its kind, once per delivery, and tells PostHog of an account’s own email while `ANALYTICS` is on. Never an address, subject or link. 503 until the secret is set.","security":[],"responses":{"200":{"description":"Resend delivery reports"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/webhooks/stripe":{"post":{"summary":"Stripe events","description":"Signed with `Stripe-Signature`. Checkout, subscription and invoice events re-read the subscription from Stripe and set the plan to match it. A full refund of the current period ends the plan at once; disputes and other refunds are kept for Ops. An event whose `livemode` does not match the deployment is refused with 400. Each delivery is applied once and kept for tracing; other event types are acknowledged.","security":[],"responses":{"200":{"description":"Stripe events"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/webhooks/notify/{source}":{"post":{"summary":"Operational notices","description":"GitHub (`X-Hub-Signature-256`), Sentry (`Sentry-Hook-Signature`) or Vercel (`x-vercel-signature`). Failed deploys and nightly runs, Mac prod releases, new and regressed Sentry issues and failed Vercel production deployments are posted once to the ClickUp Notifications channel; everything else is acknowledged.","security":[],"responses":{"200":{"description":"Operational notices"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/webhooks/whop":{"post":{"summary":"Whop events","description":"Standard Webhooks signature. Membership, payment, refund and dispute events re-read the membership from Whop and set the plan to match it. Each delivery is applied once.","security":[],"responses":{"200":{"description":"Whop events"},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}},"/v1/ai/board":{"post":{"summary":"Draw a picture from scratch on a board beside the content while the voice explains","description":"Visual boards (HNTR-869fm9vwq). Asked only after the intercept answered `route: board`, which it says only to a client that declared `board: 1` while the capability `boards` is on; 503 not_configured while `BOARDS` is off. Server-sent events in the framing of `/v1/ai/sketch`: `board` once the picture is laid out (layout, title, the parts there from the start), a `beat` as each sentence closes (the parts it reveals and its pen marks), then `done` with the whole script, or `error` when nothing could be said. `level: simpler` draws at most 8 parts; `take: n` draws another picture; `previous` redraws a fresh board in place. With `ink: 1` and a `screenshot` (a Mac that declared `board: 2`, while the capability `boardInk` is on), a beat may also carry `screen`: at most 2 marks on the content it explains (ellipse, underline, rect, bracket, label, in pixels of the screenshot, each naming its words in `on`), at most 6 a board, kept in `done.script.screenBeats`. Beats with no `board` before them are the words said instead, and `done` then carries no script.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":8,"maxLength":120},"question":{"type":"string","minLength":1,"maxLength":2000},"language":{"type":"string","minLength":2,"maxLength":12},"appName":{"type":"string","maxLength":80},"screen":{"type":"object","properties":{"window":{"type":"string","maxLength":160},"elements":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^e\\d{1,4}$"},"kind":{"type":"string","minLength":1,"maxLength":32},"name":{"type":"string","maxLength":120},"state":{"type":"string","maxLength":80},"row":{"type":"string","maxLength":120},"place":{"type":"string","maxLength":40},"ordinal":{"type":"string","pattern":"^\\d{1,4} of \\d{1,4}$"}},"required":["id","kind","name","place"]}},"coverage":{"type":"object","properties":{"accessibilityLabelled":{"type":"integer","minimum":0,"maximum":1000000},"webArea":{"type":"boolean"},"canvas":{"type":"boolean"},"unnamedIcons":{"type":"integer","minimum":0,"maximum":1000000},"truncated":{"type":"boolean"}},"required":["accessibilityLabelled","webArea","canvas","unnamedIcons","truncated"]}},"required":["elements","coverage"]},"screenshot":{"type":"object","properties":{"source":{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},"width":{"type":"integer","minimum":1,"maximum":8192},"height":{"type":"integer","minimum":1,"maximum":8192},"screen":{"type":"integer","minimum":1,"maximum":16},"points":{"type":"object","properties":{"width":{"type":"integer","minimum":1,"maximum":16384},"height":{"type":"integer","minimum":1,"maximum":16384}},"required":["width","height"],"additionalProperties":false}},"required":["source","width","height","screen"],"additionalProperties":false},"system":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":40000}},"required":["text"],"additionalProperties":false}},"messages":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"anyOf":[{"type":"string","minLength":1},{"minItems":1,"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"source":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"base64"},"mediaType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":2000000}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"url"},"url":{"type":"string","format":"uri"}},"required":["type","url"],"additionalProperties":false}]}},"required":["type","source"],"additionalProperties":false}]}}]}},"required":["role","content"],"additionalProperties":false}},"level":{"default":"first","type":"string","enum":["first","simpler"]},"take":{"default":0,"type":"integer","minimum":0,"maximum":5},"previous":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"script":{"type":"object","properties":{"layout":{"type":"string","enum":["screen","sheet","doc","slide","diagram","chart","worked","timeline","steps","dates"]},"title":{"type":"string","minLength":1,"maxLength":60},"parts":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","enum":["header","title","text","field","button","image","cell","formula","total","heading","callout","point","node","bar","line","clip"]},"value":{"type":"number","minimum":-1000000,"maximum":1000000},"glyph":{"type":"string","pattern":"^[a-z][a-z0-9.]{0,39}$"},"code":{"type":"boolean","const":true},"sketch":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["d"]}},"photo":{"type":"string","minLength":2,"maxLength":48}},"required":["id","text"]}},"beats":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"say":{"type":"string","minLength":3,"maxLength":160},"show":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"}},"marks":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["box","ring","underline","arrow","tick","label","flow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":32},"token":{"type":"string","enum":["coin","dot","drop","packet","plus","minus"]},"count":{"type":"integer","minimum":1,"maximum":5}},"required":["kind","on"]}}},"required":["say","marks"]}},"screenBeats":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"beat":{"type":"integer","minimum":0,"maximum":5},"shapes":{"minItems":1,"maxItems":2,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false}]}}},"required":["beat","shapes"],"additionalProperties":false}},"figure":{"type":"object","properties":{"elements":{"minItems":1,"maxItems":18,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"path"},"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["id","kind","d"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["id","kind","at","text"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"right"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"from":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at","from","to"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"dot"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at"]}]}}},"required":["elements"],"additionalProperties":false}},"required":["layout","title","parts","beats"]}},"required":["question","script"],"additionalProperties":false},"style":{"type":"object","properties":{"talk":{"type":"string","enum":["less","normal"]},"pictures":{"type":"string","enum":["drawn","any"]}},"additionalProperties":false},"ink":{"type":"number","const":1}},"required":["requestId","question"],"additionalProperties":false}}}},"responses":{"200":{"description":"Draw a picture from scratch on a board beside the content while the voice explains","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"opening"},"title":{"type":"string","minLength":1,"maxLength":60},"say":{"type":"string","minLength":1,"maxLength":160}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"board"},"layout":{"type":"string","enum":["diagram","worked","chart","sheet","slide","doc","steps"]},"title":{"type":"string","minLength":1,"maxLength":60},"parts":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","enum":["header","title","text","field","button","image","cell","formula","total","heading","callout","point","node","bar","line","clip"]},"value":{"type":"number","minimum":-1000000,"maximum":1000000},"glyph":{"type":"string","pattern":"^[a-z][a-z0-9.]{0,39}$"},"code":{"type":"boolean","const":true},"sketch":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["d"]}},"photo":{"type":"string","minLength":2,"maxLength":48}},"required":["id","text"]}},"figure":{"type":"object","properties":{"elements":{"minItems":1,"maxItems":18,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"path"},"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["id","kind","d"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["id","kind","at","text"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"right"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"from":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at","from","to"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"dot"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at"]}]}}},"required":["elements"],"additionalProperties":false}},"required":["type","layout","title","parts"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"beat"},"index":{"type":"integer","minimum":0,"maximum":5},"say":{"type":"string","minLength":1,"maxLength":160},"show":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"}},"marks":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["box","ring","underline","arrow","tick","label","flow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":32},"token":{"type":"string","enum":["coin","dot","drop","packet","plus","minus"]},"count":{"type":"integer","minimum":1,"maximum":5}},"required":["kind","on"]}},"parts":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","enum":["header","title","text","field","button","image","cell","formula","total","heading","callout","point","node","bar","line","clip"]},"value":{"type":"number","minimum":-1000000,"maximum":1000000},"glyph":{"type":"string","pattern":"^[a-z][a-z0-9.]{0,39}$"},"code":{"type":"boolean","const":true},"sketch":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["d"]}},"photo":{"type":"string","minLength":2,"maxLength":48}},"required":["id","text"]}},"screen":{"maxItems":2,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false}]}}},"required":["type","index","say","marks"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"photo"},"part":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"url":{"type":"string","maxLength":1000,"format":"uri"},"page":{"type":"string","maxLength":1000,"format":"uri"},"credit":{"type":"string","minLength":1,"maxLength":120},"license":{"type":"string","minLength":1,"maxLength":40}},"required":["type","part","url","page","credit","license"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"done"},"script":{"type":"object","properties":{"layout":{"type":"string","enum":["screen","sheet","doc","slide","diagram","chart","worked","timeline","steps","dates"]},"title":{"type":"string","minLength":1,"maxLength":60},"parts":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":40},"role":{"type":"string","enum":["header","title","text","field","button","image","cell","formula","total","heading","callout","point","node","bar","line","clip"]},"value":{"type":"number","minimum":-1000000,"maximum":1000000},"glyph":{"type":"string","pattern":"^[a-z][a-z0-9.]{0,39}$"},"code":{"type":"boolean","const":true},"sketch":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["d"]}},"photo":{"type":"string","minLength":2,"maxLength":48}},"required":["id","text"]}},"beats":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"say":{"type":"string","minLength":3,"maxLength":160},"show":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"}},"marks":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["box","ring","underline","arrow","tick","label","flow"]},"on":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"to":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"text":{"type":"string","minLength":1,"maxLength":32},"token":{"type":"string","enum":["coin","dot","drop","packet","plus","minus"]},"count":{"type":"integer","minimum":1,"maximum":5}},"required":["kind","on"]}}},"required":["say","marks"]}},"screenBeats":{"maxItems":6,"type":"array","items":{"type":"object","properties":{"beat":{"type":"integer","minimum":0,"maximum":5},"shapes":{"minItems":1,"maxItems":2,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ellipse"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"underline"},"from":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","from","to"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rect"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"rounded":{"type":"boolean"},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"bracket"},"box":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number","exclusiveMinimum":0},{"type":"number","exclusiveMinimum":0}],"items":false,"minItems":4,"maxItems":4},"side":{"type":"string","enum":["left","right","top","bottom"]},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","box","side"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":32},"to":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2},"style":{"type":"string","enum":["solid","dashed","dotted"]},"color":{"type":"string","enum":["accent","green","red","yellow","white"]},"on":{"type":"string","minLength":1,"maxLength":80},"target":{"type":"string","pattern":"^e\\d{1,4}$"}},"required":["kind","at","text"],"additionalProperties":false}]}}},"required":["beat","shapes"],"additionalProperties":false}},"figure":{"type":"object","properties":{"elements":{"minItems":1,"maxItems":18,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"path"},"d":{"type":"string","minLength":4,"maxLength":400},"tone":{"type":"string","enum":["neutral","input","output","warn"]}},"required":["id","kind","d"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"label"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"text":{"type":"string","minLength":1,"maxLength":24}},"required":["id","kind","at","text"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"right"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"from":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2},"to":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at","from","to"]},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,11}$"},"beat":{"type":"integer","minimum":0,"maximum":5},"accent":{"type":"boolean","const":true},"kind":{"type":"string","const":"dot"},"at":{"type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":100},{"type":"integer","minimum":0,"maximum":100}],"items":false,"minItems":2,"maxItems":2}},"required":["id","kind","at"]}]}}},"required":["elements"],"additionalProperties":false}},"required":["layout","title","parts","beats"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"error"},"code":{"type":"string","enum":["failed"]}},"required":["type","code"],"additionalProperties":false}]}}}},"default":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"requestId":{"type":"string"},"limit":{"type":"string"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"minimumVersion":{"type":"string","maxLength":32}},"required":["type","title","status","requestId"],"additionalProperties":false}}}}}}}}}