Bulk User Export not exporting app_metadata

I’m following these docs: Bulk User Exports to try and export my users.
Everything is working and I’m getting a result - however the app_metadata fields are not included in the output:

$curl = curl_init();
        $payload = [
            "connection_id" => getenv('CONNECTION_ID'),
            "format"        => "csv",
            "limit"         => 5,
            "fields"        => [
                    ["name" => "email"], 
                    ["name" => "user_id"], 
                    ["name" => "identities[0].connection", "export_as" => 'provider'],
                    ["name" => "user_metadata.mystuff.uuid", "export_as" => 'mystuff_uuid'],
                    ["name" => "app_metadata.authorization.groups", "export_as" => 'authz_groups']
            ]
        ];
        curl_setopt_array($curl, [
            CURLOPT_URL => "https://".getenv('AUTH0_DOMAIN')."/api/v2/jobs/users-exports",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => json_encode($payload),
            CURLOPT_HTTPHEADER => [
                "authorization: {$auth0_token['token_type']} {$auth0_token['access_token']}",
                "content-type: application/json"
            ],
        ]);

My app has all the required permissions as well as read:users_app_metadata, but the data returned doesn’t include any app_metadata:

email,user_id,provider,mystuff_uuid,authz_groups
john.doe@example.com,google-oauth2|11111111111111111,google-oauth2,2d9ef16e-2c5d-4724-b4a3-94a136d4246c,

The metadata is related to the Authorization extension so it should contain an array of group names.

I’ve tried to export the entire app_metadata content using the "app_metadata": "app_metadata" format specified in the docs (which I enterpteted as ["app_metadata" => "app_metadata"]) but instead I get a
Payload validation error: 'Additional properties not allowed: app_metadata' on property fields[4] ({description}). error.

What am I doing wrong?

The sample you shared correctly included user_metadata.mystuff.uuid so as a first step that you may have already done, have you checked the exported users have app_metadata.authorization.groups set?

The reason I ask is that if this data is set by Authorization extension then technically it will only be set the first time the user completes a login after the extension rule was setup. In addition, I don’t think a csv export allows to export a full object so I would also try to export ["name" => "app_metadata"] in JSON format to see what would be the outcome.

Hi jmangelo

Thanks for responding. The JSON format worked so as you mentioned it looks like the CSV format doesn’t support objects.

2 Likes