Export Users using the User Export API
Export users from your project into a CSV or JSON file
The Export User API offers a means for exporting user data such as user ID, email, phone number, etc from your Authgear project into a CSV or ndjson file.
In this guide, you'll learn how to use the User Export API.
User Export API
The User Export API allows developers to bulk export users into a file.
The export process is asynchronous. That is, the process runs in the background. Hence, you will need to initiate an export task in one endpoint call and then, make an additional call to another endpoint to get the status of the export task.
To make HTTP(S) requests to Export User API endpoints, your application must be authenticated using an Admin API JWT token in the Bearer Authorization header. The API will return a "403 Forbidden" error if an invalid JWT is used.
The following are the two endpoints for the User Export API:
Initiate Export Task
POST
/_api/admin/users/export
Use this endpoint to create a new user export task.
Headers
Name | Value |
---|---|
Content-Type |
|
Authorization |
|
Host |
|
Body
The Initiate Export endpoint accepts JSON input via an HTTP(S) request body. The following is an example of the input:
The
format
field is where you specify the format of the export file. The value can becsv
orndjson
.csv
: use this field whenformat
is set tocsv
. The value is an object with afields
property.csv.fields
: you can use this field to list all the user attributes you want to include as fields in the CSV file. The value should be an array and each item in the array is an object with apointer
and an optionalfield_name
property that describe a user attribute.
Check Status
GET
/_api/admin/users/export/{Task ID}
Use this endpoint to query the status of an existing export task. Replace {Task ID}
with the task id
returned in the response body of the initiate export endpoint.
Headers
Name | Value |
---|---|
Authorization |
|
Host |
|
See the User Export API Reference for more details about the endpoints, inputs, and pointers.
Example: Using the User Export API
The following example shows how to use the User Export API in a Node.js application.
Step 1: Get Admin API JWT
First, you need to get the Admin API JWT that will be used to authenticate requests to the endpoints.
To do that, install JsonWebToken (a Node package for generating JWT) by running the following command:
Now, create a generateJWT()
function in your Express app to generate the JWT:
See Admin API Authentication for a more detailed guide on how to get your key ID, and private key and generate Admin API JWT using different programming languages.
Step 2: Initiate User Export Task
Make an HTTP(S) POST request to the initiate export endpoint to initiate a new user export task.
To do that, first, install the node-fetch package in your app using this command:
Then add the following code to your application:
The response to the HTTP(S) request in this step should look like this:
Response
id
: the value of id is the task ID that can be used in the check status endpoint to query the task and get the download URL for the export file.
Step 3: Check the Status of a User Export Task
In this step, we'll check the status of the export task we initiated by making an HTTP(S) request to the Check Status endpoint (/_api/admin/users/export/{Task ID}
). Replace {Task ID}
in the URL with the task ID for the export task in the previous task.
Add the following route to your app to check the status of an export task using the task ID:
When the status task is completed, the HTTP(S) response body will look like this:
Response
download_url
: open the URL in the value ofdownload_url
to download the exported users file.
Note: The result from a completed export task will expire after 24 hours. Hence, after 24 hours, you can no longer use the task ID associated with the task to generate a new download link.
Last updated