Skip to content
AskElephant Knowledge Base home
AskElephant Knowledge Base home

How to Export Your AskElephant Data

Introduction

AskElephant lets you export your data — contacts, companies, users, tags, and engagements — so you can back it up, move it to another tool, or keep a separate system in sync.

There are two ways to think about exports:

  1. A one-time full export — pull everything out at once.

  2. An ongoing sync — pull only what's changed since your last export, on a recurring schedule.

This guide walks through both.

Access our API docs

Use our developer documentation for the full guide and easiest access to endpoints, auth, and examples: https://docs.askelephant.ai/welcome

Before you begin

You'll need a couple of things:

  1. An API key to authenticate your requests. API keys look like this:

    1. sk-apik_<id>.<secret>

    2. You can generate one from your AskElephant account settings. Keep it private — anyone with this key can access your data.

  2. A terminal or API client to run the commands. You can use Terminal (Mac), PowerShell (Windows), or a free tool like Postman. Paste the commands directly and they'll return your data.

Option 1: One-time full export

Use this when you want to pull all records of a given type for the first time.

How it works: AskElephant sends your data back in pages of up to 100 records at a time, sorted from oldest to newest. You keep requesting the next page until there are no more records left.

Here’s an overview of the process:

  1. Make your first request for the data type you want (e.g., contacts).

  2. AskElephant returns the first batch of records, plus a cursor — a bookmark that tells the system where you left off.

  3. Use that cursor to request the next batch.

  4. Repeat until AskElephant tells you there are no more records (has_more will be false in the response).

  5. Save the timestamp of the most recently updated record. You'll use this as your starting point if you ever want to sync again later.

We’ll guide you through the process using engagements as our data type example:

Step 1: Make a Request

Use the code below in your

  • Replace sk-apik_<id>.<secret> with your API key.

curl --request GET \ --url 'https://app.askelephant.ai/api/v2/engagements?limit=100&order_by=updated_at:asc&expand=transcript' \ --header 'Authorization: sk-apik_<id>.<secret>' \ --header 'Accept: application/json'

Step 2: Export your engagements

Start with the engagements endpoint. This gives you the list of meetings and calls, and you can include the plain text transcript by requesting expand=transcript.

  • Replace sk-apik_<id>.<secret> with your API key.

Requests will return results at up to 100 per page. To continue through your results use:

To format any API request add the following formatting rules to the end of your request:

| jq .

Example:

curl --request GET \ --url 'https://app.askelephant.ai/api/v2/engagements?limit=100&order_by=updated_at:asc&expand=transcript' \ --header 'Authorization: sk-apik_<id>.<secret>' \ --header 'Accept: application/json' | jq .

Step 3: Pull detailed transcript timelines & speaker data

For any engagement where you want speaker-by-speaker timestamps, call the transcript timeline endpoint using the engagement ID.

  • Replace ngmt_123 with the ID of the engagement you’d like to pull.

  • Replace sk-apik_<id>.<secret> with your API key.

curl --request GET \ --url 'https://app.askelephant.ai/api/v2/engagements/ngmt_123/transcript_timeline' \ --header 'Authorization: sk-apik_<id>.<secret>' \ --header 'Accept: application/json'

Step 4: Save a checkpoint for future syncs

Each record in your export includes a timestamp called updated_at, which tells you when that record was last changed. When your export finishes, take note of the updated_at value from the last record you received — this is your checkpoint.

Example of what to save:

{ "resource": "engagements", "updated_at": "2026-03-04T18:25:00Z" }

You don't need to do anything fancy with it; just write it down somewhere you'll remember, whether that's a note, a spreadsheet, or a text file. The next time you want to sync, plug that timestamp into your command and AskElephant will only send back records that changed after that point. This way you're picking up right where you left off instead of re-downloading everything.

curl --request GET \\ --url '<https://app.askelephant.ai/api/v2/engagements?limit=100&filter[updated_at][gte]=2026-03-04T18:25:00Z&order_by=updated_at:asc>' \\ --header 'Authorization: sk-apik_<id>.<secret>' \\ --header 'Accept: application/json'

Option 2: Ongoing sync (only what's changed)

Once you've done a full export, you probably don't want to re-download everything every time. Instead, you can ask AskElephant for only the records that have been created or updated since your last export.

How it works: You tell AskElephant "give me everything that changed after this date," and it sends back only matching records.

Step by step:

  1. Start with the timestamp you saved at the end of your last export.

  2. Request records updated on or after that timestamp.

  3. Page through the results the same way as a full export.

  4. When you receive a record you've already saved, update it with the new version (this is normal, a small amount of overlap is expected and keeps things reliable).

  5. Save the new latest timestamp for next time.

Example request:

curl --request GET \\ --url '<https://app.askelephant.ai/api/v2/contacts?limit=100&filter[updated_at][gte]=2026-03-01T00:00:00.000Z&order_by=updated_at:asc>' \\ --header 'Authorization: sk-apik_<id>.<secret>' \\ --header 'Accept: application/json'

The gte in the filter stands for "greater than or equal to," meaning you'll get records updated at or after the date you specify.

What is included in the exports?

  • Public calls that your workspace API credentials can access are included in your self-serve export.

  • Private or restricted calls may require additional permissions or an AskElephant-assisted export path.

  • If your workspace has already been deactivated, AskElephant can help you complete export through a temporary reactivation window.

FAQ

Which endpoint should I start with?

Start with GET /api/v2/engagements. It is the easiest way to list the calls and meetings in your workspace before pulling any deeper transcript detail.

Do I need both transcript and transcript_timeline?

Use expand=transcript when you want plain text quickly. Use transcript_timeline when you need richer speaker-by-speaker timestamps and structure.

Will private calls be included?

Your export includes the records your workspace API access is authorized to read. If you need additional private or restricted records, contact your CSM or AskElephant Support.

What if my workspace is already deactivated?

AskElephant can help you complete export through a temporary reactivation process. Reach out to your CSM or Support to get started.

Where do I go if I get stuck?

Start with the public docs at https://docs.askelephant.ai/welcome and https://docs

Need Additional Help?

If you have questions or need further assistance, the AskElephant support team is here to help!

You can reach our support team in several ways:

  • click the chat button in the bottom right corner of your screen,

  • email us at [email protected],

  • or use @askelephant support in your dedicated Slack channel.

We're committed to getting you the answers you need as quickly as possible.