Skip to content

Endpoints

Endpoints

Name

Summary

What your organization has stored now, the month so far and what is deleted soon.

HTTP method and path

GET/api/v6/storage/summary

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

What happens when you run it

  • Read only: it does not change your organization’s data.
  • The call is not charged.

What it does

Returns what your files take up now (in total, per service and per file type), the price in force today, the usage of the current month and how many files are deleted in the next 24 hours and 7 days.

month.costMicro is what is already consolidated up to month.through; month.estimatedTodayMicro estimates what is still to be consolidated (normally today). price comes as null if your organization does not have a final currency yet.

Amounts are in micros of your organization’s currency (currency, ISO 4217): units multiplied by 10⁶ (1000000 is 1.00). Storage is billed per GB-month (decimal GB, 10⁹ bytes) according to how long each file was stored.

Availability and prerequisites

  • Published and available in the production API v6.
  • Every path starts at https://developers.hablame.co.
  • You need a Hablame API key to call it.

Create your API key

Authentication and permissions

  • Send your API key in the Authorization header with the Bearer scheme.

Who can call it: An API key with the storage service enabled.

Limits and operational notes

Usage limit: 10 requests per second.

  • The six Storage queries (summary, usage, list, detail, retention and pricing) share this per-organization quota: it is not a per-endpoint quota.

Path parameters

This endpoint has no path parameters.

Query parameters

This endpoint has no query parameters.

HTTP headers

NameTypeDescription and rules
AuthorizationRequiredstring

Your API key with the Bearer scheme.

Example:Bearer hk_TU_API_KEY

Request body

This endpoint takes no request body.

Successful responses

200

Summary. The amounts in the example are illustrative.

Response example
{
  "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
  }
}

The example values are illustrative.

Response fields

NameTypeDescription and rules
successAlways presentboolean

dataAlways presentobject

data.currencyAlways presentstring

Your organization’s currency.

May come as null.

data.nowAlways presentobject

What is stored right now.

data.now.bytesAlways presentinteger

data.now.objectsAlways presentinteger

data.now.byServiceAlways presentarray<object>

data.now.byService[].serviceAlways presentstring

data.now.byService[].nameAlways presentstring

Service name, in Spanish.

data.now.byService[].bytesAlways presentinteger

data.now.byService[].objectsAlways presentinteger

data.now.byScopeAlways presentarray<object>

data.now.byScope[].serviceAlways presentstring

data.now.byScope[].scopeAlways presentstring

data.now.byScope[].nameAlways presentstring

File type name, in Spanish.

data.now.byScope[].bytesAlways presentinteger

data.now.byScope[].objectsAlways presentinteger

data.priceAlways presentobject

May come as null.

data.price.pricePerGbMonthMicroAlways presentinteger

Price per GB-month, in micros.

data.price.sourceAlways presentstring

base: the general price for your currency. custom: a price agreed for your organization.

Allowed values:base custom

data.price.effectiveFromAlways presentstring

Day (Colombia time) from which it applies.

Format:date

data.monthAlways presentobject

data.month.periodAlways presentstring

Month, YYYY-MM.

data.month.gbMonthsAlways presentstring

GB-months used, as a decimal string.

data.month.costMicroAlways presentinteger

data.month.throughAlways presentstring

Last consolidated day.

May come as null.

Format:date

data.month.estimatedTodayMicroAlways presentinteger

May come as null.

data.expiringSoonAlways presentobject

data.expiringSoon.h24Always presentobject

Deleted in the next 24 hours.

data.expiringSoon.h24.objectsAlways presentinteger

Files.

data.expiringSoon.h24.bytesAlways presentinteger

Bytes.

data.expiringSoon.d7Always presentobject

Deleted in the next 7 days.

data.expiringSoon.d7.objectsAlways presentinteger

Files.

data.expiringSoon.d7.bytesAlways presentinteger

Bytes.

metaAlways presentobject

Response metadata.

meta.requestIdAlways presentstring

Unique request identifier (16 hexadecimal characters). It matches the X-Request-Id header. Quote it when contacting support.

Example:b9b1704baffab211

meta.clientIpAlways presentstring

IP the API saw your request come from. Useful if your API key only accepts certain networks.

Example:203.0.113.45

meta.timestampAlways presentstring

Date and time the response was built (ISO 8601 with offset).

Format:date-timeExample:2026-06-04T19:43:59+00:00

meta.responseTimeMsAlways presentnumber

Time (ms) the server took to process the request.

Example:4.24

Error codes

Every error response has the same shape: success set to false and an error object whose code says what happened. They are grouped here by kind, with the codes this endpoint can return.

Shape of an error response
NameTypeDescription and rules
successAlways presentboolean

Fixed value:false

metaAlways presentobject

Response metadata.

meta.requestIdAlways presentstring

Unique request identifier (16 hexadecimal characters). It matches the X-Request-Id header. Quote it when contacting support.

Example:b9b1704baffab211

meta.clientIpAlways presentstring

IP the API saw your request come from. Useful if your API key only accepts certain networks.

Example:203.0.113.45

meta.timestampAlways presentstring

Date and time the response was built (ISO 8601 with offset).

Format:date-timeExample:2026-06-04T19:43:59+00:00

meta.responseTimeMsAlways presentnumber

Time (ms) the server took to process the request.

Example:4.24

errorAlways presentobject

error.codeAlways presentstring

Stable UPPER_SNAKE_CASE identifier. Clients branch on this value.

Example:AUTH_REQUIRED

error.legacyCodeinteger

Legacy v5 numeric code, only when a bridge exists. Omitted for codes born in v6.

Example:40002

error.typeAlways presentstring

URL to the error documentation.

Format:uriExample:https://developers.hablame.co/docs/v6/errors/auth-required

error.messageAlways presentstring

Human readable text, in English. It is for the developer log, not the end user: do not parse it.

error.detailsAlways presentarray<object>

Structured context (validation issues, affected resource). Empty array when there is no extra context.

Validation

This endpoint does not declare responses of this kind.

Authentication

  • 401Invalid or missing credentials.
  • 401AUTH_REQUIRED

    No Bearer token was sent, and every call requires one.

    Message the API returns: Authentication is required. Send your API key as `Authorization: Bearer <token>`.

  • 401AUTH_INVALID_KEY

    The API key is not recognized: wrong format, revoked or expired.

    Message the API returns: The provided API key is invalid or has expired. Please verify the value sent in the `Authorization: Bearer` header.

Permissions

  • 403The API key does not have the Storage service (storage), cannot be used from the request network, or the organization is not active.
  • 403AUTH_SERVICE_NOT_ALLOWED

    The key is not allowed to use the service behind this endpoint.

    Message the API returns: This API key is not authorized to use the requested service.

  • 403AUTH_IP_NOT_ALLOWED

    The key only works from certain networks and your IP is not one of them.

    Message the API returns: 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

    Your organization is suspended or closed.

    Message the API returns: The organization associated with this API key is not active. Please contact support.

Usage limits

  • 429Request limit exceeded.
  • 429RATE_TPS_EXCEEDED

    You exceeded your organization quota for this endpoint.

    Message the API returns: You have exceeded the allowed request rate for this endpoint. Please wait before retrying.

Resource not found

This endpoint does not declare responses of this kind.

Internal errors and availability

  • 503Storage is not responding right now. Retry after Retry-After.

Other responses

This endpoint does not declare responses of this kind.

See it in the error catalog

Special considerations

Read-only; storage never pauses

Your files are stored continuously and never pause, even without balance. To query them over the API, the API key needs the Storage service (storage): with it, the key sees everything (summary, usage, files, downloads, retention and pricing), and without it each of these endpoints answers 403 AUTH_SERVICE_NOT_ALLOWED. The API is read-only: the retention time is changed from the customer portal (Storage → Retention) and a file is deleted there or when it expires. Any method other than GET answers 405.

Related documentation

Need help?

Was this page helpful?

See all support channels

Ask for help about this: this endpoint

We build a message with the details that help us look into your case. Read it, complete it and send it yourself: nothing is sent on its own.

The message never carries your API key or passwords.

Your cookie preferences

You decide what we measure. You can change your choice at any time. Rejecting takes no feature away from the documentation.

Privacy policy