1import { ApifyClient } from 'apify-client';
2
3
4
5const client = new ApifyClient({
6 token: '<YOUR_API_TOKEN>',
7});
8
9
10const input = {
11 "source": {
12 "type": "inlineCsv",
13 "delimiter": ",",
14 "csv": "Customer Email,Full Name,Signup Date,Status\n ALICE@EXAMPLE.COM ,alice smith,31/01/2026, active \nbad-address,Bob Jones,2026-02-15,pending"
15 },
16 "columns": [
17 {
18 "target": "email",
19 "type": "email",
20 "sources": [
21 "Customer Email",
22 "Email"
23 ],
24 "required": true,
25 "trim": true,
26 "case": "lower"
27 },
28 {
29 "target": "name",
30 "type": "string",
31 "sources": [
32 "Full Name"
33 ],
34 "required": true,
35 "trim": true,
36 "case": "title"
37 },
38 {
39 "target": "signup_date",
40 "type": "date",
41 "sources": [
42 "Signup Date"
43 ],
44 "required": true,
45 "dateFormats": [
46 "DD/MM/YYYY",
47 "YYYY-MM-DD"
48 ],
49 "outputDateFormat": "YYYY-MM-DD"
50 },
51 {
52 "target": "status",
53 "type": "string",
54 "sources": [
55 "Status"
56 ],
57 "required": true,
58 "trim": true,
59 "case": "lower",
60 "allowedValues": [
61 "active",
62 "inactive"
63 ]
64 }
65 ],
66 "deduplicationKeys": [
67 "email"
68 ],
69 "unknownColumns": "drop"
70};
71
72
73const run = await client.actor("first_watch/csv-data-cleaning-and-normalization").call(input);
74
75
76console.log('Results from dataset');
77console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
78const { items } = await client.dataset(run.defaultDatasetId).listItems();
79items.forEach((item) => {
80 console.dir(item);
81});
82
83