{"openapi":"3.1.0","info":{"title":"DeskCafés external API","version":"1.0.0","description":"Account and venue operations with current roles. No internal administration, reservations or platform payments. User-step operations return protected DeskCafés links; they do not imply completion."},"servers":[{"url":"https://deskcafes.com/api/external/v1"}],"paths":{"/venues/search":{"post":{"operationId":"search_venues","description":"Search claimed, published venues; at most 25 venues per page. Prices are original amounts unless a display currency is selected.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"displayCurrency":{"type":"string"},"page":{"type":"integer","minimum":1,"maximum":100000},"location":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"bbox":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90},{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}]}},"required":["name","country","bbox"],"additionalProperties":false},"bbox":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90},{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}]},"zoom":{"type":"integer","minimum":0,"maximum":22},"mode":{"type":"string","enum":["map","list"]},"sort":{"type":"string","enum":["recommended","distance","quality","activity","price"]},"filters":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"cityKey":{"type":"string","pattern":"^[a-f0-9]{32}$"},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"locality":{"type":"string","minLength":1,"maxLength":120},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"maxHourlyMinor":{"type":"string","pattern":"^(0|[1-9][0-9]{0,23})$"},"minPriceMinor":{"type":"string","pattern":"^(0|[1-9][0-9]{0,59})$"},"maxPriceMinor":{"type":"string","pattern":"^(0|[1-9][0-9]{0,59})$"},"minOverall":{"type":"number","minimum":1,"maximum":10},"minWifi":{"type":"number","minimum":1,"maximum":10},"minSpace":{"type":"number","minimum":1,"maximum":10},"minCharging":{"type":"number","minimum":1,"maximum":10},"minComfort":{"type":"number","minimum":1,"maximum":10},"minLighting":{"type":"number","minimum":1,"maximum":10},"minSocial":{"type":"number","minimum":1,"maximum":10},"minCoffee":{"type":"number","minimum":1,"maximum":10},"minFood":{"type":"number","minimum":1,"maximum":10},"chargingAvailable":{"type":"boolean","const":true},"chargingTypes":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["outlets","usbA","usbC"]}},"traits":{"type":"object","properties":{"wifi":{"type":"boolean"},"outlets":{"type":"boolean"},"usbA":{"type":"boolean"},"usbC":{"type":"boolean"},"sharedTables":{"type":"boolean"},"backrestSeats":{"type":"boolean"},"airConditioning":{"type":"boolean"},"outdoorSeating":{"type":"boolean"},"toilets":{"type":"boolean"},"tableService":{"type":"boolean"},"stepFreeEntrance":{"type":"boolean"},"adaptedToilet":{"type":"boolean"},"coffee":{"type":"boolean"},"food":{"type":"boolean"},"alcohol":{"type":"boolean"},"contactless":{"type":"boolean"}},"additionalProperties":false},"policies":{"type":"object","properties":{"laptops":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["allowed","not_allowed","conditional"]}},"calls":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["allowed","not_allowed","conditional"]}},"groups":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["allowed","not_allowed","conditional"]}},"pets":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["allowed","not_allowed","conditional"]}}},"additionalProperties":false},"openNow":{"type":"boolean"},"paymentMethod":{"type":"string","enum":["cash","card","bank_transfer","mobile_payment"]},"paymentMethods":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["cash","card","bank_transfer","mobile_payment"]}}},"additionalProperties":false}},"required":["bbox","zoom","mode","sort","filters"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"list":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"map":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"page":{"type":"number"},"total":{"type":"number"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}","x-deskcafes-idempotent":true}},"/venues/{venueId}":{"get":{"operationId":"get_venue","description":"Read a published venue, current offer, public reviews and eligible aggregates. This gives no seat guarantee.","security":[],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"preferredCurrency","in":"query","required":true,"schema":{"default":null,"anyOf":[{"type":"string"},{"type":"null"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"venue":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"offer":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"aggregate":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"reviews":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/place/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/reviews":{"get":{"operationId":"get_public_reviews","description":"Read one bounded page of public venue reviews.","security":[],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"reviews":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/place/{venueId}","x-deskcafes-idempotent":true}},"/profiles/{handle}":{"get":{"operationId":"get_public_profile","description":"Read an opted-in public profile; private history remains unavailable.","security":[],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":60}},{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"profile":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"biography":{"type":"string"},"avatar":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"history":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"reviews":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/api/v1/profiles","x-deskcafes-idempotent":true}},"/me":{"get":{"operationId":"get_account","description":"Read the authenticated account's stable identifier and chosen profile.","security":[{"oauth":["deskcafes"]}],"parameters":[],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"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)$"},"profile":{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"handleChangeAvailableAt":{"type":"string"}},"required":["displayName","handle"],"additionalProperties":{}},"extras":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"accountState":{"type":"string"},"visitHistoryPublic":{"type":"boolean"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/me/identity":{"get":{"operationId":"get_profile","description":"Return the stable authenticated profile represented by verified credentials; its identity persists across refresh and reconnection.","security":[{"oauth":["deskcafes"]}],"parameters":[],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","minLength":1,"pattern":"\\S"},"name":{"type":"string"},"nickname":{"type":"string"}},"required":["id"],"additionalProperties":false}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/me/profile":{"patch":{"operationId":"update_profile","description":"Update chosen display name and handle. The existing 30-day handle-change rule still applies.","security":[{"oauth":["deskcafes"]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":240},"handle":{"type":"string","minLength":3,"maxLength":120}},"required":["displayName","handle"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"displayName":{"type":"string"},"handle":{"type":"string"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/me/biography":{"patch":{"operationId":"update_biography","description":"Update the biography using its current revision; conflicts never silently overwrite.","security":[{"oauth":["deskcafes"]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revision":{"type":"string","pattern":"^(0|[1-9][0-9]{0,18})$"},"biography":{"type":"string"}},"required":["revision","biography"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]},"biography":{"type":"string"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/me/history-privacy":{"patch":{"operationId":"update_history_privacy","description":"Set public-history visibility. Individual public reviews retain attribution.","security":[{"oauth":["deskcafes"]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"visitHistoryPublic":{"type":"boolean"}},"required":["visitHistoryPublic"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"changedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"visitHistoryPublic":{"type":"boolean"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/me/visits":{"get":{"operationId":"get_visits","description":"Read the account's active visit and one page of its history.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"activeVisit":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"history":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits","x-deskcafes-idempotent":true}},"/venues/{venueId}/quote":{"get":{"operationId":"get_visit_quote","description":"Read current price, schedule, reward and non-binding conversion before preparing a visit.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"preferredCurrency","in":"query","required":true,"schema":{"default":null,"anyOf":[{"type":"string"},{"type":"null"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"venueId":{"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)$"},"venueName":{"type":"string"},"offer":{"anyOf":[{"type":"object","properties":{"currency":{"type":"string"},"minorDigits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hourlyMinor":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]},"timeZone":{"type":"string"},"schedule":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"paymentMethods":{"type":"array","items":{"type":"string"}},"admission":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"estimate":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["currency","minorDigits","hourlyMinor","revision","timeZone","schedule","paymentMethods","admission","estimate"],"additionalProperties":{}},{"type":"null"}]},"rewardId":{"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"}]},"visit":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits/start/{venueId}","x-deskcafes-idempotent":true}},"/visit-codes/{tokenId}":{"get":{"operationId":"get_visit_code","description":"Read a previously prepared visit code's state. Codes rotate every 30 seconds and expire within 90 seconds.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"tokenId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"expiresAt":{"type":"string"},"rotateAt":{"type":"string"},"visit":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits/token/{tokenId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/visit-scans":{"post":{"operationId":"validate_visit_code","description":"Start or end a DeskCafes visit by validating the visitor's one-use code as authorized staff of that venue. This changes the visit and public activity count; closing may queue existing email or push notices and a review reminder. Reuse requestId for retries. No reservation, payment or paid status is created.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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)$"},"intent":{"type":"string","enum":["start","end"]},"code":{"type":"string","minLength":1,"maxLength":100}},"required":["requestId","intent","code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"visit":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/visits/venue/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/visits":{"get":{"operationId":"get_venue_visits","description":"Read current visits as staff or permanent history as the venue administrator; current SQL roles determine visibility.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"role":{"type":"string"},"activeVisits":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"history":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"lastProcessed":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits/venue/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/configuration":{"get":{"operationId":"get_venue_configuration","description":"Read permitted configuration, revision, immutable source and current role.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"venueId":{"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)$"},"sourceSnapshot":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"settings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"timeZone":{"type":"string"},"timezoneSource":{"type":"string"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits/settings/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/pricing":{"patch":{"operationId":"update_venue_pricing","description":"Administrator updates original rate, payment methods and commercial/admission calendars using the current revision.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revision":{"type":"string","pattern":"^(0|[1-9][0-9]{0,18})$"},"currency":{"type":"string"},"hourlyMajor":{"type":"string","maxLength":30},"paymentMethods":{"maxItems":4,"type":"array","items":{"type":"string","enum":["cash","card","bank_transfer","mobile_payment"]}},"schedule":{"type":"object","properties":{"weekly":{"minItems":7,"maxItems":7,"type":"array","items":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"commercialStart":{"type":"integer","minimum":0,"maximum":1439},"commercialEnd":{"type":"integer","minimum":1,"maximum":2879},"admissionStart":{"type":"integer","minimum":0,"maximum":2879},"admissionEnd":{"type":"integer","minimum":1,"maximum":2879}},"required":["commercialStart","commercialEnd","admissionStart","admissionEnd"],"additionalProperties":false}}},"exceptions":{"maxItems":366,"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])))$"},"openings":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"commercialStart":{"type":"integer","minimum":0,"maximum":1439},"commercialEnd":{"type":"integer","minimum":1,"maximum":2879},"admissionStart":{"type":"integer","minimum":0,"maximum":2879},"admissionEnd":{"type":"integer","minimum":1,"maximum":2879}},"required":["commercialStart","commercialEnd","admissionStart","admissionEnd"],"additionalProperties":false}}},"required":["date","openings"],"additionalProperties":false}}},"required":["weekly","exceptions"],"additionalProperties":false}},"required":["revision","currency","hourlyMajor","paymentMethods","schedule"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/visits/settings/{venueId}","x-deskcafes-idempotent":true}},"/me/venues":{"get":{"operationId":"get_my_venues","description":"Read associated venues and pending claims.","security":[{"oauth":["deskcafes"]}],"parameters":[],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"venues":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"claims":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"recoveries":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues","x-deskcafes-idempotent":true}},"/me/claims":{"get":{"operationId":"get_my_claims","description":"Read one page of the account's claims and recoveries.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"claims":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/venues/{venueId}/access":{"get":{"operationId":"get_venue_access","description":"Read current permissions for the specified venue.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"role":{"type":"string"},"sourceSnapshot":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"venueId":{"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)$"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/staff":{"get":{"operationId":"get_staff","description":"Administrator reads current staff membership.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"staff":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true},"post":{"operationId":"add_staff","description":"Administrator adds the selected registered account by username and queues the existing operational notice.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"targetAccountId":{"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)$"},"handle":{"type":"string","minLength":3,"maxLength":30},"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]}},"required":["targetAccountId","handle","locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"staffId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/staff/search":{"get":{"operationId":"search_staff","description":"Administrator finds registered accounts by public username.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"handle","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":31}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/staff/{staffId}":{"delete":{"operationId":"remove_staff","description":"Administrator removes staff membership immediately.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"staffId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"staffId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"destructive","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/review-editor":{"get":{"operationId":"get_review_eligibility","description":"Read review eligibility and current editor/revision.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"review":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"visit":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]},"photos":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/reviews/{venueId}","x-deskcafes-idempotent":true}},"/reviews":{"post":{"operationId":"save_review","description":"Publish or replace one living review after an eligible staff-closed visit; sanitized photos only.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schemaVersion":{"type":"number","const":2},"ratings":{"type":"object","properties":{"overall":{"type":"integer","minimum":1,"maximum":10},"wifi":{"type":"integer","minimum":1,"maximum":10},"space":{"type":"integer","minimum":1,"maximum":10},"charging":{"type":"integer","minimum":1,"maximum":10},"comfort":{"type":"integer","minimum":1,"maximum":10},"lighting":{"type":"integer","minimum":1,"maximum":10},"social":{"type":"integer","minimum":1,"maximum":10},"coffee":{"type":"integer","minimum":1,"maximum":10},"food":{"type":"integer","minimum":1,"maximum":10}},"required":["overall"],"additionalProperties":false},"attributes":{"default":{},"type":"object","properties":{"activity":{"type":"string","enum":["reading","studying","writing","drawing","laptop","calls","group","social","other"]}},"additionalProperties":false},"visitId":{"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)$"},"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)$"},"revision":{"type":"string","pattern":"^(0|[1-9][0-9]{0,17})$"},"body":{"type":"string"},"title":{"default":""},"photos":{"default":[],"maxItems":3,"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":["schemaVersion","ratings","attributes","visitId","requestId","revision","body","title","photos"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"reviewId":{"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)$"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/reviews/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/reviews/{reviewId}/response-editor":{"get":{"operationId":"get_response_editor","description":"Administrator reads a review-response editor and current revision.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"reviewId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"review":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"response":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/reviews/{venueId}","x-deskcafes-idempotent":true}},"/review-responses":{"post":{"operationId":"save_review_response","description":"Administrator publishes or replaces the venue's response using its revision and request ID.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewId":{"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)$"},"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)$"},"revision":{"type":"string","pattern":"^(0|[1-9][0-9]{0,17})$"},"body":{"type":"string"}},"required":["reviewId","requestId","revision","body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"responseId":{"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)$"},"reviewId":{"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)$"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/reviews/{venueId}","x-deskcafes-idempotent":true}},"/referrals/{referralId}":{"get":{"operationId":"get_referral","description":"Read an existing referral and reusable sharing link.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"referralId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"referralId":{"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)$"},"link":{"type":"string"},"url":{"type":"string"},"venue":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/referral/{referralId}","x-deskcafes-idempotent":true}},"/me/referrals":{"get":{"operationId":"get_my_referrals","description":"Read one page of the account's referrals.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"referrals":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/referrals","x-deskcafes-idempotent":true}},"/me/rewards":{"get":{"operationId":"get_rewards","description":"Read one page of the account's referral rewards.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"rewards":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/rewards","x-deskcafes-idempotent":true}},"/claims/{claimId}/referral":{"delete":{"operationId":"clear_claim_referral","description":"Remove a referral selection from an account-owned pending claim.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"claimId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"claimId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true},"post":{"operationId":"select_claim_referral","description":"Present the free-session referral obligation for deliberate acceptance.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"claimId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"referralId":{"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)$"},"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":["locale","referralId","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/reports/staff":{"post":{"operationId":"submit_staff_report","description":"Submit an immutable report to DeskCafes moderation about non-payment, session fraud or serious conduct during a closed visit you started or ended as venue staff. Requires your explicit report request, visitId, category and factual explanation. It is not a private draft or a sanction; any enforcement requires a separate human review. Reuse requestId for retries.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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)$"},"explanation":{"type":"string","minLength":1,"maxLength":1000},"kind":{"type":"string","const":"staff_user"},"visitId":{"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)$"},"category":{"type":"string","enum":["non_payment","session_fraud","serious_conduct"]}},"required":["requestId","explanation","kind","visitId","category"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"reportId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/reports/{kind}/{targetId}","x-deskcafes-idempotent":true}},"/reports/venues":{"post":{"operationId":"submit_venue_report","description":"Submit an immutable report to DeskCafes moderation about a venue you visited, using the visitId, permitted category and your factual explanation. Eligibility and duplicate limits are checked. It does not delist the venue or decide the case; enforcement requires separate human review. Reuse requestId for retries.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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)$"},"explanation":{"type":"string","minLength":1,"maxLength":1000},"kind":{"type":"string","const":"venue"},"visitId":{"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)$"},"category":{"type":"string","enum":["tariff_not_honoured","session_manipulation","materially_false_profile","serious_staff_conduct"]}},"required":["requestId","explanation","kind","visitId","category"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"reportId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/reports/{kind}/{targetId}","x-deskcafes-idempotent":true}},"/reports/content":{"post":{"operationId":"submit_content_report","description":"Submit an immutable report to DeskCafes moderation about a published review or photo. Supply its target ID, category and factual explanation; an experience report also requires your eligible visitId. It is not a private draft and does not remove content or decide the case. Any enforcement requires separate human review. Reuse requestId for retries.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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)$"},"explanation":{"type":"string","minLength":1,"maxLength":1000},"kind":{"type":"string","const":"content"},"targetKind":{"type":"string","enum":["review","photo"]},"targetId":{"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)$"},"category":{"type":"string","enum":["experience","spam","privacy","illegal"]},"visitId":{"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":["requestId","explanation","kind","targetKind","targetId","category","visitId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"reportId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/reports/{kind}/{targetId}","x-deskcafes-idempotent":true}},"/me/reports":{"get":{"operationId":"get_report_status","description":"Read only the requester's own report records, including accessible responses.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"kind","in":"query","required":true,"schema":{"type":"string","enum":["staffReports","venueReports","contentReports"]}},{"name":"after","in":"query","required":true,"schema":{"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"}]}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/visits","x-deskcafes-idempotent":true}},"/media/{assetId}":{"get":{"operationId":"get_media_status","description":"Read permitted asset processing state without exposing raw uploads or provider secrets.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"assetId":{"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)$"},"state":{"type":"string"},"preview":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true},"delete":{"operationId":"remove_photo","description":"Withdraw an account-owned or administrator-authorized photo through the existing cleanup pipeline.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"assetId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"destructive","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/venues/{venueId}/album":{"get":{"operationId":"get_venue_album","description":"Administrator reads the official album workspace and current revision.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true},"patch":{"operationId":"update_venue_album","description":"Administrator reorders up to ten sanitized official photos with revision and idempotency protection.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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)$"},"revision":{"type":"string","pattern":"^(0|[1-9][0-9]{0,18})$"},"assets":{"maxItems":10,"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":["requestId","revision","assets"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/operations/{operationId}":{"get":{"operationId":"get_operation","description":"Read a connection-owned pending operation without replaying a write.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"operationId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account/connections/operation?operationId={operationId}","x-deskcafes-idempotent":true}},"/operations/{operationId}/resume":{"post":{"operationId":"resume_operation","description":"Resume an operation after the user approves it on DeskCafes. QR secrets are returned once; retries return safe receipt metadata.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"operationId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account/connections/operation?operationId={operationId}","x-deskcafes-idempotent":true}},"/claims/{claimId}":{"get":{"operationId":"get_claim","description":"Read an account-owned claim and proof progress; source candidates are private.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"claimId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"claimId":{"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)$"},"state":{"type":"string"},"source":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"proof":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"venueId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/operations/{operationId}/visit-code":{"post":{"operationId":"rotate_visit_code","description":"Rotate a previously user-approved start/end code after 30 seconds, preserving the accepted original price revision, reward and intent. Current SQL guards reject changed quotes and ended visits; no renewed authentication or model-generated acceptance is used.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"operationId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"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":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account/connections/operation?operationId={operationId}","x-deskcafes-idempotent":true}},"/recoveries/{recoveryId}/review-request":{"post":{"operationId":"request_recovery_review","description":"Ask a DeskCafes reviewer to examine a venue administration recovery affecting you as its previous administrator. Provide that recoveryId and your reason. The service checks ownership, eligibility and current authentication, and records the request once. This is not password recovery and does not reverse or approve the venue transfer.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"recoveryId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"recoveryId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/me/notifications":{"get":{"operationId":"get_notifications","description":"Read current notification preferences. Web Push subscription requires the user's browser.","security":[{"oauth":["deskcafes"]}],"parameters":[],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"subscribed":{"type":"boolean"},"enabled":{"type":"boolean"},"subscriptions":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true},"delete":{"operationId":"disable_notifications","description":"Disable account Web Push delivery using the same preference service.","security":[{"oauth":["deskcafes"]}],"parameters":[],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"subscribed":{"type":"boolean"},"enabled":{"type":"boolean"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true},"post":{"operationId":"manage_notifications","description":"Manage preferences and grant Web Push permission in a compatible browser.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/media/uploads/{requestId}":{"get":{"operationId":"get_upload_receipt","description":"Read an account-owned upload request's processing receipt.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"requestId","in":"path","required":true,"schema":{"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":"venueId","in":"query","required":true,"schema":{"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"}]}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"assetId":{"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)$"},"state":{"type":"string"},"preview":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/venues/{venueId}/photos":{"get":{"operationId":"get_public_album","description":"Read the bounded public album of a published venue.","security":[],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"next":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"read","x-deskcafes-web-surface":"/{locale}/place/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/profile":{"patch":{"operationId":"update_venue_profile","description":"Edit ordinary venue description and contacts, preserving the existing staffed-public declaration; creating that declaration needs a protected user step.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":{"type":"string"},"contacts":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","pattern":"^\\+[1-9][0-9]{1,14}$"},"website":{"type":"string","maxLength":2048,"format":"uri"},"whatsapp":{"type":"string","pattern":"^\\+[1-9][0-9]{1,14}$"},"socials":{"maxItems":6,"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}}},"additionalProperties":false}},"required":["revision","description","contacts"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true},"post":{"operationId":"configure_venue","description":"Present a venue configuration and staffed-public declaration for deliberate user approval.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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)$"},"configuration":{"type":"object","properties":{"venueId":{"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)$"},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":{"type":"string"},"contacts":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","pattern":"^\\+[1-9][0-9]{1,14}$"},"website":{"type":"string","maxLength":2048,"format":"uri"},"whatsapp":{"type":"string","pattern":"^\\+[1-9][0-9]{1,14}$"},"socials":{"maxItems":6,"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}}},"additionalProperties":false},"staffedPublicConfirmed":{"type":"boolean"}},"required":["venueId","revision","description","contacts","staffedPublicConfirmed"],"additionalProperties":false}},"required":["locale","requestId","configuration"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/visit-codes":{"post":{"operationId":"prepare_visit","description":"Prepare a start/end code after deliberate acceptance of the original rate on DeskCafes. Resume the returned operation after approval; staff must still validate the code.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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)$"},"venueId":{"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)$"},"intent":{"type":"string","enum":["start","end"]},"activeVisitId":{"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"}]},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]{0,18})$"},{"type":"null"}]},"rewardId":{"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"}]},"preferredCurrency":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["locale","requestId","venueId","intent","activeVisitId","revision","rewardId","preferredCurrency"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/visits/start/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/characteristics":{"patch":{"operationId":"update_venue_characteristics","description":"Replace owner-declared resources and usage policies with revision validation. Published venues require all current answers; partial drafts remain unpublished. Reviews never alter these declarations.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"characteristics":{"type":"object","properties":{"traits":{"type":"object","properties":{"wifi":{"type":"boolean"},"outlets":{"type":"boolean"},"usbA":{"type":"boolean"},"usbC":{"type":"boolean"},"sharedTables":{"type":"boolean"},"backrestSeats":{"type":"boolean"},"airConditioning":{"type":"boolean"},"outdoorSeating":{"type":"boolean"},"toilets":{"type":"boolean"},"tableService":{"type":"boolean"},"stepFreeEntrance":{"type":"boolean"},"adaptedToilet":{"type":"boolean"},"coffee":{"type":"boolean"},"food":{"type":"boolean"},"alcohol":{"type":"boolean"},"contactless":{"type":"boolean"}},"additionalProperties":false},"policies":{"type":"object","properties":{"laptops":{"type":"object","properties":{"state":{"type":"string","enum":["allowed","not_allowed","conditional"]},"conditions":{"default":"","type":"string"}},"required":["state","conditions"],"additionalProperties":false},"calls":{"type":"object","properties":{"state":{"type":"string","enum":["allowed","not_allowed","conditional"]},"conditions":{"default":"","type":"string"}},"required":["state","conditions"],"additionalProperties":false},"groups":{"type":"object","properties":{"state":{"type":"string","enum":["allowed","not_allowed","conditional"]},"conditions":{"default":"","type":"string"}},"required":["state","conditions"],"additionalProperties":false},"pets":{"type":"object","properties":{"state":{"type":"string","enum":["allowed","not_allowed","conditional"]},"conditions":{"default":"","type":"string"}},"required":["state","conditions"],"additionalProperties":false}},"additionalProperties":false}},"required":["traits","policies"],"additionalProperties":false}},"required":["revision","characteristics"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"revision":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},{"type":"integer","minimum":0,"maximum":9007199254740991}]},"characteristics":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"complete":{"type":"boolean"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/venues/{venueId}/publication":{"post":{"operationId":"publish_venue","description":"Request deliberate publication of a verified, configured venue.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/media/upload-authorizations":{"post":{"operationId":"authorize_photo_upload","description":"Authorize a bounded original-byte upload for an account avatar, review or official album. Use the returned two-minute header capability with the exact upload URL; URL fetching is unsupported.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"venueId":{"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"}]},"purpose":{"type":"string","enum":["official","review","avatar","header"]},"visitId":{"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"}]},"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":["venueId","purpose","visitId","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"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)$"},"venueId":{"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"}]},"uploadUrl":{"type":"string","format":"uri"},"uploadAuthorization":{"type":"string"},"expiresIn":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"authorizationHeader":{"type":"string","const":"X-DeskCafes-Upload"},"maxBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/claims/lookup":{"post":{"operationId":"lookup_overture","description":"Open the protected DeskCafes venue search when you want to claim a venue, refer one or recover its administration. Choose purpose claim, referral or recovery. Returns a user_action_required link and operationId; the user completes CAPTCHA and the bounded search on DeskCafes. Candidate results are private, not the published venue catalogue. Existing search quotas apply.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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)$"},"purpose":{"type":"string","enum":["claim","referral","recovery"]}},"required":["locale","requestId","purpose"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/claims/selections":{"post":{"operationId":"select_overture","description":"Select a venue candidate returned by your completed private DeskCafes search to create or reuse a claim, administration recovery or referral link. Supply the exact sealed receipt and matching purpose from that search; receipts are bound to your account and session. Selection does not establish ownership, publish the venue or bypass control verification.","security":[{"oauth":["deskcafes"]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"receipt":{"type":"string","minLength":1,"maxLength":32768},"purpose":{"type":"string","enum":["claim","referral","recovery"]}},"required":["locale","receipt","purpose"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"claimId":{"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)$"},"referralId":{"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)$"},"recoveryId":{"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"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/claims/{claimId}/domain-proofs":{"post":{"operationId":"begin_domain_proof","description":"Prepare DNS or HTTPS control proof from the claim's verified official contact; no arbitrary network target is accepted.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"claimId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"method":{"type":"string","enum":["dns","https"]},"contactIndex":{"type":"integer","minimum":0,"maximum":19}},"required":["method","contactIndex"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"proofId":{"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)$"},"claimId":{"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)$"},"expiresAt":{"type":"string"},"dns":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"https":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":false}},"/proofs/{proofId}/check":{"post":{"operationId":"check_domain_proof","description":"Check a prepared DNS/HTTPS control proof with current account, owner, nonce, provider bounds and SQL revalidation.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"proofId","in":"path","required":true,"schema":{"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)$"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"proofId":{"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)$"},"claimId":{"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)$"},"venueId":{"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":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"write","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/auth/start":{"post":{"operationId":"start_sign_in","description":"Start account login, registration or email recovery in a protected DeskCafes surface.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]}},"required":["locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/sign-in","x-deskcafes-idempotent":true}},"/me/onboarding":{"post":{"operationId":"complete_onboarding","description":"Complete chosen identity, adult declaration, Terms and mobile verification in DeskCafes.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/onboarding","x-deskcafes-idempotent":true}},"/me/password":{"post":{"operationId":"manage_password","description":"Change or recover a password directly in DeskCafes; never send passwords to this tool.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account/password","x-deskcafes-idempotent":true}},"/me/phone":{"post":{"operationId":"manage_phone","description":"Verify or replace the phone directly in DeskCafes; SMS requests remain deliberate.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account/phone/replace","x-deskcafes-idempotent":true}},"/me/google":{"post":{"operationId":"manage_google","description":"Manage Google access directly in DeskCafes, retaining fresh email and password proof before unlink.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account/security/google","x-deskcafes-idempotent":true}},"/me/totp":{"post":{"operationId":"manage_totp","description":"Manage optional login TOTP in DeskCafes. Never send authentication codes, setup seeds or recovery codes to an agent.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account/security/totp","x-deskcafes-idempotent":true}},"/me/export":{"post":{"operationId":"export_account","description":"Request the existing protected account export including integrations.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/visits","x-deskcafes-idempotent":true}},"/me/deletion":{"post":{"operationId":"delete_account","description":"Open the deliberate protected account deletion with real recent authentication.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account/delete","x-deskcafes-idempotent":true}},"/reconsiderations":{"post":{"operationId":"request_reconsideration","description":"Open the DeskCafes appeal form when you want review of a moderation decision about your account, venue or content. Returns a protected URL, not a submitted appeal. Enter the decision ID, reason and email verification directly on DeskCafes and complete its CAPTCHA; never send email codes to the agent. Eligibility is checked there, and opening the form does not reverse the decision.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]}},"required":["locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/reconsideration","x-deskcafes-idempotent":true}},"/illegal-notices":{"post":{"operationId":"submit_illegal_notice","description":"Submit a deliberate public illegal-content notice with the existing CAPTCHA and good-faith declaration.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]}},"required":["locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/illegal-content","x-deskcafes-idempotent":true}},"/venues/{venueId}/deletion":{"post":{"operationId":"delete_venue","description":"Delete a venue with deliberate confirmation and actual recent authentication.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"venueId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/manage/{venueId}","x-deskcafes-idempotent":true}},"/claims/{claimId}/proof":{"post":{"operationId":"manage_control_proof","description":"Complete email/SMS/voice/domain control proof. Codes and paid sends are handled directly in DeskCafes.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"claimId","in":"path","required":true,"schema":{"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":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/venues/claims","x-deskcafes-idempotent":true}},"/media/uploads":{"post":{"operationId":"upload_photo","description":"Upload original image bytes directly to the existing sanitizer; arbitrary remote URLs are never fetched.","security":[{"oauth":["deskcafes"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","format":"uuid","description":"Reuse the request ID for retries; a conflicting body requestId fails."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"default":"en","type":"string","enum":["en","es","fr","de","pt","it","zh-CN","ja","ko","ar"]},"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":["locale","requestId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Domain result","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"operationId":{"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)$"},"operation":{"type":"string"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"destination":{"type":"string"},"expiresAt":{"type":"string"},"result":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["status"],"additionalProperties":{}}}}},"202":{"description":"Protected user action required"},"400":{"description":"Invalid input"},"401":{"description":"OAuth required"},"403":{"description":"Current account, connection or role does not permit this operation"},"404":{"description":"Unavailable resource or disabled domain"},"409":{"description":"Revision or idempotency conflict"},"410":{"description":"Operation expired"},"413":{"description":"Input or result exceeds the documented bound"},"429":{"description":"Quota exhausted"},"503":{"description":"Temporary service failure"}},"x-deskcafes-effect":"user_step","x-deskcafes-web-surface":"/{locale}/account","x-deskcafes-idempotent":true}},"/media/uploads/{requestId}/bytes":{"post":{"operationId":"upload_original_photo","description":"Send original image bytes using the exact two-minute upload authorization issued by authorize_photo_upload. Current connection and domain permissions are revalidated; URLs are never downloaded.","security":[{"uploadCapability":[]}],"parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Processing receipt"},"400":{"description":"Invalid or expired upload capability"},"403":{"description":"Connection revoked"}}}}},"components":{"securitySchemes":{"uploadCapability":{"type":"apiKey","in":"header","name":"X-DeskCafes-Upload"},"oauth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://deskcafes.com/api/external/oauth/oauth2/authorize","tokenUrl":"https://deskcafes.com/api/external/oauth/oauth2/token","scopes":{"deskcafes":"Operations available to the account's current roles","offline_access":"Refresh without a new login"}}}}}}}