Saltar al contenido principal

Consultar opciones de disponibilidad

GET/availability

Retorna opciones reservables para un servicio y rango maximo de 31 dias. optionToken es opaco, ligado al tenant y de corta duracion; debe enviarse al reservar y no debe persistirse como identificador de agenda.

curl --request GET \
  --url '${BASE_URL}/availability' \
  --header 'Authorization: Bearer ${ACCESS_TOKEN}' \
  --header 'X-Correlation-Id: 10000000-0000-4000-8000-000000000006' \
  --data-urlencode 'serviceId=30000000-0000-4000-8000-000000000003' \
  --data-urlencode 'from=2026-08-03T00:00:00-05:00' \
  --data-urlencode 'to=2026-08-10T00:00:00-05:00'

Request

Headers y parametros

NombreUbicacionRequeridoDescripcion
X-Correlation-IdheaderNoUUID generado por el consumidor para trazabilidad; el servidor genera uno si se omite.
serviceIdquerySiServicio contratado solicitado.
fromquerySiInicio inclusivo en ISO 8601 con offset.
toquerySiFin exclusivo en ISO 8601 con offset.
locationIdqueryNoFiltro opcional por sede.
practitionerIdqueryNoFiltro opcional por profesional.
cursorqueryNoCursor opaco retornado por la pagina anterior; no debe interpretarse.
limitqueryNoCantidad maxima de elementos solicitados.

Responses

200Pagina de opciones disponibles al momento de la consulta.

Content-Type: application/json

CampoTipoRequeridoDescripcion
itemsobject[]Si-
nextCursorstring | nullSi-

Ejemplo

ejemplo de respuesta 200
{
  "items": [
    {
      "endsAt": "2026-08-03T09:30:00-05:00",
      "expiresAt": "2026-07-26T14:20:00-05:00",
      "locationId": "50000000-0000-4000-8000-000000000001",
      "optionToken": "opt_preview_synthetic_not_a_real_token",
      "practitionerId": "50000000-0000-4000-8000-000000000002",
      "startsAt": "2026-08-03T09:00:00-05:00"
    }
  ],
  "nextCursor": null
}
400Solicitud mal formada o parametro invalido.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 400
{
  "code": "INVALID_REQUEST",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "detail": "Revise los parametros enviados.",
  "status": 400,
  "title": "Solicitud invalida",
  "type": "https://magnosoft.com.co/problems/invalid-request"
}
401Token ausente, invalido, vencido o con audience incorrecta.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 401
{
  "code": "INVALID_ACCESS_TOKEN",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 401,
  "title": "Autenticacion requerida",
  "type": "https://magnosoft.com.co/problems/unauthorized"
}
403Service principal autenticado sin el scope requerido.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 403
{
  "code": "INSUFFICIENT_SCOPE",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 403,
  "title": "Permiso insuficiente",
  "type": "https://magnosoft.com.co/problems/forbidden"
}
422JSON valido que incumple una regla de validacion del contrato.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 422
{
  "code": "VALIDATION_FAILED",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "errors": [
    {
      "code": "INVALID_DATE",
      "field": "serviceDate",
      "message": "Debe ser una fecha ISO 8601 valida."
    }
  ],
  "status": 422,
  "title": "Validacion fallida",
  "type": "https://magnosoft.com.co/problems/validation"
}
429Limite de solicitudes excedido para el service principal.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 429
{
  "code": "RATE_LIMIT_EXCEEDED",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 429,
  "title": "Demasiadas solicitudes",
  "type": "https://magnosoft.com.co/problems/rate-limit"
}