---
title: "Download your call and SMS records"
url: "https://enfonica.com/help/developers/call-and-sms-records"
summary: "For a one-off report, filter Cloud Voice > Calls or Cloud SMS > Messages in the Console, and export a CSV. For daily files that cover one project or every project on your billing account, send us an SSH public key, and we'll set up SFTP access."
type: how-to
audience: customers
products: ["Cloud Voice", "Cloud SIP", "Cloud SMS"]
who_can_do_this: "Anyone with access to the project. SFTP is set up by Enfonica support"
---

# Download your call and SMS records

**Short answer:** For a one-off report, filter Cloud Voice > Calls or Cloud SMS > Messages in the Console, and export a CSV. For daily files that cover one project or every project on your billing account, send us an SSH public key, and we'll set up SFTP access.

**Applies to:** Cloud Voice, Cloud SIP, Cloud SMS  
**Who can do this:** Anyone with access to the project. SFTP is set up by Enfonica support

## Which method should I use?

Use a Console export for a quick report from one project, and SFTP when you need records every day or across many projects.

|   | Console export | SFTP |
| --- | --- | --- |
| Covers | The calls or messages you filter, in one project | One project, or every project on a billing account |
| When | Whenever you export | A new file each day |
| Times | Calls in UTC, SMS in your browser's time zone | UTC |
| Setup | None | Once, with our support team |
| Best for | One-off reports and checking a few calls | Reconciliation, billing your own customers, and long date ranges |

## Export calls from the Console

1. In the [Enfonica Console](https://console.enfonica.com/), open the project, and go to **Cloud Voice > Calls**.
2. Select **Filters**, and set the **Date range**. It starts at the last 30 days. If you need to, narrow it by **Phone numbers**, **State**, or **Direction**. Enter numbers in full international format, for example `+61491570156`.
3. Select **Apply filters**. The list shows the matching calls.
4. Select **Export CSV**. A file named `calls-export-` followed by today's date downloads.

The file has a column for every detail of each call. Times such as `createTime`, `answerTime`, and `endTime` are in UTC, even though they carry no time zone marker. For Australian Eastern Standard Time, add 10 hours, or 11 hours during daylight saving.

The **Date range** filter uses UTC days as well. The `answerDuration` column is in seconds.

> **Tip:** An export that takes longer than about a minute stops, and the Console shows `Export failed. Please try again.` Export a shorter date range at a time, or set up SFTP for long ranges.

## Find missed incoming calls

1. In **Cloud Voice > Calls**, select **Filters**.
2. Under **Phone numbers**, enter your number in **To**.
3. Under **State**, select **NOT ANSWERED**. Under **Direction**, select **INCOMING**.
4. Select **Apply filters**.

If your phone system plays a greeting or a menu before it rings anyone, it answers the call itself. The Console then shows the call as answered. In that case, your phone system's own reports show which calls nobody picked up.

## Export SMS from the Console

1. Open the project, and go to **Cloud SMS > Messages**.
2. Select **Filters**, set the **Date range** and any other filters, and then select **Apply filters**.
3. Select **Export**. The CSV file downloads.

The file lists each message's `ID`, `CreateTime`, `DeliverTime`, `To`, `From`, `Direction`, `Encoding`, `Status`, `Segments`, and `Price`, then any labels and the message `Body`. Times are in your browser's time zone. Each project can run one SMS export at a time.

A message stays `SENT` until the carrier's delivery receipt arrives, which can take a while. Recent messages might still change status.

## Set up daily records over SFTP

Enfonica creates call and SMS record files every day, for one project or for every project on a billing account. You collect them over SFTP, and you sign in with an SSH key instead of a password.

To set up SFTP:

1. Create an SSH key pair. On Linux or macOS, run this command. It creates a private key and a public key ending in `.pub`.

   ```
   ssh-keygen -b 2048 -t rsa
   ```

   On Windows, open PuTTYgen, select **RSA** with **2048** bits, and select **Generate**. Then save the public key and the private key.
2. Contact us with your public key, the project or billing account that the files should cover, and the files you want: full call records, two-legged call records, or SMS records. For call records, also tell us whether to leave out SIP call legs or unanswered calls.
3. We set up access and reply with your SFTP username.
4. Connect with any SFTP client, using these details and your private key.

| Setting | Value |
| --- | --- |
| Protocol | SFTP |
| Address | `files.customers.enfonica.com` |
| Port | `2022` |
| Username | The one we send you |
| Authentication | Your private key |

From a command line, the connection looks like this, with your own username:

```
sftp -P 2022 -i ~/.ssh/id_rsa your-username@files.customers.enfonica.com
```

> **Warning:** Send us only the public key, the file ending in `.pub`. Keep the private key to yourself, because anyone who has it can download your records.

## What's in the SFTP files?

Each file is a CSV with a header row, named for its date, for example `2026-10-23.csv`. Times are in UTC, in a format like `2026-10-23T01:15:42.025Z`.

| Folder | What each row is |
| --- | --- |
| `/call-records-full/` | One call leg. Suits calls that branch to several destinations. |
| `/call-records-two-legged/` | One call, with its first leg and the leg it connected to merged into one row. Suits simple forwarding and menus. |
| `/sms-records/` | One SMS, sent or received. |

A call appears in the file for the day it ended. An SMS appears in the file for the day it was created. Files are kept for 365 days and then deleted, so download any that you need to keep for longer.

For every column, see the [call records reference](https://enfonica.com/docs/platform/usage-data/call-records/).

## How do I match charges to my customers?

Use the `ProjectId` column, and keep each customer in their own project. Phone numbers aren't a reliable key. A forwarded call can show a number other than the one your customer owns, and a private caller's number is blank.

The `SkuId` column (`ParentSkuId` and `ChildSkuId` in two-legged files) identifies the rate that applied. You can download the list of SKUs from the [pricing page](https://enfonica.com/pricing).

## Check that it worked

1. Open the exported CSV in a spreadsheet. It has one row for each call or message that matched your filters.
2. For SFTP, connect, and list the folders. Every day, a new file appears in each folder that you asked for.

## Related

- [Find a call and read its SIP trace](https://enfonica.com/help/call-troubleshooting/find-call-sip-trace.md)
- [Understand your Enfonica invoice](https://enfonica.com/help/billing/understand-your-invoice.md)
- [Why is my SMS billed as more than one message?](https://enfonica.com/help/sms/message-segments.md)
- [Accessing usage data over SFTP (docs)](https://enfonica.com/docs/platform/usage-data/sftp/)
- [Call records (CDRs) (docs)](https://enfonica.com/docs/platform/usage-data/call-records/)
- [SMS records (docs)](https://enfonica.com/docs/platform/usage-data/sms-records/)

---

Web version: https://enfonica.com/help/developers/call-and-sms-records
