Saltar al contenido

Endpoints

Endpoints

Nombre

Resumen

Lo que tu organización tiene guardado ahora, lo que lleva el mes y lo que se elimina pronto.

Método HTTP y ruta

GET/api/v6/storage/summary

https://developers.hablame.co/api/v6/storage/summary

Qué pasa al ejecutarlo

  • Solo consulta: no cambia datos de tu organización.
  • La llamada no se cobra.

Qué hace

Devuelve lo que ocupan ahora tus archivos (en total, por servicio y por tipo de archivo), la tarifa que rige hoy, el consumo del mes en curso y cuántos archivos se eliminan en las próximas 24 horas y 7 días.

month.costMicro es lo ya consolidado hasta month.through; month.estimatedTodayMicro estima lo que falta consolidar (normalmente hoy). price llega en null si tu organización todavía no tiene moneda definitiva.

Los importes van en micros de la moneda de tu organización (currency, ISO 4217): unidades multiplicadas por 10⁶ (1000000 es 1,00). El almacenamiento se cobra por GB al mes (GB decimal, 10⁹ bytes) según el tiempo que cada archivo estuvo guardado.

Disponibilidad y requisitos previos

  • Publicado y disponible en la API v6 de producción.
  • Todas las rutas parten de https://developers.hablame.co.
  • Necesitas una API key de Hablame para llamarlo.

Crea tu clave de API

Autenticación y permisos

  • Envía tu API key en la cabecera Authorization con el esquema Bearer.

Quién puede llamarlo: Una API key con el servicio storage habilitado.

Límites y consideraciones operativas

Límite de uso: 10 solicitudes por segundo.

  • Las seis consultas de Almacenamiento (resumen, consumo, listado, detalle, conservación y tarifa) comparten este cupo por organización: no es un cupo por endpoint.

Parámetros de ruta

Este endpoint no tiene parámetros de ruta.

Parámetros de consulta

Este endpoint no tiene parámetros de consulta.

Encabezados HTTP

NombreTipoDescripción y reglas
AuthorizationObligatoriostring

Tu API key con el esquema Bearer.

Ejemplo:Bearer hk_TU_API_KEY

Cuerpo de la petición

Este endpoint no recibe cuerpo en la petición.

Respuestas satisfactorias

200

Resumen. Los importes del ejemplo son ilustrativos.

Ejemplo de respuesta
{
  "success": true,
  "data": {
    "currency": "COP",
    "now": {
      "bytes": 5368709120,
      "objects": 1240,
      "byService": [{ "service": "callblasting", "name": "Llamadas", "bytes": 5368709120, "objects": 1240 }],
      "byScope": [{ "service": "callblasting", "scope": "recordings", "name": "Grabaciones", "bytes": 5368709120, "objects": 1240 }]
    },
    "price": { "pricePerGbMonthMicro": 1000000, "source": "base", "effectiveFrom": "2026-10-01" },
    "month": { "period": "2026-10", "gbMonths": "3.120000", "costMicro": 3120000, "through": "2026-10-18", "estimatedTodayMicro": 170000 },
    "expiringSoon": { "h24": { "objects": 12, "bytes": 50331648 }, "d7": { "objects": 80, "bytes": 335544320 } }
  },
  "meta": {
    "requestId": "5d0f3a9c7b2e41a8",
    "clientIp": "203.0.113.10",
    "timestamp": "2026-10-19T15:30:00+00:00",
    "responseTimeMs": 12.4
  }
}

Los valores del ejemplo son ilustrativos.

Campos de la respuesta

NombreTipoDescripción y reglas
successSiempre presenteboolean

dataSiempre presenteobject

data.currencySiempre presentestring

Moneda de tu organización.

Puede llegar en null.

data.nowSiempre presenteobject

Lo guardado en este momento.

data.now.bytesSiempre presenteinteger

data.now.objectsSiempre presenteinteger

data.now.byServiceSiempre presentearray<object>

data.now.byService[].serviceSiempre presentestring

data.now.byService[].nameSiempre presentestring

Nombre del servicio, en español.

data.now.byService[].bytesSiempre presenteinteger

data.now.byService[].objectsSiempre presenteinteger

data.now.byScopeSiempre presentearray<object>

data.now.byScope[].serviceSiempre presentestring

data.now.byScope[].scopeSiempre presentestring

data.now.byScope[].nameSiempre presentestring

Nombre del tipo de archivo, en español.

data.now.byScope[].bytesSiempre presenteinteger

data.now.byScope[].objectsSiempre presenteinteger

data.priceSiempre presenteobject

Puede llegar en null.

data.price.pricePerGbMonthMicroSiempre presenteinteger

Precio por GB al mes, en micros.

data.price.sourceSiempre presentestring

base: la tarifa general de tu moneda. custom: una tarifa pactada para tu organización.

Valores permitidos:base custom

data.price.effectiveFromSiempre presentestring

Día (Colombia) desde el que rige.

Formato:date

data.monthSiempre presenteobject

data.month.periodSiempre presentestring

Mes, YYYY-MM.

data.month.gbMonthsSiempre presentestring

GB al mes consumidos, como decimal en texto.

data.month.costMicroSiempre presenteinteger

data.month.throughSiempre presentestring

Último día consolidado.

Puede llegar en null.

Formato:date

data.month.estimatedTodayMicroSiempre presenteinteger

Puede llegar en null.

data.expiringSoonSiempre presenteobject

data.expiringSoon.h24Siempre presenteobject

Se eliminan en las próximas 24 horas.

data.expiringSoon.h24.objectsSiempre presenteinteger

Archivos.

data.expiringSoon.h24.bytesSiempre presenteinteger

Bytes.

data.expiringSoon.d7Siempre presenteobject

Se eliminan en los próximos 7 días.

data.expiringSoon.d7.objectsSiempre presenteinteger

Archivos.

data.expiringSoon.d7.bytesSiempre presenteinteger

Bytes.

metaSiempre presenteobject

Metadatos de la respuesta.

meta.requestIdSiempre presentestring

Identificador único de la solicitud (16 caracteres hexadecimales). Es el mismo de la cabecera X-Request-Id. Cítalo al contactar soporte.

Ejemplo:b9b1704baffab211

meta.clientIpSiempre presentestring

IP con la que la API vio tu solicitud. Útil si tu API key solo admite ciertas redes.

Ejemplo:203.0.113.45

meta.timestampSiempre presentestring

Fecha y hora en que se construyó la respuesta (ISO 8601 con offset).

Formato:date-timeEjemplo:2026-06-04T19:43:59+00:00

meta.responseTimeMsSiempre presentenumber

Tiempo (ms) que tomó procesar la solicitud en el servidor.

Ejemplo:4.24

Códigos de error

Todas las respuestas de error tienen la misma forma: success en false y un objeto error cuyo code dice qué pasó. Aquí están agrupadas por tipo, con los códigos que este endpoint puede devolver.

Forma de una respuesta de error
NombreTipoDescripción y reglas
successSiempre presenteboolean

Valor fijo:false

metaSiempre presenteobject

Metadatos de la respuesta.

meta.requestIdSiempre presentestring

Identificador único de la solicitud (16 caracteres hexadecimales). Es el mismo de la cabecera X-Request-Id. Cítalo al contactar soporte.

Ejemplo:b9b1704baffab211

meta.clientIpSiempre presentestring

IP con la que la API vio tu solicitud. Útil si tu API key solo admite ciertas redes.

Ejemplo:203.0.113.45

meta.timestampSiempre presentestring

Fecha y hora en que se construyó la respuesta (ISO 8601 con offset).

Formato:date-timeEjemplo:2026-06-04T19:43:59+00:00

meta.responseTimeMsSiempre presentenumber

Tiempo (ms) que tomó procesar la solicitud en el servidor.

Ejemplo:4.24

errorSiempre presenteobject

error.codeSiempre presentestring

Identificador estable en UPPER_SNAKE_CASE. Los clientes ramifican sobre este valor.

Ejemplo:AUTH_REQUIRED

error.legacyCodeinteger

Código numérico legacy v5, solo cuando hay puente. Se omite en los códigos nacidos en v6.

Ejemplo:40002

error.typeSiempre presentestring

URL a la documentación del error.

Formato:uriEjemplo:https://developers.hablame.co/docs/v6/errors/auth-required

error.messageSiempre presentestring

Texto legible en inglés. Es para el log del desarrollador, no para el usuario final: no lo parsees.

error.detailsSiempre presentearray<object>

Contexto estructurado (validaciones, recurso afectado). Arreglo vacío cuando no hay contexto extra.

Validación

Este endpoint no declara respuestas de este tipo.

Autenticación

  • 401Credenciales inválidas o faltantes.
  • 401AUTH_REQUIRED

    No se envió un token Bearer y cada llamada lo requiere.

    Mensaje que devuelve la API: Authentication is required. Send your API key as `Authorization: Bearer <token>`.

  • 401AUTH_INVALID_KEY

    La clave de API no se reconoce: formato equivocado, revocada o vencida.

    Mensaje que devuelve la API: The provided API key is invalid or has expired. Please verify the value sent in the `Authorization: Bearer` header.

Permisos

  • 403La API key no tiene el servicio Almacenamiento (storage), no se puede usar desde la red de la petición, o la organización no está activa.
  • 403AUTH_SERVICE_NOT_ALLOWED

    La clave no tiene permitido el servicio detrás de este endpoint.

    Mensaje que devuelve la API: This API key is not authorized to use the requested service.

  • 403AUTH_IP_NOT_ALLOWED

    La clave solo funciona desde ciertas redes y tu IP no está entre ellas.

    Mensaje que devuelve la API: This API key cannot be used from this IP address. The address we saw is in `meta.clientIp`: call from one of the networks allowed for the key, or use a key that allows this one.

  • 403ACCOUNT_NOT_ACTIVE

    Tu organización está suspendida o cerrada.

    Mensaje que devuelve la API: The organization associated with this API key is not active. Please contact support.

Límites de uso

  • 429Se excedió el límite de solicitudes.
  • 429RATE_TPS_EXCEEDED

    Excediste el cupo de tu organización para este endpoint.

    Mensaje que devuelve la API: You have exceeded the allowed request rate for this endpoint. Please wait before retrying.

Recurso inexistente

Este endpoint no declara respuestas de este tipo.

Errores internos y disponibilidad

  • 503Almacenamiento no responde en este momento. Reintenta tras Retry-After.

Otras respuestas

Este endpoint no declara respuestas de este tipo.

Ver en el catálogo de errores

Consideraciones especiales

Solo consulta; el almacenamiento nunca se pausa

Tus archivos se guardan de forma continua y nunca se pausan, aunque no tengas saldo. Para consultarlos por API, la API key necesita el servicio Almacenamiento (storage): con él ve todo (resumen, consumo, archivos, descargas, conservación y tarifa) y sin él cada una de estas rutas responde 403 AUTH_SERVICE_NOT_ALLOWED. La API es solo de consulta: el tiempo de conservación se cambia desde el portal de clientes (Almacenamiento → Conservación) y un archivo se elimina desde ahí o cuando vence. Cualquier método que no sea GET responde 405.

Documentación relacionada

¿Necesitas ayuda?

¿Te sirvió esta página?

Ver todos los canales de soporte

Pide ayuda sobre esto: este endpoint

Armamos un mensaje con los datos que ayudan a revisar tu caso. Léelo, complétalo y envíalo tú: no se manda nada solo.

El mensaje nunca lleva tu clave de API ni contraseñas.

Tus preferencias de cookies

Tú decides qué medimos. Puedes cambiar tu elección cuando quieras. Rechazar no te quita ninguna función de la documentación.

Política de privacidad