Get started
Seven steps to go from zero to your first API response: what you can integrate, what you need, how to get your key, how to make the first request and who to turn to if something fails.
6 min readReviewed on
- 011. Discover what you can integrate
The products you can use from the API today.
- 022. Check the requirements
What your organization needs before calling.
- 033. Get your API key
The credential that identifies your organization.
- 044. Make your first request
A call that costs nothing and confirms everything is connected.
- 055. Read the response
The shape every response shares and the number to quote to support.
- 066. Integrate a product
Complete guides, start to finish.
- 077. If something fails
Errors, troubleshooting and support.
1. Discover what you can integrate
This is what is open today. Each card leads to a guide that explains the product from start to finish.
Create short links, check their visits and manage your domains.
See how much you store and download your files.
Send over SMPP 3.4 and receive by webhook the messages that reach your short code.
Receive signed notices on your server and verify them before trusting them.
There are also two general queries, the ping to check your connection and the country catalog, and the organization query. Everything is in the reference.
2. Check the requirements
In short you need an active Hablame organization, the service or the permission for the product you will use and, if the product is charged, balance or a plan. The requirements page details it product by product.
3. Get your API key
Your API key is a string that starts with hk_. It identifies your organization on every request and is shown in full only once, when you create it: store it in a secret manager. How to create it and which permissions to give it.
Treat the key like a password. Do not commit it to a repository, paste it into a chat or put it in a URL.
4. Make your first request
The GET / endpoint is the simplest one: it checks that your key works and charges nothing. A 200 means your connection is ready to call the rest.
curl -H 'Authorization: Bearer hk_TU_API_KEY' \
https://developers.hablame.co/api/v6/utilities/pingconst res = await fetch('https://developers.hablame.co/api/v6/utilities/ping', {
headers: { Authorization: `Bearer ${process.env.HABLAME_API_KEY}` },
})
const body = await res.json()
console.log(body.data.pong) // trueimport os
import requests
r = requests.get(
"https://developers.hablame.co/api/v6/utilities/ping",
headers={"Authorization": f"Bearer {os.environ['HABLAME_API_KEY']}"},
timeout=30,
)
print(r.json()["data"]["pong"]) # True<?php
$ch = curl_init('https://developers.hablame.co/api/v6/utilities/ping');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('HABLAME_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
var_dump($body['data']['pong']); // bool(true)A successful call returns HTTP 200 and a body like this. The values are examples:
{
"success": true,
"data": {
"pong": true,
"apiVersion": "v6",
"client": { "ip": "203.0.113.45" }
},
"meta": {
"requestId": "b9b1704baffab211",
"clientIp": "203.0.113.45",
"timestamp": "2026-06-04T19:43:59+00:00",
"responseTimeMs": 4.24
}
}The ping does not return your organization details. To see them use GET /, which also requires the directory permission on the key.
5. Read the response
Every response, good or bad, comes in the same structure: { success,. Check success first; never decide by the HTTP status alone. The response envelope explains each field.
Keep the meta. of every response (it also arrives in the X-Request-Id header). If something fails and you write to support, that number lets us find your exact request.
6. Integrate a product
Every product guide follows the same ten sections, from the goal to the next steps, so you can complete a whole process and not just a single request.
- URL Shortener: create and manage short links.
- Storage: see what you store and download files.
- SMS over SMPP 3.4: send messages and receive delivery receipts.
- Webhooks: receive signed notices on your server.
Before going live read testing without surprises: there is no separate test environment and what is charged is charged for real.
7. If something fails
| What you see | What it usually is |
|---|---|
401 AUTH_REQUIRED | The Authorization header is missing, or you used a scheme other than Bearer. |
401 AUTH_INVALID_KEY | The key has a typo, was deleted or has expired. |
403 AUTH_IP_NOT_ALLOWED | The key only works from certain networks and you called from another one. The IP we saw you from comes in meta.. |
429 RATE_TPS_EXCEEDED | You reached the endpoint usage limit (ping allows 20 per minute). Wait what Retry-After says. |
Every code, its cause and how to fix it.
The most common symptoms, one by one.
Write to us with your requestId at hand.
For technical questions, email developers@hablame.co. If you have a production incident, message us on WhatsApp at +57 319 660 0002, 24/7.