{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/revoked_api_key",
"title": "La clave fue revocada",
"status": 401,
"code": "revoked_api_key",
"detail": "Crea una clave nueva en Configuración → Integraciones.",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc"
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/sandbox_unavailable",
"title": "Tu estudio de prueba no está listo",
"status": 409,
"code": "sandbox_unavailable",
"detail": "Restablece tus datos de prueba en Configuración → Integraciones y vuelve a intentar.",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc"
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
bookings
Ver una reserva
Una reserva del estudio.
Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no
declara responde validation_failed con unknown_parameter.
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/revoked_api_key",
"title": "La clave fue revocada",
"status": 401,
"code": "revoked_api_key",
"detail": "Crea una clave nueva en Configuración → Integraciones.",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc"
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/sandbox_unavailable",
"title": "Tu estudio de prueba no está listo",
"status": 409,
"code": "sandbox_unavailable",
"detail": "Restablece tus datos de prueba en Configuración → Integraciones y vuelve a intentar.",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc"
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
{
"type": "https://docs.craqui.com/errors/invalid_api_key",
"title": "La clave no es válida",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_01hzx8m4k2a7d9q3f5w6y8z0bc",
"detail": "Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).",
"doc_url": "<string>",
"required_scope": "business:read",
"errors": [
{
"field": "session_id",
"code": "invalid_prefix",
"detail": "<string>"
}
]
}
Clave del negocio. sk es una clave completa (todo lo que el rol de quien la creó puede dar)
y rk una restringida a los permisos que se eligieron al crearla. Solo se usa desde un
servidor: un pedido desde un navegador se rechaza con browser_not_allowed.
client (pide clients:read) y session (pide sessions:read), uno por parámetro. Un
client expandido sigue la misma regla de contacto que GET /v1/clients/{id}.
Available options:
client,
session
Response
OK.
La reserva de un cliente en una sesión.
Volver a reservar una sesión que el cliente había cancelado reusa el mismo bkg_: el id es
uno por cliente y sesión, no uno por intento. booked_at es el del último intento.
Hasta cuándo cancelar devuelve el crédito, con el plazo de la clase, de su disciplina o del
estudio, y la regla de la lista de espera. Es una predicción: lo decide Craqui al cancelar.
null si la reserva no está confirmed ni waitlisted, o si la sesión ya empezó.
De dónde salió la reserva: api, recurring (una reserva fija), aggregator (una plataforma
de terceros) o craqui (el estudio o el cliente en Craqui). La lista puede crecer.
Solo con expand[]=session (pide sessions:read). null si session_id es null.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"API de Craqui","colors":{"primary":"#1F33C7","light":"#8E9CFF","dark":"#1F33C7"},"logo":{"light":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/light.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=e96edbf5621b5bc4068b5ad8dee910c7","dark":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/dark.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=119f3ccfb48eb398b9a41837114157f1","href":"https://docs.craqui.com"},"favicon":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/favicon.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=9b21e70461f095f51069e525e11ed743","api":{"playground":{"display":"interactive"}},"footer":{"socials":{"website":"https://craqui.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"craqui","hasAudioNarration":false,"actualSubdomain":"craqui","customDomains":["docs.craqui.com"],"gitSource":{"type":"github","owner":"javicraqui-build","repo":"craqui-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aee011a2f669b27f0303a49"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0841bb68e7eacbb742af6","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Guías","count":35},{"language":"default","tag":"Referencia","count":32},{"language":"default","tag":"Errores","count":23},{"language":"default","tag":"Conceptos","count":7},{"language":"default","tag":"Empezar","count":4},{"language":"default","tag":"credits","count":3},{"language":"default","tag":"memberships","count":3},{"language":"default","tag":"sessions","count":3},{"language":"default","tag":"bookings","count":2},{"language":"default","tag":"centers","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/bookings/ver-una-reserva","slug":"/api-reference/bookings/ver-una-reserva","pageMetadata":{"title":"Ver una reserva","description":"Una reserva del estudio.\n\n Solo para estudios: en una academia responde `wrong_vertical`. Un parámetro que la ruta no\n declara responde `validation_failed` con `unknown_parameter`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /bookings/{id}","href":"/api-reference/bookings/ver-una-reserva","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Una reserva del estudio.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Solo para estudios: en una academia responde \", _jsx(_components.code, {\n children: \"wrong_vertical\"\n }), \". Un parámetro que la ruta no\\ndeclara responde \", _jsx(_components.code, {\n children: \"validation_failed\"\n }), \" con \", _jsx(_components.code, {\n children: \"unknown_parameter\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ver una reserva","description":"Una reserva del estudio.\n\n Solo para estudios: en una academia responde `wrong_vertical`. Un parámetro que la ruta no\n declara responde `validation_failed` con `unknown_parameter`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /bookings/{id}","href":"/api-reference/bookings/ver-una-reserva","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getBooking","tags":["bookings"],"summary":"Ver una reserva","description":"Una reserva del estudio.\n\n Solo para estudios: en una academia responde `wrong_vertical`. Un parámetro que la ruta no\n declara responde `validation_failed` con `unknown_parameter`.\n","x-craqui-scope":"bookings:read","parameters":["c5ad0e2c-52c2-4eb8-933f-3b4a9f1c7a0f","834f57d7-c617-4d6c-871b-3fe39e78af40","7c36cbc4-2db5-431c-b4a1-a46584273c16"],"responses":{"200":"112578fc-8996-4a7b-8b0c-5ab5cfd37071","400":"56f310b8-1ded-4b33-8748-c9ab43b27363","401":"aaa6d90f-905a-471f-98f7-b6eec72109ed","403":"9e03f46c-1c22-479f-bfb0-0b560f07e7fa","404":"4e628372-0192-4d8f-bd9f-167f7fcb2f1a","409":"f12d726f-6d10-40f6-afa8-e102ec3c5a16","429":"6aceafca-6ff0-47c1-85f5-e6a90a64fc3b","500":"84ac9779-bcfa-4d67-b266-d949d7707ab1"},"method":"get","type":"path","servers":["31d8fcb3-9bfa-4db5-8533-2c6fb9cc60dd"],"security":["a06dc19d-5865-409a-bfb5-fdb78c1a14cb"],"path":"/bookings/{id}","baseUrlOptions":["https://api.craqui.com/v1"],"title":"Ver una reserva","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c5ad0e2c-52c2-4eb8-933f-3b4a9f1c7a0f":{"name":"Craqui-Version","in":"header","required":false,"description":"Versión de la API para este pedido (`YYYY-MM-DD`). Si no la mandas, se usa la versión fijada en\nla clave cuando se creó.\n","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","examples":["2026-12-01"],"isRequired":false,"description":"Versión de la API para este pedido (`YYYY-MM-DD`). Si no la mandas, se usa la versión fijada en\nla clave cuando se creó.\n","uniqueKey":"","typeLabel":"string"}},"834f57d7-c617-4d6c-871b-3fe39e78af40":{"name":"id","in":"path","required":true,"description":"El id de la reserva (`bkg_…`).","schema":{"type":"string","description":"El id de la reserva (`bkg_…`).\nId de una reserva.","pattern":"^bkg_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["bkg_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"","typeLabel":"string"}},"7c36cbc4-2db5-431c-b4a1-a46584273c16":{"name":"expand[]","in":"query","required":false,"description":"`client` (pide `clients:read`) y `session` (pide `sessions:read`), uno por parámetro. Un\n`client` expandido sigue la misma regla de contacto que `GET /v1/clients/{id}`.\n","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","enum":["client","session"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":false,"description":"`client` (pide `clients:read`) y `session` (pide `sessions:read`), uno por parámetro. Un\n`client` expandido sigue la misma regla de contacto que `GET /v1/clients/{id}`.\n","uniqueKey":"","typeLabel":"enum\u003cstring>[]"}}},"responses":{"112578fc-8996-4a7b-8b0c-5ab5cfd37071":{"description":"OK.","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}},"Craqui-Version":{"description":"La versión de la API con la que se respondió.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"RateLimit":{"description":"Pedidos que quedan en la ventana actual y segundos hasta que se renueva (draft IETF httpapi-ratelimit-headers).","schema":{"type":"string","examples":["\"read\";r=97;t=42"]}},"RateLimit-Policy":{"description":"Límite de la clave por ventana (draft IETF httpapi-ratelimit-headers).","schema":{"type":"string","examples":["\"read\";q=100;w=60"]}}},"content":{"application/json":{"schema":{"type":"object","description":"La reserva de un cliente en una sesión.\n\nVolver a reservar una sesión que el cliente había cancelado **reusa** el mismo `bkg_`: el id es\nuno por cliente y sesión, no uno por intento. `booked_at` es el del último intento.\n","required":["id","object","livemode","client_id","session_id","status","credits_charged","waitlist_position","booked_at","cancelled_at","free_cancel_until","recurring","credit_refunded","source","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Id de una reserva.","pattern":"^bkg_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["bkg_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","const":"booking","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"livemode":{"type":"boolean","description":"`false` si el objeto es de tu estudio de prueba (claves `crq_test_`); `true` con claves `crq_live_`.","isRequired":true,"uniqueKey":"livemode","typeLabel":"boolean"},"client_id":{"oneOf":[{"type":"string","description":"El cliente. `null` si quien reservó no es cliente del estudio (por ejemplo, alguien del equipo).\n","pattern":"^cli_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"client_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El cliente. `null` si quien reservó no es cliente del estudio (por ejemplo, alguien del equipo).\n","isRequired":true,"uniqueKey":"client_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client_id","typeLabel":"string | null"},"session_id":{"oneOf":[{"type":"string","description":"La sesión. `null` si la sesión se borró.","pattern":"^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"ses_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"session_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"La sesión. `null` si la sesión se borró.","isRequired":true,"uniqueKey":"session_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session_id","typeLabel":"string | null"},"status":{"type":"string","description":"`confirmed`, `waitlisted`, `cancelled`, `attended` o `no_show`. La lista puede crecer: trata un\nvalor que no conoces como una reserva que no ocupa lugar.\n","enum":["confirmed","waitlisted","cancelled","attended","no_show"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"credits_charged":{"type":"integer","description":"Los créditos que se descontaron al reservar (0 en lista de espera).","isRequired":true,"uniqueKey":"credits_charged","typeLabel":"integer"},"waitlist_position":{"oneOf":[{"type":"integer","description":"El lugar en la lista de espera; `null` fuera de ella.","isRequired":true,"uniqueKey":"waitlist_position.oneOf.0","typeLabel":"integer"},{"type":"null","description":"El lugar en la lista de espera; `null` fuera de ella.","isRequired":true,"uniqueKey":"waitlist_position.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"waitlist_position","typeLabel":"integer | null"},"booked_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"booked_at","typeLabel":"string\u003cdate-time>"},"cancelled_at":{"oneOf":[{"type":"string","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","format":"date-time","example":"2026-11-05T19:00:00-03:00","isRequired":true,"uniqueKey":"cancelled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","isRequired":true,"uniqueKey":"cancelled_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cancelled_at","typeLabel":"string\u003cdate-time> | null"},"free_cancel_until":{"oneOf":[{"type":"string","description":"Hasta cuándo cancelar devuelve el crédito, con el plazo de la clase, de su disciplina o del\nestudio, y la regla de la lista de espera. Es una **predicción**: lo decide Craqui al cancelar.\n`null` si la reserva no está `confirmed` ni `waitlisted`, o si la sesión ya empezó.\n","format":"date-time","example":"2026-11-05T19:00:00-03:00","isRequired":true,"uniqueKey":"free_cancel_until.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Hasta cuándo cancelar devuelve el crédito, con el plazo de la clase, de su disciplina o del\nestudio, y la regla de la lista de espera. Es una **predicción**: lo decide Craqui al cancelar.\n`null` si la reserva no está `confirmed` ni `waitlisted`, o si la sesión ya empezó.\n","isRequired":true,"uniqueKey":"free_cancel_until.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"free_cancel_until","typeLabel":"string\u003cdate-time> | null"},"recurring":{"type":"boolean","description":"Si la reserva salió de una reserva fija.","isRequired":true,"uniqueKey":"recurring","typeLabel":"boolean"},"credit_refunded":{"type":"boolean","description":"Si se le devolvió el crédito de esta reserva (desde su último `booked_at`).","isRequired":true,"uniqueKey":"credit_refunded","typeLabel":"boolean"},"source":{"type":"string","description":"De dónde salió la reserva: `api`, `recurring` (una reserva fija), `aggregator` (una plataforma\nde terceros) o `craqui` (el estudio o el cliente en Craqui). La lista puede crecer.\n","enum":["api","recurring","aggregator","craqui"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"source","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"client":{"oneOf":[{"type":"object","description":"Solo con `expand[]=client` (pide `clients:read`). `null` si `client_id` es `null`.","required":["id","object","livemode","first_name","last_name","status","home_center_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Id de un cliente del estudio.","pattern":"^cli_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["cli_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"client.oneOf.0.id","typeLabel":"string"},"object":{"type":"string","const":"client","isRequired":true,"uniqueKey":"client.oneOf.0.object","typeLabel":"string"},"livemode":{"type":"boolean","description":"`false` si el objeto es de tu estudio de prueba (claves `crq_test_`); `true` con claves `crq_live_`.","isRequired":true,"uniqueKey":"client.oneOf.0.livemode","typeLabel":"boolean"},"first_name":{"oneOf":[{"type":"string","description":"`null` en un cliente `deleted`, o si el estudio no lo cargó.","examples":["Sofía"],"isRequired":true,"uniqueKey":"client.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"`null` en un cliente `deleted`, o si el estudio no lo cargó.","examples":["Sofía"],"isRequired":true,"uniqueKey":"client.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"`null` en un cliente `deleted`, o si el estudio no lo cargó.","examples":["Pérez"],"isRequired":true,"uniqueKey":"client.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"`null` en un cliente `deleted`, o si el estudio no lo cargó.","examples":["Pérez"],"isRequired":true,"uniqueKey":"client.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.last_name","typeLabel":"string | null"},"status":{"type":"string","description":"`active`, `inactive` o `deleted`. Las listas traen solo `active` e `inactive`. La lista puede\ncrecer: trata un valor que no conoces como inactivo.\n","enum":["active","inactive","deleted"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"client.oneOf.0.status","typeLabel":"enum\u003cstring>"},"home_center_id":{"oneOf":[{"type":"string","description":"La sede habitual del cliente, si el estudio le asignó una.","pattern":"^ctr_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"ctr_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"client.oneOf.0.home_center_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"La sede habitual del cliente, si el estudio le asignó una.","isRequired":true,"uniqueKey":"client.oneOf.0.home_center_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.home_center_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","description":"Cuándo pasó a ser cliente de este estudio.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"email":{"oneOf":[{"type":"string","description":"Solo con el permiso `clients.pii:read`: sin él, el campo no viene (no es `null`). `null` si el\ncliente no tiene email.\n","uniqueKey":"client.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"Solo con el permiso `clients.pii:read`: sin él, el campo no viene (no es `null`). `null` si el\ncliente no tiene email.\n","uniqueKey":"client.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"client.oneOf.0.email","typeLabel":"string | null"},"phone":{"oneOf":[{"type":"string","description":"Solo con el permiso `clients.pii:read`: sin él, el campo no viene. En formato E.164\n(`+59899123456`); `null` si no tiene teléfono o si no se pudo leer como uno.\n","pattern":"^\\+[1-9]\\d{6,14}$","examples":["+59899123456"],"uniqueKey":"client.oneOf.0.phone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Solo con el permiso `clients.pii:read`: sin él, el campo no viene. En formato E.164\n(`+59899123456`); `null` si no tiene teléfono o si no se pudo leer como uno.\n","pattern":"^\\+[1-9]\\d{6,14}$","examples":["+59899123456"],"uniqueKey":"client.oneOf.0.phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"client.oneOf.0.phone","typeLabel":"string | null"},"active_membership":{"oneOf":[{"type":"object","description":"Solo en `GET /v1/clients/{id}` con `expand[]=active_membership` (pide `memberships:read`): la\nmembresía que tiene ahora (la `active`; si no hay, la más nueva `paused`, `suspended` o\n`pending_payment`). `null` si no tiene ninguna.\n","required":["id","object","livemode","client_id","membership_plan_id","status","current_period_start","current_period_end","renews_at","next_credit_date","started_at","cancelled_at","suspension_reason","discount","active_freeze_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Id de una membresía de un cliente.","pattern":"^mem_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["mem_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.id","typeLabel":"string"},"object":{"type":"string","const":"membership","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.object","typeLabel":"string"},"livemode":{"type":"boolean","description":"`false` si el objeto es de tu estudio de prueba (claves `crq_test_`); `true` con claves `crq_live_`.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.livemode","typeLabel":"boolean"},"client_id":{"oneOf":[{"type":"string","description":"El cliente. `null` si la membresía es de alguien que no es cliente del estudio.","pattern":"^cli_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.client_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El cliente. `null` si la membresía es de alguien que no es cliente del estudio.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.client_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.client_id","typeLabel":"string | null"},"membership_plan_id":{"type":"string","description":"Id de un plan de membresía.","pattern":"^mpl_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["mpl_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.membership_plan_id","typeLabel":"string"},"status":{"type":"string","description":"`active`, `paused` (congelada), `suspended`, `pending_payment`, `cancelled` o `expired`. La lista\npuede crecer: trata un valor que no conoces como una membresía que no da créditos.\n","enum":["active","paused","suspended","pending_payment","cancelled","expired"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.status","typeLabel":"enum\u003cstring>"},"current_period_start":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.current_period_start","typeLabel":"string\u003cdate-time>"},"current_period_end":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.current_period_end","typeLabel":"string\u003cdate-time>"},"renews_at":{"oneOf":[{"type":"string","description":"Cuándo se renueva sola: el fin del período actual si la membresía está `active` y su plan se\nrenueva solo; si no, `null`.\n","format":"date-time","example":"2026-11-05T19:00:00-03:00","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.renews_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Cuándo se renueva sola: el fin del período actual si la membresía está `active` y su plan se\nrenueva solo; si no, `null`.\n","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.renews_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.renews_at","typeLabel":"string\u003cdate-time> | null"},"next_credit_date":{"oneOf":[{"type":"string","description":"La fecha local en que recibe los próximos créditos; `null` si no hay una prevista.","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2026-11-05","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.next_credit_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"La fecha local en que recibe los próximos créditos; `null` si no hay una prevista.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.next_credit_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.next_credit_date","typeLabel":"string\u003cdate> | null"},"started_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.started_at","typeLabel":"string\u003cdate-time>"},"cancelled_at":{"oneOf":[{"type":"string","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","format":"date-time","example":"2026-11-05T19:00:00-03:00","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.cancelled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.cancelled_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.cancelled_at","typeLabel":"string\u003cdate-time> | null"},"suspension_reason":{"oneOf":[{"type":"string","description":"Por qué se suspendió, como texto; `null` si no está suspendida.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.suspension_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Por qué se suspendió, como texto; `null` si no está suspendida.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.suspension_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.suspension_reason","typeLabel":"string | null"},"discount":{"oneOf":[{"type":"object","description":"El descuento que tiene la membresía; `null` si no tiene.","required":["percent","fixed_amount","periods_remaining"],"properties":{"percent":{"oneOf":[{"type":"number","description":"El porcentaje de descuento (por ejemplo `15` es 15 %); `null` si es un monto fijo.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.percent.oneOf.0","typeLabel":"number"},{"type":"null","description":"El porcentaje de descuento (por ejemplo `15` es 15 %); `null` si es un monto fijo.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.percent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.percent","typeLabel":"number | null"},"fixed_amount":{"oneOf":[{"type":"object","description":"El monto fijo que se descuenta de cada cuota; `null` si es un porcentaje.","required":["amount_cents","currency"],"properties":{"amount_cents":{"type":"integer","description":"El monto multiplicado por 100. `250000` con `UYU` es $ 2.500,00.","examples":[250000],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.fixed_amount.oneOf.0.amount_cents","typeLabel":"integer"},"currency":{"type":"string","description":"Moneda ISO 4217, en mayúsculas.","pattern":"^[A-Z]{3}$","examples":["UYU"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.fixed_amount.oneOf.0.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.fixed_amount.oneOf.0","typeLabel":"object"},{"type":"null","description":"El monto fijo que se descuenta de cada cuota; `null` si es un porcentaje.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.fixed_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.fixed_amount","typeLabel":"object | null"},"periods_remaining":{"oneOf":[{"type":"integer","description":"Cuántos períodos más se aplica; `null` si se aplica siempre.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.periods_remaining.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Cuántos períodos más se aplica; `null` si se aplica siempre.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.periods_remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0.periods_remaining","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.0","typeLabel":"object"},{"type":"null","description":"El descuento que tiene la membresía; `null` si no tiene.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.discount","typeLabel":"object | null"},"active_freeze_id":{"oneOf":[{"type":"string","description":"El congelamiento en curso o programado; `null` si no hay. El detalle está en `GET /v1/memberships/{id}/freezes`.","pattern":"^frz_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"frz_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.active_freeze_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El congelamiento en curso o programado; `null` si no hay. El detalle está en `GET /v1/memberships/{id}/freezes`.","isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.active_freeze_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.active_freeze_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"client.oneOf.0.active_membership.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"client.oneOf.0.active_membership.oneOf.0","typeLabel":"object"},{"type":"null","description":"Solo en `GET /v1/clients/{id}` con `expand[]=active_membership` (pide `memberships:read`): la\nmembresía que tiene ahora (la `active`; si no hay, la más nueva `paused`, `suspended` o\n`pending_payment`). `null` si no tiene ninguna.\n","uniqueKey":"client.oneOf.0.active_membership.oneOf.1","typeLabel":"null"}],"uniqueKey":"client.oneOf.0.active_membership","typeLabel":"object | null"},"credit_balance":{"type":"object","description":"Solo en `GET /v1/clients/{id}` con `expand[]=credit_balance` (pide `credits:read`).","required":["object","livemode","client_id","total_credits","grants","grants_has_more"],"properties":{"object":{"type":"string","const":"credit_balance","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.object","typeLabel":"string"},"livemode":{"type":"boolean","description":"`false` si el objeto es de tu estudio de prueba (claves `crq_test_`); `true` con claves `crq_live_`.","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.livemode","typeLabel":"boolean"},"client_id":{"type":"string","description":"Id de un cliente del estudio.","pattern":"^cli_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["cli_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.client_id","typeLabel":"string"},"total_credits":{"type":"integer","description":"El saldo del cliente; `0` si nunca tuvo créditos.","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.total_credits","typeLabel":"integer"},"grants":{"type":"array","description":"Los lotes que se pueden usar (sin anular, con créditos y sin vencer), del que vence primero al último. Como mucho 100.","items":{"type":"object","required":["credit_grant_id","kind","credits_remaining","expires_at","course_ids"],"properties":{"credit_grant_id":{"type":"string","description":"Id de un lote de créditos (un pack, una oferta o el período de una membresía).","pattern":"^cgr_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["cgr_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].credit_grant_id","typeLabel":"string"},"kind":{"oneOf":[{"type":"string","description":"`pack`, `intro_offer` o `membership_period`. La lista puede crecer.","enum":["pack","intro_offer","membership_period",null],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].kind.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"`pack`, `intro_offer` o `membership_period`. La lista puede crecer.","enum":["pack","intro_offer","membership_period",null],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].kind.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].kind","typeLabel":"enum\u003cstring> | null"},"credits_remaining":{"type":"integer","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].credits_remaining","typeLabel":"integer"},"expires_at":{"oneOf":[{"type":"string","description":"Cuándo vencen; `null` si no vencen.","format":"date-time","example":"2026-11-05T19:00:00-03:00","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Cuándo vencen; `null` si no vencen.","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].expires_at","typeLabel":"string\u003cdate-time> | null"},"course_ids":{"oneOf":[{"description":"Las disciplinas en las que sirven; `null` si sirven en todas.","type":"array","items":{"type":"string","description":"Id de una disciplina.","pattern":"^crs_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["crs_01hzx8m4k2a7d9q3f5w6y8z0bc"],"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].course_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].course_ids.oneOf.0","typeLabel":"string[]"},{"description":"Las disciplinas en las que sirven; `null` si sirven en todas.","type":"null","items":{"type":"string","description":"Id de una disciplina.","pattern":"^crs_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["crs_01hzx8m4k2a7d9q3f5w6y8z0bc"]},"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].course_ids.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX].course_ids","typeLabel":"string[] | null"}},"uniqueKey":"client.oneOf.0.credit_balance.grants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants","typeLabel":"object[]"},"grants_has_more":{"type":"boolean","description":"`true` si el cliente tiene más de 100 lotes vivos; la lista completa está en `GET /v1/credit_grants?client_id=…\u0026status=active`.","isRequired":true,"uniqueKey":"client.oneOf.0.credit_balance.grants_has_more","typeLabel":"boolean"}},"uniqueKey":"client.oneOf.0.credit_balance","typeLabel":"object"}},"uniqueKey":"client.oneOf.0","typeLabel":"object"},{"type":"null","description":"Solo con `expand[]=client` (pide `clients:read`). `null` si `client_id` es `null`.","uniqueKey":"client.oneOf.1","typeLabel":"null"}],"uniqueKey":"client","typeLabel":"object | null"},"session":{"oneOf":[{"type":"object","description":"Solo con `expand[]=session` (pide `sessions:read`). `null` si `session_id` es `null`.","required":["id","object","livemode","class_id","course_id","center_id","room_id","teacher_id","starts_at","ends_at","local_date","local_start_time","local_end_time","time_zone","status","capacity","booked_count","waitlist_count","available_spots","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Id de una sesión (una fecha de una clase).","pattern":"^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["ses_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"session.oneOf.0.id","typeLabel":"string"},"object":{"type":"string","const":"session","isRequired":true,"uniqueKey":"session.oneOf.0.object","typeLabel":"string"},"livemode":{"type":"boolean","description":"`false` si el objeto es de tu estudio de prueba (claves `crq_test_`); `true` con claves `crq_live_`.","isRequired":true,"uniqueKey":"session.oneOf.0.livemode","typeLabel":"boolean"},"class_id":{"type":"string","description":"Id de una clase (el grupo con su horario semanal).","pattern":"^cls_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["cls_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"session.oneOf.0.class_id","typeLabel":"string"},"course_id":{"type":"string","description":"Id de una disciplina.","pattern":"^crs_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["crs_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"session.oneOf.0.course_id","typeLabel":"string"},"center_id":{"oneOf":[{"type":"string","description":"Id de una sede.","pattern":"^ctr_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"ctr_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"session.oneOf.0.center_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"session.oneOf.0.center_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.center_id","typeLabel":"string | null"},"room_id":{"oneOf":[{"type":"string","description":"El salón de esta sesión, si tiene uno asignado.","pattern":"^room_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"room_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"session.oneOf.0.room_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El salón de esta sesión, si tiene uno asignado.","isRequired":true,"uniqueKey":"session.oneOf.0.room_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.room_id","typeLabel":"string | null"},"teacher_id":{"oneOf":[{"type":"string","description":"Quien da esta sesión, con la suplencia aplicada (igual que el calendario del estudio). `null`\nsi no tiene instructor asignado.\n","pattern":"^tch_[0-7][0-9a-hjkmnp-tv-z]{25}$","example":"tch_01hzx8m4k2a7d9q3f5w6y8z0bc","isRequired":true,"uniqueKey":"session.oneOf.0.teacher_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Quien da esta sesión, con la suplencia aplicada (igual que el calendario del estudio). `null`\nsi no tiene instructor asignado.\n","isRequired":true,"uniqueKey":"session.oneOf.0.teacher_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.teacher_id","typeLabel":"string | null"},"starts_at":{"type":"string","format":"date-time","description":"El inicio, con el offset del estudio en ese momento. Una hora local que no existe por el\ncambio de horario (por ejemplo 00:30 la noche en que se adelanta el reloj) se corre una hora,\nigual que al reservar: en ese caso `starts_at` y `local_start_time` no coinciden.\n","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.starts_at","typeLabel":"string\u003cdate-time>"},"ends_at":{"type":"string","format":"date-time","description":"El fin. Una clase que cruza la medianoche termina al día siguiente.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.ends_at","typeLabel":"string\u003cdate-time>"},"local_date":{"type":"string","format":"date","description":"Fecha local del negocio, `YYYY-MM-DD`.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","examples":["2026-11-05"],"isRequired":true,"uniqueKey":"session.oneOf.0.local_date","typeLabel":"string\u003cdate>"},"local_start_time":{"type":"string","description":"Hora local del negocio, `HH:MM` (24 horas).","pattern":"^\\d{2}:\\d{2}$","examples":["19:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.local_start_time","typeLabel":"string"},"local_end_time":{"type":"string","description":"Hora local del negocio, `HH:MM` (24 horas).","pattern":"^\\d{2}:\\d{2}$","examples":["19:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.local_end_time","typeLabel":"string"},"time_zone":{"oneOf":[{"type":"string","description":"La zona horaria del estudio (IANA). `null` si el estudio no eligió una; los instantes salen en `+00:00`.","examples":["America/Montevideo"],"isRequired":true,"uniqueKey":"session.oneOf.0.time_zone.oneOf.0","typeLabel":"string"},{"type":"null","description":"La zona horaria del estudio (IANA). `null` si el estudio no eligió una; los instantes salen en `+00:00`.","examples":["America/Montevideo"],"isRequired":true,"uniqueKey":"session.oneOf.0.time_zone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.time_zone","typeLabel":"string | null"},"status":{"type":"string","description":"`scheduled`, `cancelled` (el estudio la canceló) o `studio_closed` (el estudio cerró ese día).\nLa lista puede crecer: trata un valor que no conoces como una sesión que no se da.\n","enum":["scheduled","cancelled","studio_closed"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"session.oneOf.0.status","typeLabel":"enum\u003cstring>"},"capacity":{"oneOf":[{"type":"integer","description":"El cupo de la sesión. `null` si la clase no tiene cupo.","isRequired":true,"uniqueKey":"session.oneOf.0.capacity.oneOf.0","typeLabel":"integer"},{"type":"null","description":"El cupo de la sesión. `null` si la clase no tiene cupo.","isRequired":true,"uniqueKey":"session.oneOf.0.capacity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.capacity","typeLabel":"integer | null"},"booked_count":{"type":"integer","description":"Los lugares tomados: reservas confirmadas, asistidas y ausentes hasta que la sesión empieza. Es\nla misma cuenta que usa Craqui al reservar.\n","minimum":0,"isRequired":true,"uniqueKey":"session.oneOf.0.booked_count","typeLabel":"integer"},"waitlist_count":{"type":"integer","description":"Cuántas personas esperan en la lista de espera.","minimum":0,"isRequired":true,"uniqueKey":"session.oneOf.0.waitlist_count","typeLabel":"integer"},"available_spots":{"oneOf":[{"type":"integer","description":"`capacity - booked_count`, nunca menos de 0. `null` si la clase no tiene cupo.","minimum":0,"isRequired":true,"uniqueKey":"session.oneOf.0.available_spots.oneOf.0","typeLabel":"integer"},{"type":"null","description":"`capacity - booked_count`, nunca menos de 0. `null` si la clase no tiene cupo.","minimum":0,"isRequired":true,"uniqueKey":"session.oneOf.0.available_spots.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"session.oneOf.0.available_spots","typeLabel":"integer | null"},"created_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-11-05T19:00:00-03:00"],"isRequired":true,"uniqueKey":"session.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"session.oneOf.0","typeLabel":"object"},{"type":"null","description":"Solo con `expand[]=session` (pide `sessions:read`). `null` si `session_id` es `null`.","uniqueKey":"session.oneOf.1","typeLabel":"null"}],"uniqueKey":"session","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"bkg_01hzx8m4k2a7d9q3f5w6y8z0bc","object":"booking","livemode":true,"client_id":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","session_id":"ses_01hzx8m4k2a7d9q3f5w6y8z0bc","status":"confirmed","credits_charged":123,"waitlist_position":123,"booked_at":"2026-11-05T19:00:00-03:00","cancelled_at":"2026-11-05T19:00:00-03:00","free_cancel_until":"2026-11-05T19:00:00-03:00","recurring":true,"credit_refunded":true,"source":"api","created_at":"2026-11-05T19:00:00-03:00","updated_at":"2026-11-05T19:00:00-03:00","client":{"id":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","object":"client","livemode":true,"first_name":"Sofía","last_name":"Pérez","status":"active","home_center_id":"ctr_01hzx8m4k2a7d9q3f5w6y8z0bc","created_at":"2026-11-05T19:00:00-03:00","updated_at":"2026-11-05T19:00:00-03:00","email":"\u003cstring>","phone":"+59899123456","active_membership":{"id":"mem_01hzx8m4k2a7d9q3f5w6y8z0bc","object":"membership","livemode":true,"client_id":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","membership_plan_id":"mpl_01hzx8m4k2a7d9q3f5w6y8z0bc","status":"active","current_period_start":"2026-11-05T19:00:00-03:00","current_period_end":"2026-11-05T19:00:00-03:00","renews_at":"2026-11-05T19:00:00-03:00","next_credit_date":"2026-11-05","started_at":"2026-11-05T19:00:00-03:00","cancelled_at":"2026-11-05T19:00:00-03:00","suspension_reason":"\u003cstring>","discount":{"percent":123,"fixed_amount":{"amount_cents":250000,"currency":"UYU"},"periods_remaining":123},"active_freeze_id":"frz_01hzx8m4k2a7d9q3f5w6y8z0bc","created_at":"2026-11-05T19:00:00-03:00","updated_at":"2026-11-05T19:00:00-03:00"},"credit_balance":{"object":"credit_balance","livemode":true,"client_id":"cli_01hzx8m4k2a7d9q3f5w6y8z0bc","total_credits":123,"grants":[{"credit_grant_id":"cgr_01hzx8m4k2a7d9q3f5w6y8z0bc","kind":"pack","credits_remaining":123,"expires_at":"2026-11-05T19:00:00-03:00","course_ids":["crs_01hzx8m4k2a7d9q3f5w6y8z0bc"]}],"grants_has_more":true}},"session":{"id":"ses_01hzx8m4k2a7d9q3f5w6y8z0bc","object":"session","livemode":true,"class_id":"cls_01hzx8m4k2a7d9q3f5w6y8z0bc","course_id":"crs_01hzx8m4k2a7d9q3f5w6y8z0bc","center_id":"ctr_01hzx8m4k2a7d9q3f5w6y8z0bc","room_id":"room_01hzx8m4k2a7d9q3f5w6y8z0bc","teacher_id":"tch_01hzx8m4k2a7d9q3f5w6y8z0bc","starts_at":"2026-11-05T19:00:00-03:00","ends_at":"2026-11-05T19:00:00-03:00","local_date":"2026-11-05","local_start_time":"19:00","local_end_time":"19:00","time_zone":"America/Montevideo","status":"scheduled","capacity":123,"booked_count":1,"waitlist_count":1,"available_spots":1,"created_at":"2026-11-05T19:00:00-03:00","updated_at":"2026-11-05T19:00:00-03:00"}}}},"exampleType":"generated"}},"exampleType":"generated"},"56f310b8-1ded-4b33-8748-c9ab43b27363":{"description":"El pedido está mal formado. Códigos posibles: `invalid_api_version`, `idempotency_key_required`,\n`validation_failed` (con un elemento de `errors` por parámetro: `unknown_parameter`,\n`invalid_prefix`, `invalid_id`, `invalid_date`, `invalid_boolean`, `invalid_enum`,\n`invalid_limit`, `duplicate_parameter`, `expand_not_supported`…) e `invalid_cursor` (un\n`starting_after` de otra búsqueda: repite la primera página con los mismos filtros). El detalle\nde un error nunca repite el valor que mandaste.\n","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.craqui.com/errors/invalid_api_key","title":"La clave no es válida","status":401,"code":"invalid_api_key","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc","detail":"Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).","doc_url":"\u003cstring>","required_scope":"business:read","errors":[{"field":"session_id","code":"invalid_prefix","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"aaa6d90f-905a-471f-98f7-b6eec72109ed":{"description":"Falta la clave o no sirve. Códigos posibles: `missing_api_key`, `invalid_api_key`,\n`revoked_api_key`, `expired_api_key`, `legacy_api_key`.\n","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"revoked":{"title":"revoked","value":{"type":"https://docs.craqui.com/errors/revoked_api_key","title":"La clave fue revocada","status":401,"code":"revoked_api_key","detail":"Crea una clave nueva en Configuración → Integraciones.","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc"}}},"exampleType":"examples"}},"exampleType":"examples"},"9e03f46c-1c22-479f-bfb0-0b560f07e7fa":{"description":"La clave es válida pero no puede hacer esto. Códigos posibles: `scope_required`,\n`plan_required`, `api_key_suspended`, `browser_not_allowed`, `wrong_vertical`.\n","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.craqui.com/errors/invalid_api_key","title":"La clave no es válida","status":401,"code":"invalid_api_key","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc","detail":"Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).","doc_url":"\u003cstring>","required_scope":"business:read","errors":[{"field":"session_id","code":"invalid_prefix","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"4e628372-0192-4d8f-bd9f-167f7fcb2f1a":{"description":"No existe, o no es de tu negocio. Código `not_found` o `route_not_found`.","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.craqui.com/errors/invalid_api_key","title":"La clave no es válida","status":401,"code":"invalid_api_key","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc","detail":"Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).","doc_url":"\u003cstring>","required_scope":"business:read","errors":[{"field":"session_id","code":"invalid_prefix","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"f12d726f-6d10-40f6-afa8-e102ec3c5a16":{"description":"Solo con una clave `crq_test_`: tu estudio de prueba no está listo. Código\n`sandbox_unavailable`. Restablece tus datos de prueba en Configuración → Integraciones y vuelve\na intentar. Una clave de prueba nunca responde con los datos reales del negocio.\n","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"sandbox_unavailable":{"title":"sandbox_unavailable","value":{"type":"https://docs.craqui.com/errors/sandbox_unavailable","title":"Tu estudio de prueba no está listo","status":409,"code":"sandbox_unavailable","detail":"Restablece tus datos de prueba en Configuración → Integraciones y vuelve a intentar.","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc"}}},"exampleType":"examples"}},"exampleType":"examples"},"6aceafca-6ff0-47c1-85f5-e6a90a64fc3b":{"description":"Se pasó el límite de pedidos por minuto de la clave. Código `rate_limited`.","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer","minimum":0}},"RateLimit":{"description":"Pedidos que quedan en la ventana actual y segundos hasta que se renueva (draft IETF httpapi-ratelimit-headers).","schema":{"type":"string","examples":["\"read\";r=97;t=42"]}},"RateLimit-Policy":{"description":"Límite de la clave por ventana (draft IETF httpapi-ratelimit-headers).","schema":{"type":"string","examples":["\"read\";q=100;w=60"]}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.craqui.com/errors/invalid_api_key","title":"La clave no es válida","status":401,"code":"invalid_api_key","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc","detail":"Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).","doc_url":"\u003cstring>","required_scope":"business:read","errors":[{"field":"session_id","code":"invalid_prefix","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"84ac9779-bcfa-4d67-b266-d949d7707ab1":{"description":"Falló algo de nuestro lado. Código `internal_error`. Reintenta; si sigue, escríbenos con el `request_id`.","headers":{"Request-Id":{"description":"Identificador del pedido. Aparece también en el cuerpo de los errores.","schema":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"Un error. Programa contra `code`, que no cambia; `title` y `detail` son para mostrarle a una\npersona y pueden cambiar de redacción.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri","description":"URL de la página de la documentación de este error.","examples":["https://docs.craqui.com/errors/invalid_api_key"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Resumen corto, en español.","examples":["La clave no es válida"],"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El mismo código HTTP de la respuesta.","examples":[401],"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Código estable del error. La lista puede crecer: trata un `code` que no conoces como un\nerror genérico de su `status`.\n","examples":["invalid_api_key"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[0-9a-hjkmnp-tv-z]{26}$","description":"Identificador del pedido. Búscalo en Configuración → Integraciones → Actividad de la API.","examples":["req_01hzx8m4k2a7d9q3f5w6y8z0bc"],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"Qué pasó y qué hacer, en español.","examples":["Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_)."],"uniqueKey":"detail","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","description":"Igual a `type`, por compatibilidad con clientes que buscan este campo.","uniqueKey":"doc_url","typeLabel":"string\u003curi>"},"required_scope":{"type":"string","description":"Solo en `scope_required`. El permiso que le falta a la clave.","examples":["business:read"],"uniqueKey":"required_scope","typeLabel":"string"},"errors":{"type":"array","description":"Solo en errores de validación. Un elemento por campo con problemas.","items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","description":"El campo, como lo mandaste (por ejemplo `session_id`).","examples":["session_id"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Qué tiene mal el campo.","examples":["invalid_prefix"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"Explicación en español.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.craqui.com/errors/invalid_api_key","title":"La clave no es válida","status":401,"code":"invalid_api_key","request_id":"req_01hzx8m4k2a7d9q3f5w6y8z0bc","detail":"Revisa que copiaste la clave completa, incluido el prefijo (crq_live_ o crq_test_).","doc_url":"\u003cstring>","required_scope":"business:read","errors":[{"field":"session_id","code":"invalid_prefix","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a06dc19d-5865-409a-bfb5-fdb78c1a14cb":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"crq_live_sk_… / crq_live_rk_…","description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"31d8fcb3-9bfa-4db5-8533-2c6fb9cc60dd":{"url":"https://api.craqui.com/v1","description":"Producción"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"crq_live_sk_… / crq_live_rk_…","description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"craqui","siteName":"API de Craqui","title":"Ver una reserva - API de Craqui","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T14:15:59.618Z","originalFileLocation":"api-reference/bookings/ver-una-reserva.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Una reserva del estudio. Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no declara responde validation_failed con unknown_parameter.\">\u003cmeta data-mint-head name=\"application-name\" content=\"API de Craqui\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ver una reserva - API de Craqui\">\u003cmeta data-mint-head property=\"og:description\" content=\"Una reserva del estudio. Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no declara responde validation_failed con unknown_parameter.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"API de Craqui\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://craqui.mintlify.site/_mintlify/api/og/v2?division=bookings\u0026amp;title=Ver+una+reserva\u0026amp;description=Una+reserva+del+estudio.%0A%0A++++++++Solo+para+estudios%3A+en+una+academia+responde+%60wrong_vertical%60.+Un+par%C3%A1metro+que+la+ruta+no%0A++++++++declara+responde+%60validatio\u0026amp;theme=c4e9c429a4105a1e8f962c5f\u0026amp;signature=425481ff4189dc4110b0e4a361aecbdd634a4afb3a9c9ee8ad3746c32a19475b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ver una reserva - API de Craqui\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Una reserva del estudio. Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no declara responde validation_failed con unknown_parameter.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://craqui.mintlify.site/_mintlify/api/og/v2?division=bookings\u0026amp;title=Ver+una+reserva\u0026amp;description=Una+reserva+del+estudio.%0A%0A++++++++Solo+para+estudios%3A+en+una+academia+responde+%60wrong_vertical%60.+Un+par%C3%A1metro+que+la+ruta+no%0A++++++++declara+responde+%60validatio\u0026amp;theme=c4e9c429a4105a1e8f962c5f\u0026amp;signature=425481ff4189dc4110b0e4a361aecbdd634a4afb3a9c9ee8ad3746c32a19475b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"API de Craqui\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F33C7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/bookings/ver-una-reserva.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.craqui.com/#organization\",\"name\":\"API de Craqui\",\"url\":\"https://docs.craqui.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/light.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=e96edbf5621b5bc4068b5ad8dee910c7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.craqui.com#website\",\"name\":\"API de Craqui\",\"url\":\"https://docs.craqui.com\",\"publisher\":{\"@id\":\"https://docs.craqui.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva#webpage\",\"url\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva\",\"name\":\"Ver una reserva\",\"description\":\"Una reserva del estudio. Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no declara responde validation_failed con unknown_parameter.\",\"dateModified\":\"2026-11-08T14:15:59.618Z\",\"isPartOf\":{\"@id\":\"https://docs.craqui.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"bookings\",\"item\":\"https://docs.craqui.com/api-reference/bookings/listar-reservas\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ver una reserva\",\"item\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva#apireference\",\"headline\":\"Ver una reserva\",\"name\":\"Ver una reserva\",\"description\":\"Una reserva del estudio. Solo para estudios: en una academia responde wrong_vertical. Un parámetro que la ruta no declara responde validation_failed con unknown_parameter.\",\"url\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva\",\"mainEntityOfPage\":{\"@id\":\"https://docs.craqui.com/api-reference/bookings/ver-una-reserva#webpage\"},\"dateModified\":\"2026-11-08T14:15:59.618Z\",\"publisher\":{\"@id\":\"https://docs.craqui.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.craqui.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"API de Craqui\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"API de Craqui","nav":{"global":null,"tabs":[{"tab":"Guías","pages":[{"title":"Guías","href":""}]},{"tab":"Referencia","groups":[{"group":"business","pages":[{"title":"Ver el negocio de la clave","deprecated":null,"version":null,"openapi":"/openapi.yaml get /business","href":"/api-reference/business/ver-el-negocio-de-la-clave"}]},{"group":"booking_policy","pages":[{"title":"Ver las reglas de reserva","deprecated":null,"version":null,"openapi":"/openapi.yaml get /booking_policy","href":"/api-reference/booking_policy/ver-las-reglas-de-reserva"}]},{"group":"centers","pages":[{"title":"Listar sedes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /centers","href":"/api-reference/centers/listar-sedes"},{"title":"Ver una sede","deprecated":null,"version":null,"openapi":"/openapi.yaml get /centers/{id}","href":"/api-reference/centers/ver-una-sede"}]},{"group":"rooms","pages":[{"title":"Listar salones","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rooms","href":"/api-reference/rooms/listar-salones"},{"title":"Ver un salón","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rooms/{id}","href":"/api-reference/rooms/ver-un-salón"}]},{"group":"teachers","pages":[{"title":"Listar instructores","deprecated":null,"version":null,"openapi":"/openapi.yaml get /teachers","href":"/api-reference/teachers/listar-instructores"},{"title":"Ver un instructor","deprecated":null,"version":null,"openapi":"/openapi.yaml get /teachers/{id}","href":"/api-reference/teachers/ver-un-instructor"}]},{"group":"courses","pages":[{"title":"Listar disciplinas","deprecated":null,"version":null,"openapi":"/openapi.yaml get /courses","href":"/api-reference/courses/listar-disciplinas"}]},{"group":"classes","pages":[{"title":"Listar clases","deprecated":null,"version":null,"openapi":"/openapi.yaml get /classes","href":"/api-reference/classes/listar-clases"},{"title":"Ver una clase","deprecated":null,"version":null,"openapi":"/openapi.yaml get /classes/{id}","href":"/api-reference/classes/ver-una-clase"}]},{"group":"credit_packs","pages":[{"title":"Listar packs de créditos","deprecated":null,"version":null,"openapi":"/openapi.yaml get /credit_packs","href":"/api-reference/credit_packs/listar-packs-de-créditos"}]},{"group":"membership_plans","pages":[{"title":"Listar planes de membresía","deprecated":null,"version":null,"openapi":"/openapi.yaml get /membership_plans","href":"/api-reference/membership_plans/listar-planes-de-membresía"}]},{"group":"intro_offers","pages":[{"title":"Listar ofertas de bienvenida","deprecated":null,"version":null,"openapi":"/openapi.yaml get /intro_offers","href":"/api-reference/intro_offers/listar-ofertas-de-bienvenida"}]},{"group":"sessions","pages":[{"title":"Listar sesiones","deprecated":null,"version":null,"openapi":"/openapi.yaml get /sessions","href":"/api-reference/sessions/listar-sesiones"},{"title":"Ver una sesión","deprecated":null,"version":null,"openapi":"/openapi.yaml get /sessions/{id}","href":"/api-reference/sessions/ver-una-sesión"},{"title":"Listar las reservas de una sesión","deprecated":null,"version":null,"openapi":"/openapi.yaml get /sessions/{id}/bookings","href":"/api-reference/sessions/listar-las-reservas-de-una-sesión"}]},{"group":"clients","pages":[{"title":"Listar clientes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /clients","href":"/api-reference/clients/listar-clientes"},{"title":"Ver un cliente","deprecated":null,"version":null,"openapi":"/openapi.yaml get /clients/{id}","href":"/api-reference/clients/ver-un-cliente"}]},{"group":"bookings","pages":[{"title":"Listar reservas","description":"Las reservas del estudio, de la más nueva a la más vieja. Los filtros de fecha son por la fecha local\nde la sesión: una reserva cuya sesión se borró queda fuera de un filtro de fecha.\n\n Paginada por cursor: para sincronizar todo, pide `limit=100` y sigue `next_cursor`.\n\n Solo para estudios: en una academia responde `wrong_vertical`. Un parámetro que la ruta no\n declara responde `validation_failed` con `unknown_parameter`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /bookings","href":"/api-reference/bookings/listar-reservas"},{"title":"Ver una reserva","deprecated":null,"version":null,"openapi":"/openapi.yaml get /bookings/{id}","href":"/api-reference/bookings/ver-una-reserva"}]},{"group":"credits","pages":[{"title":"Ver el saldo de créditos de un cliente","description":"El saldo de créditos de un cliente y sus lotes vivos, del que vence primero al último. `total_credits` es\nel saldo que vale. Un cliente sin créditos responde `total_credits: 0`. Alguien que nunca fue cliente del\nestudio responde `not_found`.\n\nSolo para estudios: en una academia responde `wrong_vertical`. Un parámetro que la ruta no\ndeclara responde `validation_failed` con `unknown_parameter`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /clients/{id}/credit_balance","href":"/api-reference/credits/ver-el-saldo-de-créditos-de-un-cliente"},{"title":"Listar lotes de créditos","deprecated":null,"version":null,"openapi":"/openapi.yaml get /credit_grants","href":"/api-reference/credits/listar-lotes-de-créditos"},{"title":"Listar movimientos de créditos","deprecated":null,"version":null,"openapi":"/openapi.yaml get /credit_transactions","href":"/api-reference/credits/listar-movimientos-de-créditos"}]},{"group":"memberships","pages":[{"title":"Listar membresías","deprecated":null,"version":null,"openapi":"/openapi.yaml get /memberships","href":"/api-reference/memberships/listar-membresías"},{"title":"Ver una membresía","deprecated":null,"version":null,"openapi":"/openapi.yaml get /memberships/{id}","href":"/api-reference/memberships/ver-una-membresía"},{"title":"Listar los congelamientos de una membresía","deprecated":null,"version":null,"openapi":"/openapi.yaml get /memberships/{id}/freezes","href":"/api-reference/memberships/listar-los-congelamientos-de-una-membresía"}]},{"group":"fees","pages":[{"title":"Listar cuotas","deprecated":null,"version":null,"openapi":"/openapi.yaml get /fees","href":"/api-reference/fees/listar-cuotas"},{"title":"Ver una cuota","deprecated":null,"version":null,"openapi":"/openapi.yaml get /fees/{id}","href":"/api-reference/fees/ver-una-cuota"}]},{"group":"payments","pages":[{"title":"Listar pagos","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payments","href":"/api-reference/payments/listar-pagos"},{"title":"Ver un pago","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payments/{id}","href":"/api-reference/payments/ver-un-pago"}]},{"group":"refunds","pages":[{"title":"Listar reembolsos","deprecated":null,"version":null,"openapi":"/openapi.yaml get /refunds","href":"/api-reference/refunds/listar-reembolsos"}]}]}]},"basePath":"","title":"Ver una reserva - API de Craqui","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}