Call Management API Documentation
These endpoints let you retrieve your Missed Calls, Incoming Answered Calls, and Outgoing Calls synced from the SMSMobileAPI mobile app into your dashboard + API.
Important: if the mobile app runs in the background, the phone system may impose a delay (often up to ~10 minutes) between synchronizations. You can always open the app to sync manually if needed.
Quickstart
Base URL
YOUR_API_KEY with your real key (do not share it publicly).
Examples
GET https://api.smsmobileapi.com/call/missed/list/?apikey=YOUR_API_KEY
GET https://api.smsmobileapi.com/call/incoming/list/?apikey=YOUR_API_KEY&limit=50&offset=0&sort_by=call_date_ms&sort_dir=desc
GET https://api.smsmobileapi.com/call/outgoing/list/?apikey=YOUR_API_KEY&q=%2B3247&date_from_ms=1700000000000&date_to_ms=1700864000000
Authentication
Call Management endpoints authenticate using the apikey query parameter.
dateLimit >= CURDATE()). If expired, you’ll receive api_expired.
Missed calls endpoint may return a generic “Missing apikey” / server errors depending on conditions.
Common concepts
Pagination
Use limit and offset to paginate results.
Timestamps
call_date_msis a UNIX timestamp in milliseconds.call_datetime_utcis stored as a UTC datetime string (database field).- For Missed Calls, the API returns a formatted
datestring (derived from a milliseconds value).
Search
- Missed calls:
searchmatches number or name. - Incoming/Outgoing:
qmatches phone_number or cached_name.
Sorting (Incoming/Outgoing only)
Sorting is controlled by sort_by + sort_dir (whitelisted fields only).
Missed calls are always ordered by newest first.
Errors
| HTTP | Example error | Meaning |
|---|---|---|
| 400 | {"success":false,"error":"missing_apikey"} |
Missing or empty apikey. |
| 403 | {"success":false,"error":"invalid_apikey"} |
API key not found / not recognized. |
| 403 | {"success":false,"error":"api_expired"} |
Your subscription is expired (dateLimit is before today). |
| 500 | {"success":false,"error":"server_error","detail":"..."} |
Server error (database, SQL, exception). |
Note: the Missed Calls endpoint can also return messages like Missing apikey or SQL preparation errors depending on the situation.
Missed Calls – List
Retrieve missed calls synchronized from the mobile device.
Endpoint
Query parameters
| Parameter | Type | Description |
|---|---|---|
Requiredapikey |
string | Your API key linked to the mobile phone. |
Optionaloffset |
int | Pagination offset (default: 0). |
Optionallimit |
int | Max rows to return (default: 100, max: 500). |
Optionalsearch |
string | Search by number or name (SQL LIKE). |
Optionaldate_start |
YYYY-MM-DD | Filter from this day (00:00:00). Compared against the stored milliseconds timestamp. |
Optionaldate_end |
YYYY-MM-DD | Filter up to this day (23:59:59). Compared against the stored milliseconds timestamp. |
Sorting
Fixed: newest first (ORDER BY date DESC).
Example request
GET https://api.smsmobileapi.com/call/missed/list/?apikey=YOUR_API_KEY&limit=100&offset=0&search=John&date_start=2026-02-01&date_end=2026-02-24
Example response
{
"success": true,
"offset": 0,
"limit": 100,
"count": 2,
"data": [
{ "number": "+123470000000", "name": "John Doe", "date": "2026-02-24 12:49:39" },
{ "number": "+123471111111", "name": "", "date": "2026-02-24 11:12:09" }
]
}
Incoming Calls – List
Retrieve incoming answered calls synchronized from the mobile device.
Endpoint
Query parameters
| Parameter | Type | Description |
|---|---|---|
Requiredapikey |
string | Your API key. Validated against subscription (dateLimit). |
Optionallimit |
int | Rows per page (default: 50, min 1, max 200). |
Optionaloffset |
int | Pagination offset (default: 0). |
Optionalsort_by |
string |
Sort field (default: call_date_ms). Allowed:
call_date_ms, call_datetime_utc, duration_sec, phone_number,
created_at, cached_name, geo_location.
|
Optionalsort_dir |
asc|desc | Sort direction (default: desc). |
Optionaldate_from_ms |
int (ms) | Filter where call_date_ms >= date_from_ms. |
Optionaldate_to_ms |
int (ms) | Filter where call_date_ms <= date_to_ms. |
Optionalq |
string | Search (LIKE) on phone_number or cached_name. |
Example request
GET https://api.smsmobileapi.com/call/incoming/list/?apikey=YOUR_API_KEY&limit=100&offset=0&sort_by=call_date_ms&sort_dir=desc&q=%2B3247
Example response
{
"success": true,
"apikey": "YOUR_API_KEY",
"limit": 100,
"offset": 0,
"sort_by": "call_date_ms",
"sort_dir": "desc",
"filters": {
"date_from_ms": null,
"date_to_ms": null,
"q": "+12347"
},
"count": 2,
"rows": [
{
"phone_number": "+123470000000",
"cached_name": "Matteo Css",
"call_date_ms": 1761233379000,
"call_datetime_utc": "2026-02-23 12:49:39",
"duration_sec": 440,
"geo_location": "Belgique",
"created_at": "2026-02-24 04:14:38"
}
]
}
Outgoing Calls – List
Retrieve outgoing calls synchronized from the mobile device.
Endpoint
Query parameters
Same parameters and behavior as Incoming Calls.
| Parameter | Type | Description |
|---|---|---|
Requiredapikey |
string | Your API key. Validated against subscription (dateLimit). |
Optionallimit |
int | Rows per page (default: 50, max 200). |
Optionaloffset |
int | Pagination offset (default: 0). |
Optionalsort_by |
string |
Default call_date_ms. Allowed:
call_date_ms, call_datetime_utc, duration_sec, phone_number,
created_at, cached_name, geo_location.
|
Optionalsort_dir |
asc|desc | Default desc. |
Optionaldate_from_ms |
int (ms) | Filter from this timestamp (ms). |
Optionaldate_to_ms |
int (ms) | Filter up to this timestamp (ms). |
Optionalq |
string | Search on phone_number or cached_name. |
Example request
GET https://api.smsmobileapi.com/call/outgoing/list/?apikey=YOUR_API_KEY&limit=50&offset=0&sort_by=duration_sec&sort_dir=desc&date_from_ms=1700000000000&date_to_ms=1700864000000
Example response
{
"success": true,
"apikey": "YOUR_API_KEY",
"limit": 50,
"offset": 0,
"sort_by": "duration_sec",
"sort_dir": "desc",
"filters": {
"date_from_ms": "1700000000000",
"date_to_ms": "1700864000000",
"q": null
},
"count": 1,
"rows": [
{
"phone_number": "+123490000000",
"cached_name": null,
"call_date_ms": 1761231000000,
"call_datetime_utc": "2026-02-23 12:10:00",
"duration_sec": 120,
"geo_location": "Belgique",
"created_at": "2026-02-24 04:14:37"
}
]
}
Missed call fields
| Field | Type | Description |
|---|---|---|
success | bool | Request status. |
offset | int | Pagination offset returned. |
limit | int | Pagination limit returned. |
count | int | Number of rows returned in data. |
data | array | List of missed calls. |
data[].number | string | Caller phone number. |
data[].name | string | Cached contact name (may be empty). |
data[].date | string | Formatted datetime string derived from a milliseconds timestamp. |
Incoming/Outgoing fields
| Field | Type | Description |
|---|---|---|
success | bool | Request status. |
apikey | string | Echoed back by API (your key). |
limit | int | Rows per page returned. |
offset | int | Pagination offset returned. |
sort_by | string | Applied sort field. |
sort_dir | string | Applied sort direction. |
filters | object | Echoed filters (date_from_ms, date_to_ms, q). |
count | int | Number of rows returned in rows. |
rows | array | List of calls. |
rows[].phone_number | string | Phone number. |
rows[].cached_name | string|null | Cached contact name (can be null). |
rows[].call_date_ms | int | Call timestamp in milliseconds. |
rows[].call_datetime_utc | string | UTC datetime field (database). |
rows[].duration_sec | int | Duration in seconds. |
rows[].geo_location | string|null | Geo location label (can be null/empty). |
rows[].created_at | string | Server insertion timestamp. |
