Bulk Import through APIs using CSV Files

This document describes the step-by-step process of bulk importing Items, Bundles, and Attributes through APIs.

Note: You also have the option to import them using our Copilot UI, instructions for which are available here.

Bulk Import Attributes

1. Get Template for CSV File Upload

This endpoint gives you the Header columns to be included in the CSV file to bulk import Attributes.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/template/attribute' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

2. GET S3 bucket URL to Upload File

Use this endpoint to get url for AWS S3 bucket to which you must upload your CSV file. The response also includes fileId, which is required to get status of file import.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/upload-url/attribute' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}
--header 'Content-Type: application/json' \
--data-raw '{
"fileName": "item-attributes.csv"
}'

Example Response for above API request

{
    "fileId": "63f78b400f6ed30008e709f9",
    "url": "https://greatwall-sandbox-sandbox-bulk-import-pim.s3.amazonaws.com/attribute/60ad7e9d858eb50007abbb19/sandbox/1677167424637-item-attributes.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIASSWWDZ46BXAHWTTU%2F20230223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230223T155024Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFMaCXVzLWVhc3QtMSJGMEQCIAi%2Bp%2BFLCUivvhFXI3L8l7rJkS3RoSCL8ukcVAhS4sOxAiBHsRaVN%2Fk%2FPiQRmWVaDqaWnU7mfP8JIau%2F6WCQ0TLHbir8Awjs%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDE3NzYxNjQ0MTE0OCIMlw%2BTGl1qXP7QS6FrKtADDvKEkQaBn5JyzUh5k56gLnsuMElSHORnKldkOqvknm%2FMYv5iIWZGFpZzsyk%2B30Mb%2FEC7oFhfVLSz0Rrd32FH21MhwwKzTSkBgHZh8c4a86xopHyFBa20aHsvgkKUXKTEVT1xq8b6MQZwF6PdkAvlMHcoXVRIIW0Pi3cjLjZD8on9P4u%2FD%2Ff5ELmU6fShRXizPuhVDGWD8z6VPqNUMHu7ZCj0CvjZTRvKFDoYJ5HdUdFFByPaHWPOQko2qu98yKN74g0S2gE54%2F%2F5hHRZ3DrvMNxSNUh%2Fu%2BsEqei6zMa4wG2HKZ4s9Lgq0NaNv88aeFJSi3GgWK4TkY%2F1o8ho9Ow%2BKl2wPazX4jVe3y8UIMbpG7bAKtBrEdwujnsrobFYAOSIKhuwisdTdd9Kt%2BdqKK031eSea%2FesT9bEnxw1CBitji7OwBtBifkjwtTq0Tv4aWcZ4%2FO%2FKQaa033CLacR%2Frx2xAeELFj0pU1rKZXt23GM%2BQWxJpMeQ%2B%2Fb1NesWU0vhhlUm7ETudVbgRQSy4rdVrKuaWMUN%2FS3jXzNUBldLxxYr4126rjmfdp95UsmpYjdDSPHhks8YxrOIrvOC7KchPeyYmzuaohEBkGcJ905cIOask0w1oDdnwY6pgHmUvONu3w%2BtdKwhY0jKLTIsqVBjaSpwp9Pu4OG%2BTc7lCO8HpYbMTdFxyloWMHIaQf4mBZEU%2BGc1SXwhNLvZ5JvBxklnC6DTmpQtqzOwq%2F2Kegv88ivaw2AIkELqtKyLgEd%2F%2BFxOX9C%2BCMELMhQpXJfnYupQtSXJYR%2B4mZcE2fvX25X1pBfaw87BBoC0mdYZ1r3io510GlpBDTZX%2BoP7X0QaZlP4Smn&X-Amz-Signature=05a1bf8f36465f60fda26203e03c0495c5dd3f37cc4d3012f8e1f0fa62d5ad20&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ad7e9d858eb50007abbb19&x-amz-meta-channel=12&x-amz-meta-fileid=63f78b400f6ed30008e709f9&x-amz-meta-filename=item-attributes.csv&x-amz-meta-prefix=attribute&x-amz-meta-stage=sandbox",
    "key": "attribute/60ad7e9d858eb50007abbb19/sandbox/1677167424637-item-attributes.csv"
}

3. Upload CSV File to Bulk Import Attributes

Use this endpoint to attach your CSV file (as binary file) to the url you got in the response of Get S3 bucket URL endpoint.

curl --location --request PUT 'https://greatwall-stg02-bulk-import-pim.s3.amazonaws.com/item/60ac19ef893ab1000864b771/stg02/1650446551945-test_s3_import.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAMIB6WQGP%2F20220420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220420T092234Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFcaCXVzLWVhc3QtMSJGMEQCIEAuZzeGtYngoGn7f8pZg8EKD6ojuUdRjPaoReD1jyXgAiBNz9Lzs6nEd%2FCjRay96pQbPZS5ANMvKz2x4QhvjymcbyrvAwgQEAIaDDc1MjMxNDA3MDI3MiIMEB9T3tII8hgS3gZEKswDLCxImfGa3oIA%2FJgGgnwrQ%2B%2BycR2s2lK4RasblL1dpYgoJ7nCbRAmvK%2FEKiUijr8AsTn45gvCMYNPx85HpEwagvVPcLWon6%2FK%2BKzX9OzyBMtYhGE1T7xkkQFIukvnkqTk9O11Nze4jeoqgSZz8P9ZsJtwO2OB3SzlrI%2FbMmqJVndo9gi7cxGkfWqrYkAJZDCz2Jte5BylOffzQGAzt%2BvJb8Mp064jMtrIg2KoG0GP%2BB1mxgP9tTFl1IAp5lfCVObE7Mp9njlRHe7en52WUb4m4abZ1r8h5rpyoLCqcadvRkzaF%2FEIGb2cntOtdwzpdXM6tAfE4klFYbU%2FXhjzgMyKWrDrU%2F9SPO9ADFvH2YOXLo%2FQZwVWktbEvN%2BiOjEUnp7xMs2XG72LL9bJfFQkucfsUQBi8Gqn9gHaC5UKOxTEl7vlseznQQne2OrguDaZjzBa8PBDPQBnlW185F0qWw8mbVERcS1lFFHUSI74hqhBL0H3P7DZ%2FMmlviAaHSHax0RvwLL%2Bv%2BML07sdiIthpnF5LKyt8d3k6NmIakEySxAjBuY9qM%2By%2FTfpMPsQkel%2FkFe7rzpORt48A1eDnN3jZYQnmspg8wjEVfMgC7i6IDCy2f6SBjqmARtbCf%2Bw%2FCZJOZjVzUCxjsTpBT%2FMOcY6OMWS2q0arjzBOX9zVUzltD63KTsMjjih6mfa7Vv9piSwg%2Bqg4kBT6mvOTEgUksSJOw4%2FSyQaR3FAvXdCZkvd97xOMCgXWOotpvvYy9OlRQDalW5PjF5hh3hR8AEh%2FJ88kGeszOMNRUKzrut4drS02V3irAjYEaF5NyFgPLiwxCHwFblF3nit3AKeywL3D%2BA%3D&X-Amz-Signature=e48e53cf183596b9c68dcda85bdb26d145c05f613b32322285a23a150db3163d&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ac19ef893ab1000864b771&x-amz-meta-channel=12&x-amz-meta-fileid=625fd0da08d45e0009f583e3&x-amz-meta-filename=test_s3_import.csv&x-amz-meta-nodeid=6256a1d7e70fcb5135e381f0&x-amz-meta-prefix=item&x-amz-meta-stage=stg02' \
--header 'Content-Type: text/csv' \
--data-binary '@/Desktop/item-attributes.csv'

4. Get Upload Status

Once file upload is completed, use this endpoint to check the upload status by passing the query parameter fileId, which you got in the response of Get S3 bucket URL endpoint.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/file/{fileId}/status' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

5. Get Item Attribute Import History

Use this endpoint to view the history of all Attribute imports along with their file status.

curl --location --request POST 'https://<env>.copilot.fabric.inc/api-product/v1/product/file/attribute/search' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "page": 1,
    "size": 10
}'

Bulk Import Items

1. Get Template for CSV File

This endpoint gives you the Header columns to be included in the CSV file, along with the hierarchy name, to bulk import Items.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/template/{accountId}/{nodeId}' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

2. Get S3 bucket URL

Use this endpoint to get url for AWS S3 bucket to which you need to upload your CSV file. The response also includes fileId, which is required to get status of the file import.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/upload-url' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}
--header 'Content-Type: application/json' \
--data-raw '{
    "nodeId": "60ad7e9d858eb50007abbb19",
    "fileName": "Import_Test_sandbox_s3.csv"
}'

Example Response for above API request

{
    "fileId": "63f78be90f6ed30008e709fc",
    "url": "https://greatwall-sandbox-sandbox-bulk-import-pim.s3.amazonaws.com/item/60ad7e9d858eb50007abbb19/sandbox/1677167593775-Import_Test_sandbox_s3.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIASSWWDZ46GMQUM2WV%2F20230223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230223T155314Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFQaCXVzLWVhc3QtMSJIMEYCIQDoLPY9u84GJsygAsmKxttW3rJbwXe1cY%2Buk73tITGnCQIhANRYdyng2i4whjEh5pyWNnZwtEsAgz3KBXdP%2BoiLRPrWKvwDCO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQARoMMTc3NjE2NDQxMTQ4IgxAj8AuEzLV%2BKZtyCQq0AN9EfQs8J%2Ftjm5zQR%2FV%2FH10oh%2FC1Q6UZMBTB69%2FHnXMgrEmcYX1PIHGZEL3vkfO3In%2Fig%2FLZQ9eT8odcHxS872s8XUwIBvIAa30abSdSz0REt0lCH5GUFCAVmqLzAS2wsVwivGpumITUp48M0tZb4MmpkJS54boIavZQyXo%2FA5GExqbQFHkrh4FQ0AACc24F%2FDozyaEBPsO33a0WGIVUTC8ZsDkic%2BHOnfGfJK%2FAoyaHViv8D5HXqAThC1uynwcWb%2F3NEghpSY2gMyEnp67S49ZJLcOaN08E%2FHUA3kSSDWZu5JDSRhj%2F7ZVBAaS89KO3KusMrk852siwrgatX%2BujrUEqBl7Y%2BWsNv7wOULWzTy1y4HJUEs6HRCrd05P3ss6QJ1WYNf2Xp1F%2Fdn%2BOVznZvOmQwoBr%2BPpOfYVflTEloTPpdb2HRRlrj40swJMGjB7Zhrw7Wl9n5qZybrfZG5K2p3nqRpbPHxBNg%2BOtj9FnTmJsA1mK2MAgxe77jYclJifc6dAYkCokBfZO67pB3kmstk0LUgyZUFx5%2F%2BURmXxoXaxjPYunCaahOz6tyeSlel%2B2XdV8CBVPG5SNruILCwp%2FhRBmaG%2B0yfQc%2FMZ2xWHiL8RkDC1qt2fBjqkAUDiK5Z8OfhLlDBjiLWouICpcUsnb8uJ5DHCsu1X8PrOFkuFvBOrrE3efV6dAJrO7keWm2m5zIiihTStoAlgSUBeTi8pNEKHOrpR1mLerU0P0q6QzdW1qsFdenh95NiG0zvLvY16WCdo0b01MNGVruQTeFYQHqXs%2BBY0ebDu7fq03m1CKOMV49zkMEzKa1sGrOKoI9IzoO50c%2FhcTcuyl5EfqEDZ&X-Amz-Signature=752133ed4a493b71c2cb1d66ac2a7a9d88e1e42fbb6e1e3cfd97becf26e288b9&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ad7e9d858eb50007abbb19&x-amz-meta-channel=12&x-amz-meta-fileid=63f78be90f6ed30008e709fc&x-amz-meta-filename=Import_Test_sandbox_s3.csv&x-amz-meta-nodeid=60ad7e9d858eb50007abbb19&x-amz-meta-prefix=item&x-amz-meta-stage=sandbox",
    "key": "item/60ad7e9d858eb50007abbb19/sandbox/1677167593775-Import_Test_sandbox_s3.csv"
}

3. Upload CSV file to Bulk Import Items

Use this endpoint to attach your CSV file (as binary file) to the url you got in the response of Get S3 bucket URL endpoint.

curl --location --request PUT 'https://greatwall-sandbox-sandbox-bulk-import-pim.s3.amazonaws.com/item/60ad7e9d858eb50007abbb19/sandbox/1677167593775-Import_Test_sandbox_s3.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIASSWWDZ46GMQUM2WV%2F20230223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230223T155314Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFQaCXVzLWVhc3QtMSJIMEYCIQDoLPY9u84GJsygAsmKxttW3rJbwXe1cY%2Buk73tITGnCQIhANRYdyng2i4whjEh5pyWNnZwtEsAgz3KBXdP%2BoiLRPrWKvwDCO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQARoMMTc3NjE2NDQxMTQ4IgxAj8AuEzLV%2BKZtyCQq0AN9EfQs8J%2Ftjm5zQR%2FV%2FH10oh%2FC1Q6UZMBTB69%2FHnXMgrEmcYX1PIHGZEL3vkfO3In%2Fig%2FLZQ9eT8odcHxS872s8XUwIBvIAa30abSdSz0REt0lCH5GUFCAVmqLzAS2wsVwivGpumITUp48M0tZb4MmpkJS54boIavZQyXo%2FA5GExqbQFHkrh4FQ0AACc24F%2FDozyaEBPsO33a0WGIVUTC8ZsDkic%2BHOnfGfJK%2FAoyaHViv8D5HXqAThC1uynwcWb%2F3NEghpSY2gMyEnp67S49ZJLcOaN08E%2FHUA3kSSDWZu5JDSRhj%2F7ZVBAaS89KO3KusMrk852siwrgatX%2BujrUEqBl7Y%2BWsNv7wOULWzTy1y4HJUEs6HRCrd05P3ss6QJ1WYNf2Xp1F%2Fdn%2BOVznZvOmQwoBr%2BPpOfYVflTEloTPpdb2HRRlrj40swJMGjB7Zhrw7Wl9n5qZybrfZG5K2p3nqRpbPHxBNg%2BOtj9FnTmJsA1mK2MAgxe77jYclJifc6dAYkCokBfZO67pB3kmstk0LUgyZUFx5%2F%2BURmXxoXaxjPYunCaahOz6tyeSlel%2B2XdV8CBVPG5SNruILCwp%2FhRBmaG%2B0yfQc%2FMZ2xWHiL8RkDC1qt2fBjqkAUDiK5Z8OfhLlDBjiLWouICpcUsnb8uJ5DHCsu1X8PrOFkuFvBOrrE3efV6dAJrO7keWm2m5zIiihTStoAlgSUBeTi8pNEKHOrpR1mLerU0P0q6QzdW1qsFdenh95NiG0zvLvY16WCdo0b01MNGVruQTeFYQHqXs%2BBY0ebDu7fq03m1CKOMV49zkMEzKa1sGrOKoI9IzoO50c%2FhcTcuyl5EfqEDZ&X-Amz-Signature=752133ed4a493b71c2cb1d66ac2a7a9d88e1e42fbb6e1e3cfd97becf26e288b9&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ad7e9d858eb50007abbb19&x-amz-meta-channel=12&x-amz-meta-fileid=63f78be90f6ed30008e709fc&x-amz-meta-filename=Import_Test_sandbox_s3.csv&x-amz-meta-nodeid=60ad7e9d858eb50007abbb19&x-amz-meta-prefix=item&x-amz-meta-stage=sandbox' \
--header 'Content-Type: text/csv' \
--data-binary '@/Desktop/Import_Test_sandbox_s3.csv'

4. Get Upload Status

Once file upload is completed, use this endpoint to check the upload status by passing the query parameter fileId, which you got in the response of Get S3 bucket URL endpoint.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/file/{fileId}/status' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

5. Get Item Import History

Use this endpoint to view history of all Item imports and their statuses.

curl --location --request POST 'https://<env>.copilot.fabric.inc/api-product/v1/product/file/search' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "page": 1,
    "size": 10
}'

Bulk Import Bundles

1. Get Template for CSV File

This endpoint gives you the Header columns to be included in the CSV file, along with the hierarchy name, to bulk import Bundles.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/template/bundle/{accountId}/{nodeId}' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

2. GET S3 bucket URL

Use this endpoint to get url for AWS S3 bucket to which you need to upload your CSV file. The response also includes fileId, which is required to get status of the file import.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/upload-url/bundle' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}
--header 'Content-Type: application/json' \
--data-raw '{
    "nodeId": "62b2a84d2b69666aad40efd4",
    "fileName": "bundleImport.csv"
}'

Example Response for above API request

{
    "fileId": "63f78cb10f6ed30008e70a02",
    "url": "https://greatwall-sandbox-sandbox-bulk-import-pim.s3.amazonaws.com/item-bundles/60ad7e9d858eb50007abbb19/sandbox/1677167793691-bundleImport.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIASSWWDZ46H5JIITM3%2F20230223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230223T155633Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFYaCXVzLWVhc3QtMSJGMEQCIGDZ8k%2B6yaUs4YiOizK9J6QBuqiOAhK5bZStB4d%2FeE5LAiBI%2BW7oiBYvaV%2B2LBhVJ%2BRR9JZ4F2u%2F8k9vS3iqKDnDqSr8Awjv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDE3NzYxNjQ0MTE0OCIMGD1RbF%2Bm8yYdGZ6oKtADsPtRqkoX0%2BJ2AuqtMHbsoKAlmJadRKPHfchr9U3ctGKdmL4d2Fr5tVrQa2jV%2BZ%2BqZWPdwU6S8HJUj7xCy9HuS%2F%2BK%2FGwyI1JEv4CE5%2Blju%2FT5zpZh0lxxl7h2iaXtHP9uKDE214MTIx9dtszEsriGre9JjocptDpfAq6jebQM4uTaiVcNJR7y3a1NS1CkiLazWi66jVxZHGjOcVTCe7OBuaIv3YOLCRBafiXXWAW1vIEQg1GPWmlSxK4XGkp5T%2BYQPmzcFM4HDYRkOqPWpjcqYUc2LvHBMlmRJ7X%2FpCVVhsHf1wa%2FQlpp0mkZCqixcNkAJ6Ctziz6IqIVWXYvu6isVhdSrc1bF9QEyMI8XXGjjeilSJvAlkO0RQnGUXeTILRU7LHCZ0tTy3E9vyIp1x%2B1rM2rDQXv77vIYCFkhUK2J9QWOmTnScEJkqYMO%2BmN3GwbNkemarUSnxK1zGRh6ZQ5ER3Ci%2BZ9J%2BW3RU3D60H3v5fteJOQ5K0mb%2BDrPRjp3qHKB%2BZdiP%2BFI4Q%2FDVQq7SSkuSznaOi%2FdTcO1s0KwaArb%2BjPoaUIFx%2BPA%2FQhXfeHVeAe5ugFU9MPBcYQpaGU5vmeWFUTWR%2BH8JNBBvSMoAQ81qAwg9zdnwY6pgH23jqbbl%2B8Yb7YhvK9u5wZu7%2FGw6u%2BpIyB03xcu9RpM1iWGoWt35YIA6cI1IyOD9y1LQ3r36sP%2BnUImTiTXOY1iNB%2BSatryjzHRd8gtrCQem16UkSrHpFavl93IXXqG3md5ZIMdvKHr6l7cBFpxJpyyQoo6vwgqyXA3FPT%2Fx%2FF5rih6hPc2vkDsHnCY1DzuPhCbPwI3%2FJuF49%2FWVQ%2Fv4TxaCtznWDM&X-Amz-Signature=0024e66f9bf7b2c3f921c7e11271a0115a473c834de6094965b7b2e0ea629195&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ad7e9d858eb50007abbb19&x-amz-meta-channel=12&x-amz-meta-fileid=63f78cb10f6ed30008e70a02&x-amz-meta-filename=bundleImport.csv&x-amz-meta-nodeid=62b2a84d2b69666aad40efd4&x-amz-meta-prefix=item-bundles&x-amz-meta-stage=sandbox",
    "key": "item-bundles/60ad7e9d858eb50007abbb19/sandbox/1677167793691-bundleImport.csv"
}

3. Upload CSV file to Bulk Import Bundles

Using this endpoint, you can attach your CSV file (as a binary file) to the URL you got in the response of Get S3 bucket URL endpoint.

curl --location --request PUT 'https://greatwall-stg02-bulk-import-pim.s3.amazonaws.com/item/60ac19ef893ab1000864b771/stg02/1650446551945-test_s3_import.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAMIB6WQGP%2F20220420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220420T092234Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFcaCXVzLWVhc3QtMSJGMEQCIEAuZzeGtYngoGn7f8pZg8EKD6ojuUdRjPaoReD1jyXgAiBNz9Lzs6nEd%2FCjRay96pQbPZS5ANMvKz2x4QhvjymcbyrvAwgQEAIaDDc1MjMxNDA3MDI3MiIMEB9T3tII8hgS3gZEKswDLCxImfGa3oIA%2FJgGgnwrQ%2B%2BycR2s2lK4RasblL1dpYgoJ7nCbRAmvK%2FEKiUijr8AsTn45gvCMYNPx85HpEwagvVPcLWon6%2FK%2BKzX9OzyBMtYhGE1T7xkkQFIukvnkqTk9O11Nze4jeoqgSZz8P9ZsJtwO2OB3SzlrI%2FbMmqJVndo9gi7cxGkfWqrYkAJZDCz2Jte5BylOffzQGAzt%2BvJb8Mp064jMtrIg2KoG0GP%2BB1mxgP9tTFl1IAp5lfCVObE7Mp9njlRHe7en52WUb4m4abZ1r8h5rpyoLCqcadvRkzaF%2FEIGb2cntOtdwzpdXM6tAfE4klFYbU%2FXhjzgMyKWrDrU%2F9SPO9ADFvH2YOXLo%2FQZwVWktbEvN%2BiOjEUnp7xMs2XG72LL9bJfFQkucfsUQBi8Gqn9gHaC5UKOxTEl7vlseznQQne2OrguDaZjzBa8PBDPQBnlW185F0qWw8mbVERcS1lFFHUSI74hqhBL0H3P7DZ%2FMmlviAaHSHax0RvwLL%2Bv%2BML07sdiIthpnF5LKyt8d3k6NmIakEySxAjBuY9qM%2By%2FTfpMPsQkel%2FkFe7rzpORt48A1eDnN3jZYQnmspg8wjEVfMgC7i6IDCy2f6SBjqmARtbCf%2Bw%2FCZJOZjVzUCxjsTpBT%2FMOcY6OMWS2q0arjzBOX9zVUzltD63KTsMjjih6mfa7Vv9piSwg%2Bqg4kBT6mvOTEgUksSJOw4%2FSyQaR3FAvXdCZkvd97xOMCgXWOotpvvYy9OlRQDalW5PjF5hh3hR8AEh%2FJ88kGeszOMNRUKzrut4drS02V3irAjYEaF5NyFgPLiwxCHwFblF3nit3AKeywL3D%2BA%3D&X-Amz-Signature=e48e53cf183596b9c68dcda85bdb26d145c05f613b32322285a23a150db3163d&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=60ac19ef893ab1000864b771&x-amz-meta-channel=12&x-amz-meta-fileid=625fd0da08d45e0009f583e3&x-amz-meta-filename=test_s3_import.csv&x-amz-meta-nodeid=6256a1d7e70fcb5135e381f0&x-amz-meta-prefix=item&x-amz-meta-stage=stg02' \
--header 'Content-Type: text/csv' \
--data-binary '@/Desktop/BundleImport.csv'

4. Get Upload Status

Once file upload is completed, use this endpoint to check the upload status by passing the query parameter fileId, which you got in the response of Get S3 bucket URL endpoint.

curl --location --request GET 'http://<env>.copilot.fabric.inc/api-product/v1/product/bulk/file/{fileId}/status' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}'

5. Get Import History for Bundles

Use this endpoint to view history of all Bundle imports and their statuses.

curl --location --request POST 'https://<env>.copilot.fabric.inc/api-product/v1/product/file/bundle/search' \
--header 'x-site-context: {"stage":"<env>","account":"<...snip...>","date":"2021-09-28T21:27:29.806Z","channel":12}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "page": 1,
    "size": 10
}'