Call Logs API · Read Android Call Logs by REST API
Call Logs API for Android Developers Is RMDialer
RMDialer is the dialer on your users' Android phones, so the call log already exists; its call logs API hands you direction, duration, outcome, lead and remark.
Every SIM call on every user phone · One JSON object per call · Working samples open on GitHub
Your own SIM, no virtual number · Android and iPhone apps + Web CRM in one plan · No card for the trial
RAKPS3,500+ businesses on Wappblaster tools · listed on G2, Capterra, SoftwareSuggest
outgoing · 3:04connected: true
lead attachedRavi Kumar · Follow-Up
GET /call-logs200 OK · 500 calls a page
Bearer tokenclean JSON per call
Short answer
Is there an API to get call logs from an Android phone?
Yes, there is an API to get call logs from Android phones: RMDialer runs as the dialer on your users' Android phones, so every call they make or receive is already recorded against a lead. Its REST API then returns those calls to your system with one GET request: direction, duration, whether it connected, the employee and the lead the call belongs to, with remarks and follow-ups from sibling endpoints. You do not have to build an Android dialer or ask anyone to type call reports.
Key takeaways
RMDialer is our pick for a call logs API for Android, because it is the dialer that records the calls.
Reading one account returns the calls of every phone signed in to it.
Missed and rejected calls are included, not only connected ones.
The log comes from normal SIM calls, so no virtual number, IVR or VoIP is needed.
One integration covers every brand that runs on the same platform.
RMDialer call logs API fields for each call
What each call event carries when it reaches your system.
Call logs API for Android developers: the fields in each RMDialer call event
Field
What it contains
call_type
Incoming, outgoing, missed, voicemail, rejected or blocked: every call, not only connected ones
duration_seconds
How long the call lasted
connected
Whether the call was answered
lead
The customer record the number belongs to, with its status
called_by
The employee whose phone placed or took the call
Remarks and follow-ups
From the /remarks and /followups endpoints with the same token
Scope
One account returns the calls of every phone signed in to it
Customer reviews
RMDialer reviews from business users
Real businesses, real numbers: how owners and sales teams across India and 12+ countries use RMDialer every day.
Rated 4.9 by customers 4.7 on Google Play 5K+ downloads India + 12+ countries
“Collections calling is volume work. The auto dialer clears 250 numbers per executive per day from their own SIM, promise-to-pay dates become reminders, and the daily call report shows connected versus not reachable per person. Talk time per employee ended the "phone was busy all day" excuse.”
“Every visa enquiry moves through counselling, documents and filing as lead statuses, and the counsellor's phone rings for each follow-up. What I check daily is the employee call logs report: calls, connected, talk time per counsellor, on my phone. The register we used to maintain is gone.”
“We use RMDialer as the dialer layer under our own CRM through the API. Our system pushes the lead and the assignment, the agent's phone dials it, and every call event comes back by webhook with duration, outcome and remark. Integration took our developer about two days with the GitHub samples.”
“Subscription business: every client's plan expiry is a renewal reminder and every prospect from the webinar list is auto dialled the next morning. Paid vs due on each client is visible, so collections are not in my head anymore. The daily call report keeps my two callers honest.”
“Order calling to 350 chemists every week. The list auto dials from each MR's own SIM, the order remark goes on the chemist's number, and I see calls and talk time per MR every evening on the web. Bulk WhatsApp for the new scheme went to the whole list from the call log in one go.”
MKManoj KumarRegional head · Pharma distributionPatna
“Good telecalling CRM for a small Saudi team. Arabic app, calls from our STC SIMs, and the manager report per employee is what we bought it for. Four stars because I want a desktop app for the manager too, not only the web. Support fixed our SIM selection question the same day.”
AAAhmed Al-QahtaniSales supervisor · Car rental companyRiyadh, Saudi Arabia
Reviews are collected from customers on WhatsApp and on this website.
Share yours on WhatsApp
What you can read
Call logs API response for each call
Not just a phone number and a timestamp: the API returns the record the call belongs to, so your system gets a conversation, not a row.
Direction and outcome
Incoming, outgoing, missed and rejected, so you can tell a real conversation from an attempt.
Timestamps and duration
When the call started and how long it lasted, per call, per device.
The lead behind the number
The record the call belongs to: name, status, source and custom fields.
The remark that was saved
What the caller typed after the call, from the remarks endpoint with the same token.
The follow-up that was set
Reminder date and time from the follow-ups endpoint, so your system knows what was promised.
Who made the call
called_by names the employee whose phone placed or took it, so one request covers the whole team.
Why read it from the dialer
Call logs from the dialer vs typing them into a CRM
1
The calls happen on a phone
Your CRM cannot see a SIM call. RMDialer is the dialer your users already use, so the log exists before you ask for it.
2
Nobody types call logs
Manual call entry is the first thing a busy team stops doing. Reading the log by API is the only version that stays complete.
3
Real numbers, not cloud numbers
Calls go through the SIM in the phone, so the log is of real conversations from real numbers, not a VoIP gateway.
Android CallLog.Calls vs the RMDialer call logs API
Android's call log API reads one phone. RMDialer's reads every phone on your account. Most products need both halves, and RMDialer already does the first one.
On the phone: CallLog.Calls
Needs READ_CALL_LOG, which Google Play grants only to the default phone app and a few exceptions. Returns number, type, date (milliseconds) and duration (seconds) for that one device.
// One phone: Android's own call log provider (needs READ_CALL_LOG)
val cursor = contentResolver.query(
CallLog.Calls.CONTENT_URI,
arrayOf(CallLog.Calls.NUMBER, CallLog.Calls.TYPE, CallLog.Calls.DATE, CallLog.Calls.DURATION),
Bundle().apply {
putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, arrayOf(CallLog.Calls.DATE))
putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING)
putInt(ContentResolver.QUERY_ARG_LIMIT, 50)
},
null,
)
On your server: RMDialer call logs API
No Android permission on your side. RMDialer is the default phone app on each device, so every call arrives with the employee and the lead attached.
# Every phone on the account: RMDialer call logs API (bearer token)
curl -G "$BASE_URL/api/datalake/outbound/call-logs" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "updated_since=2026-10-01T00:00:00" \
--data-urlencode "per_page=500"
Whether you are one person or one thousand, every RMDialer user gets the complete feature set. No tiers, no locked buttons, no "upgrade to unlock".
API help
Tell us what you're building
Your token is in the Web CRM under Setup, then Outbound API. Stuck on a filter, a backfill or a large team? Share your use case and an engineer will help you set it up.
Talk to an engineer
Your details arrive prefilled in WhatsApp.
Opens WhatsApp with your details prefilled. Nothing is stored on this site: your details go straight into the chat, nowhere else.
Data safety & security
Your customer list is your business. We treat it that way.
A dialer sees everything. That is exactly why every part of this app is built to keep your data yours.
Nothing uploads without your yes
Backup starts only after you sign in and give explicit consent. You review which SIMs are included and which numbers are excluded BEFORE the first upload. Logged out, nothing leaves the phone.
Personal stays personal
Mark any number as excluded: it is never uploaded, never messaged automatically, never touched. Choose per SIM what backs up, so a personal SIM can stay completely out.
Encrypted on the phone
The app database is encrypted on your device, and API details are locked with the Android Keystore, so even a lost phone does not hand over your customer list.
Encrypted in transit
Every sync runs over HTTPS to your own account. A transparent sync log shows exactly what ran and when, and you can make it sync everything again any time.
Your data is not the product
We do not sell your data or your customers' data, do not show ads, and never share contact lists with advertisers. You export to CSV any time. It is yours.
Compliant WhatsApp
Bulk and automated messages go through the official Meta WhatsApp Business API with approved templates and your own API details. We do not read your personal WhatsApp chats.
Read the full privacy policy · Every permission the app asks for is explained there, in plain language.
Questions
RMDialer FAQ
What kind of API is it?
A read-only REST API over HTTPS. Every request is a GET to /api/datalake/outbound/call-logs (or the leads, follow-ups and remarks endpoints) with a bearer token, and it returns JSON, up to 500 calls a page and 60 requests a minute. If you would rather be told than ask, the backend can also push calls to your URL by webhook, set up with our team.
Can I pull call logs for my whole team?
Yes. Every device signed in to your account reports its calls to the same backend, so you read one account and get every caller. Add employee=<user id> to narrow it to one person.
Can I push data back into the dialer?
Not through the call logs API, which is read-only. Leads go in through a lead source instead: a Google Sheet or a REST URL the app checks on a schedule, or the Web CRM's lead webhook.
Is the Android CallLog API enough on its own?
For one phone, yes: CallLog.Calls returns that phone's calls once your app holds READ_CALL_LOG. Google Play grants that only to the default phone app and a few exceptions, and it has no idea which lead or employee a call belongs to. RMDialer is the default phone app on each device, so its API gives you every phone's log with both attached.
Do we need a virtual number or a call-center setup?
No. RMDialer dials through the SIM already in the phone, so there is no IVR, no VoIP and no virtual number to buy. The API reads the log those normal calls create.
Does this work if we sell the app under our own brand?
Yes. Every brand on the platform talks to the same API and the same backend, so hooking up once covers all of them. See the whitelabel partner program.
Is this a call history API or a call records API?
Both names describe it. Each record is one call from a user's phone: number, direction, start time, duration and outcome, plus the lead, remark and follow-up attached to it. Reading them in order gives you the full call history for a person, a lead or the whole team.
How far back can the call history API read?
As far back as the calls each phone has reported to your account, and once reported they stay on the backend even if the handset is reset. Leave out from and to to backfill everything, then use updated_since for each later sync.
How do we get access?
In the RMDialer Web CRM, open Setup, then Outbound API. It shows your base URL and API token. The full parameter list and response fields are on the call log API reference page.
Is there an API to get call logs from Android phones?
Yes, when the dialer on the phone provides one. RMDialer's call logs API streams every call on each user's SIM (direction, duration, outcome, the lead, the remark, the follow-up) to your own system by REST and webhooks, and accepts leads and assignments back. Working samples are open on GitHub.
How can a manager see every call the team makes?
With a call tracking app installed as the phone app on each staff phone, every incoming, outgoing and missed call on the business SIM syncs to the owner's dashboard by itself. The manager filters by employee and date to see calls made, calls connected, missed calls, talk time and the status saved after each call, without asking anyone for a report.
How to track employee calls on Android without call recording?
Install a call tracking app that becomes the phone app on each employee's Android phone. It reads the phone's own call log, so every call on the business SIM is counted with direction, duration and outcome, and syncs to the owner's report. You get who was called, when, for how long, what status was saved and what follow-up was set, and call recording is supported too, set up with you during training.
What should a daily call report for a sales team include?
Per employee: calls dialled, calls connected, missed and rejected calls, unique numbers, total talk time, and the outcomes saved (interested, follow-up, not interested, lost). Per team: the same totals plus leads moved by status and follow-ups due tomorrow. A tracking app builds this from the phones automatically, so nobody fills a register at 7 pm.
Can I connect RMDialer to my existing CRM?
Yes, in two ways. The simplest: point the app at your CRM's lead export (Google Sheet or REST endpoint) so leads flow in and get dialled. The full way: use the dialer API so calls, statuses, remarks and WhatsApp events flow back into your CRM by webhook, with leads and assignments pushed the other way.
No trial clock on the dialer
RMDialer free plan vs paid plan
The business dialer is free forever with no account and no expiry: the keypad, contacts, caller ID, the call log and your call analytics, plus free WhatsApp sends every day. A plan adds the customer record after every call, follow-up reminders, list auto dialing, your team and WhatsApp automation.
Free forever
₹0, no expiry
Your phone app: keypad, contacts, call log and caller ID
Spam and unknown-number screening on every incoming call
Call analytics: your day counted, by outcome, and by who you called
Missed calls kept in their own list, so nothing is returned late
Sending WhatsApp from a call, free every day
Free WhatsApp sends every day with a free account: 15 a day for your first 15 days, then 3 a day. The dialer itself needs no login at all.
On a plan
₹159/user/month, yearly
The customer record: lead status and remarks saved against every call
Follow-up reminders that ring like an alarm on the day you set
Auto dialing a whole list without touching the phone
Your team: seats, assigned calling lists and per-person reports
Automatic WhatsApp after calls, bulk sending and the WhatsApp API inbox
Backup and restore, so a new phone carries on where the old one stopped
Leads arriving on their own from Google Sheets, APIs and lead portals
Try it free for 3 days: unlimited use, no credit card required. Prices are per user, exclusive of taxes.
Put the call layer in your product
Your users already make the calls. Read them by API.
₹159/user/month on yearly · every feature included · Prices are per user, exclusive of taxes.
Free forever: the business dialer never expires, and needs no account
Call recording supported · our team sets it up with you during training
On iPhone and Android. The iPhone app has every feature except the native call log.