> For the complete documentation index, see [llms.txt](https://safary-1.gitbook.io/safary-doc-2.0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://safary-1.gitbook.io/safary-doc-2.0/connect-data/integrations/csv-import.md).

# CSV Import

{% @arcade/embed flowId="rf4bwht32HXDIZc66QtH" url="<https://app.arcade.software/share/rf4bwht32HXDIZc66QtH>" %}

## Summary

1. [Data Format](#data-format)
2. [CSV File Example](#csv-file-example)
3. [FAQ](#faq)

## Data Format

This upload expects a **CSV** file with the following fields, <mark style="color:red;">**separated by comma**</mark>.

{% hint style="danger" %}
Note that you need to have at least one of the fields `wallet_address` or `twitter_link` present in the CSV.
{% endhint %}

<table><thead><tr><th width="159">FIELD</th><th width="83">TYPE</th><th width="144.21484375">USE</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td>wallet_address</td><td>string</td><td><mark style="color:red;"><strong>Required</strong></mark> *<br>*Optional when <code>twitter_link</code> is set</td><td>Wallet address to be imported. Example: "0x00000011111111010101001111111111"</td></tr><tr><td>username</td><td>string</td><td>Optional</td><td>Name to be associated with the User that has the wallet address.</td></tr><tr><td>twitter_link</td><td>string</td><td><mark style="color:red;"><strong>Required</strong></mark> *<br>*Optional when <code>wallet_address</code> is set</td><td>URL of the twitter profile of the User that has the wallet address. Example: "<a href="https://x.com/elonmusk">https://x.com/elonmusk</a>"<br><strong>Must start with "http://" or "https://".</strong></td></tr><tr><td>email</td><td>string</td><td>Optional</td><td>E-mail of the User that has the wallet address.<br><strong>Must be a valid e-mail.</strong></td></tr></tbody></table>

Note that the first line of the CSV file to be uploaded must contain the names of the fields.&#x20;

* For example, if you want to only upload wallet addresses and twitter profiles, the first line would be: "wallet\_address,twitter\_link".

Finally, note that when Safary processes the uploaded wallets, they either:

* Become new Profiles (if they have never been captured by Safary), appearing in the "Imported" tab of the profiles dashboard; or
* Are associated with existing Profiles, appearing in the "Imported" tab and also in the "Website users" tab

### CSV File Example

Here's an example of a CSV file that would be uploaded successfully. Note that you do not need to add all the fields, only either `wallet_address` or `twitter_link` should exist.

{% file src="/files/TxlMM9SzZgUCmwi7gXMg" %}
Example of CSV file with all fields that can be uploaded&#x20;
{% endfile %}

***

## FAQ&#x20;

<details>

<summary>Do I need to integrate Safary SDK first before importing data? </summary>

No. The CSV import is an independent process.

</details>

<details>

<summary>How much data can I import? </summary>

You can easily import up to 100k data points in a single CSV.&#x20;

If your volume is larger, please contact us.

</details>

<details>

<summary>How long does the data takes to be imported?</summary>

It can takes up to a few hours depending on the volume of data you want to import.

</details>

<details>

<summary>Why is the number of profiles is different than the number of rows in my file?</summary>

If Safary detected that some rows belong to the same User, we will merge the information.&#x20;

For example, if you imported two rows with wallets that were connected in the same session in your website, they belong to a single profile.

Therefore, you might see less profiles than rows you imported.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://safary-1.gitbook.io/safary-doc-2.0/connect-data/integrations/csv-import.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
