Upload Diamonds
Overview
Primary Suppliers and RapNet Dealers can upload diamonds for sale on the RapNet website.
- We provide a list of diamond fields and values plus a diamond inventory file template.
- Some diamond fields are mandatory and if data is missing in these fields, the diamond will not upload to RapNet.
- We recommend listing diamond inventory with all diamond parameters and grading reports, images, and videos. This increases the chances of your diamond being found.
Diamond Upload Methods
We offer 5 methods for uploading and managing diamond inventory on RapNet.
They are :
Single Diamond Upload
On RapNet’s Single Diamond Upload page, either type in the GIA report number and we will auto-populate the diamond data fields for you, or use drop-downs and fields to manually enter data.
Click here to go to RapNet’s single diamond upload page.
Multiple Diamond Upload
Upload through RapNet website
- Fill out diamond information on an XL or CSV worksheet using one of these options:
- Download & use our CSV template
- Use your own inventory file or a blank XL/CSV worksheet
- Download & use our CSV template
- Refer to RapNet’s Accepted Fields and Values to ensure the data is correctly filled out
- Save in CSV format.
- Login to RapNet > Go to Upload Diamonds
- Browse or Drag & Drop your CSV inventory file
- Choose:
- Replace All: Lots not included in the upload file removed from RapNet.
- Add & Update: New lots are added, existing lots are updated and lots not included in the file remain untouched.
- Upload File > Page moves to Upload History to view valid lots and understand why diamonds aren’t uploading or displaying correctly.
Upload using RapNet XL
Prepare and upload diamond inventory to RapNet either through the RapNet website or via RapNet XL.
Minimal System Requirements for RapNet XL:
- Microsoft Excel 2013 and higher, and Windows 10 and above
- Apple Mac and Open Office are not supported
- RapNet XL add-on does not work on free or student versions of XL
- Download RapNet XL
- Fill out diamond information on an XL or CSV worksheet using one of these options:
- Open XL > RapNet XL tab > New Stock file
- Download & use our CSV template
- Use your own inventory file or a blank XL/CSV worksheet
- Refer to RapNet’s Accepted Fields and Values to ensure the data is correctly filled out
- Save in CSV, XLS, and XLSX format.
- RapNet XL tab > Upload to RapNet > Select
- Replace All: Lots not included in the upload file were removed from RapNet.
- Add & Update: New lots are added, existing lots are updated and lots not included in the file remain untouched.
A pop-up box identifies valid lots and explains why diamonds aren’t uploading or displaying correctly.
FTP File Uploads
FTP (File Transfer Protocol ) is a simple, secure, and reliable method designed to transfer large amounts of data or multiple files from one computer to another. It’s also faster than other methods such as uploading data or media files via a website.
Using RapNet’s FTP means that you can now upload your diamond and jewelry inventory and media, faster and more efficiently.
Click here for a full-service description
Diamond Upload API
New Multiload Upload APIs
Using our diamond upload APIs, you can upload your diamond inventory files, change the price or status of diamonds, and update and maintain inventory on RapNet.
For very large inventory files, we offer a Multipart Upload API that allows you to upload split files. We recommend using this method if your file sizes are more than 5 megabytes.
If your file size is less than 5 megabytes use single file upload.
Note: To use the RapNet APIs, you need to create a Login token. Please click here for the Authentication Details.
Request parameters:Upload Diamonds – File
Name
Type
Description
Allowed Values
File
File (Binary)
Binary content of the file with the diamonds data
DiamondFileFormat
Enum
Diamonds File Format
RapNet
RapXML
CertNet
PolyPlus
RapNetXL
RapNetWS
ReplaceAll
Boolean
Replace all current stock of diamonds or just add/update existing
true
false
SendEmail
Boolean
Send email report after upload processing is complete.
true
false
Request parameters:Upload Diamonds – Initiate Multiload
Name
Type
Description
Allowed Values
FileName
String
Name of the files with the diamond data
ReplaceAll
Boolean
Replace all current stock of diamonds or just add/update existing
true
false
SendEmail
Boolean
Send upload report by email
true
false
DiamondFileFormat
Enum
Diamonds File Format
RapNet
RapXML
CertNet
PolyPlus
RapNetXL
RapNetWS
FileSize
Integer
Size of diamonds file in bytes
Upload Diamonds – Change Price
PUT /diamondupdateingest/api/public/lots/prices HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: text/plain
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMjEzMDZ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2FwaWtleSI6eyJodHRwczovL3VwbG9hZGxvdHMucmFwbmV0YXBpcy5jb20iOiJYVFV2YzcwdE1xOE9ZbjNmQldBUU42YXNQZGVIZmwxUjFvWFJNQmNLIn0sImh0dHA6Ly9yYXBhcG9ydC5jb20vYXVkaWVuY2UiOlsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIiwiaHR0cHM6Ly9hcGlnYXRld2F5LnJhcG5ldGFwaXMuY29tIl0sImh0dHA6Ly9yYXBhcG9ydC5jb20vcGVybWlzc2lvbnMiOnsicmFwbmV0YXBpcy1hcGlnYXRld2F5IjpbInByaW1hcnlTdXBsbGllciIsInByaWNlTGlzdFdlZWtseSIsInByaWNlTGlzdE1vbnRobHkiLCJyYXBuZXRQcmljZUxpc3RXZWVrbHkiLCJiYXNpYyIsInJhcG5ldFByaWNlTGlzdE1vbnRobHkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJpbnN0YW50SW52ZW50b3J5U2V0dXAiLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsIm15Q29udGFjdHMiLCJtZW1iZXJSYXRpbmciLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQuYXV0aDAuY29tLyIsInN1YiI6ImhUWnpDc0JkQ2toV1l4UTRvbEJXMmYzOFd1eWQ3cDJvQGNsaWVudHMiLCJhdWQiOiJodHRwczovL2FwaWdhdGV3YXkucmFwbmV0YXBpcy5jb20iLCJpYXQiOjE2OTI3ODk1MTIsImV4cCI6MTY5Mjg3NTkxMiwiYXpwIjoiaFRaekNzQmRDa2hXWXhRNG9sQlcyZjM4V3V5ZDdwMm8iLCJzY29wZSI6Im1hbmFnZUxpc3RpbmdzIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.n864uovpKXENMK8k0vepXvlxJ0C3_2QSx_m-MYby_xO1dmdTb3vYFzEikv3TfV-AXdTRQWoRqzLChEU7VqNNpIAYmmH5JtB7S5Pkf7OW62pxJwoDeWviBtTtdQK7YWza_tkHpJQMwggW3AJl9NUw0oa4XKWsm6pOdQgYcuBCBYg-LkKY8gx0EzLL9h14z2eAF-oAbAtvg7QksuC3GgHi0LP1xyba_U-t80SGTHg3FOCOTXtRl2qOF9cOQ9iq-IqlTjDi1O7k0zcmxh8U8usOFUYtmqBO5TbbldRp3YG32j6L9kgepZmLqnyYZV9j8iztFwaE0B_g17gSnw-iEoWo0g
Content-Length: 2248
curl -X 'PUT' \
'https://technet.rapnetapis.com/diamondupdateingest/api/public/lots/prices' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik56aERNVFkzUmtGRE56WXdOMEZDUVVWRE5qQTFOVU00TXpkRlJUTTVPVFF3T1VGRVEwTkdSUSJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMTIwNzMzfSwiaHR0cDovL3JhcGFwb3J0LmNvbS9hcGlrZXkiOnsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIjoiWVpFM1VHcjRLZDVtSGhnN0FtYTRSOWhzZDBtOGhURjQzU1VjbGxqSiJ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2F1ZGllbmNlIjpbImh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImh0dHBzOi8vdXBsb2FkbG90cy5yYXBuZXRhcGlzLmNvbSJdLCJodHRwOi8vcmFwYXBvcnQuY29tL3Blcm1pc3Npb25zIjp7InJhcG5ldGFwaXMtYXBpZ2F0ZXdheSI6WyJwcmltYXJ5U3VwbGxpZXIiLCJwcmljZUxpc3RXZWVrbHkiLCJlbnRlcnByaXNlIiwicHJpY2VMaXN0TW9udGhseSIsInJhcG5ldFByaWNlTGlzdFdlZWtseSIsImJhc2ljIiwicmFwYXBvcnRFbXBsb3llZXMiLCJETFMiLCJyYXBuZXRQcmljZUxpc3RNb250aGx5IiwiYmV0YSIsImluc3RhbnRJbnZlbnRvcnkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsImluc3RhbnRJbnZlbnRvcnlTZXR1cCIsIm15Q29udGFjdHMiLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsIm1lbWJlclJhdGluZyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQtc3RhZ2luZy5hdXRoMC5jb20vIiwic3ViIjoiNjN5QTVzUjM0andyYkQwVGdaTHk3NnE3MWNjd0lnUWpAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImlhdCI6MTY4NTA0Mjk3MywiZXhwIjoxNjg1MTI5MzczLCJhenAiOiI2M3lBNXNSMzRqd3JiRDBUZ1pMeTc2cTcxY2N3SWdRaiIsInNjb3BlIjoibWFuYWdlTGlzdGluZ3MiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.1srYnId36Z7eux_KTMjoNg-ftJIUXQ2PtS2qVvAyNGK2-injHbBTYBGb7zoYaMMBZ1YGancWSwKLOQz3wnsKzYnX-L296R0ewzkzYOLn9ah3s1mdrsCoycTdvG20fcoY16mXPjSHgNn2rJRX4EYKe7R-k2TlVgCC8ollgD1tGftUnOtgHe2EMYLvRjBK3-UbziUke0Lw2qEhSHGauX2eTP2Jv0k4qbRY6MdKe5mwie2mLrFouykkeOyXpgoyzPduUjBpPrLJowVhOd7bnPXwxN-BlW0pGm9TADPTKEABcVX5yUHPJpCPhJ6s2lN8x3MkIETlYcGt0Q72dn-ijXjOjg' \
-H 'Content-Type: application/json' \
-d '[
{
"stockNumber": "C233",
"rapNetPrice": 1000.23,
"cashPriceDiscountPercent": 10.9
},
{
"rapnetLotId": 46256343,
"cashPrice": 9870.9,
"cashPriceDiscountPercent": 8.65
},
{
"stockNumber": "C235",
"rapNetPrice": 2150.0,
},
]'
Request parameters:
Name | Type | Description |
---|---|---|
RapnetLotId | Int | Lot ID of diamond that needs updating |
StockNumber | String | Stock Numbers of diamond that needs updating |
RapNetPrice | Decimal | New RapNet Price for corresponding diamond |
RapNetDiscountPercent | Decimal | New RapNet Discount Percent for corresponding diamond |
CashPrice | Decimal | New Cash Price for corresponding diamond |
CashPriceDiscountPercent | Decimal | New Cash Price Discount Percent for corresponding diamond |
Note: For each diamond specify only one type of identifier i.e. either Lot ID or Stock Number.
You can provide only one or all price changes.
Upload Diamonds – Change status
PUT /diamondupdateingest/api/public/lots/availability HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMjEzMDZ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2FwaWtleSI6eyJodHRwczovL3VwbG9hZGxvdHMucmFwbmV0YXBpcy5jb20iOiJYVFV2YzcwdE1xOE9ZbjNmQldBUU42YXNQZGVIZmwxUjFvWFJNQmNLIn0sImh0dHA6Ly9yYXBhcG9ydC5jb20vYXVkaWVuY2UiOlsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIiwiaHR0cHM6Ly9hcGlnYXRld2F5LnJhcG5ldGFwaXMuY29tIl0sImh0dHA6Ly9yYXBhcG9ydC5jb20vcGVybWlzc2lvbnMiOnsicmFwbmV0YXBpcy1hcGlnYXRld2F5IjpbInByaW1hcnlTdXBsbGllciIsInByaWNlTGlzdFdlZWtseSIsInByaWNlTGlzdE1vbnRobHkiLCJyYXBuZXRQcmljZUxpc3RXZWVrbHkiLCJiYXNpYyIsInJhcG5ldFByaWNlTGlzdE1vbnRobHkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJpbnN0YW50SW52ZW50b3J5U2V0dXAiLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsIm15Q29udGFjdHMiLCJtZW1iZXJSYXRpbmciLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQuYXV0aDAuY29tLyIsInN1YiI6ImhUWnpDc0JkQ2toV1l4UTRvbEJXMmYzOFd1eWQ3cDJvQGNsaWVudHMiLCJhdWQiOiJodHRwczovL2FwaWdhdGV3YXkucmFwbmV0YXBpcy5jb20iLCJpYXQiOjE2OTI3ODk1MTIsImV4cCI6MTY5Mjg3NTkxMiwiYXpwIjoiaFRaekNzQmRDa2hXWXhRNG9sQlcyZjM4V3V5ZDdwMm8iLCJzY29wZSI6Im1hbmFnZUxpc3RpbmdzIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.n864uovpKXENMK8k0vepXvlxJ0C3_2QSx_m-MYby_xO1dmdTb3vYFzEikv3TfV-AXdTRQWoRqzLChEU7VqNNpIAYmmH5JtB7S5Pkf7OW62pxJwoDeWviBtTtdQK7YWza_tkHpJQMwggW3AJl9NUw0oa4XKWsm6pOdQgYcuBCBYg-LkKY8gx0EzLL9h14z2eAF-oAbAtvg7QksuC3GgHi0LP1xyba_U-t80SGTHg3FOCOTXtRl2qOF9cOQ9iq-IqlTjDi1O7k0zcmxh8U8usOFUYtmqBO5TbbldRp3YG32j6L9kgepZmLqnyYZV9j8iztFwaE0B_g17gSnw-iEoWo0g
Content-Length: 2077
curl -X 'PUT' \
' https:
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik56aERNVFkzUmtGRE56WXdOMEZDUVVWRE5qQTFOVU00TXpkRlJUTTVPVFF3T1VGRVEwTkdSUSJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMTIwNzMzfSwiaHR0cDovL3JhcGFwb3J0LmNvbS9hcGlrZXkiOnsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIjoiWVpFM1VHcjRLZDVtSGhnN0FtYTRSOWhzZDBtOGhURjQzU1VjbGxqSiJ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2F1ZGllbmNlIjpbImh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImh0dHBzOi8vdXBsb2FkbG90cy5yYXBuZXRhcGlzLmNvbSJdLCJodHRwOi8vcmFwYXBvcnQuY29tL3Blcm1pc3Npb25zIjp7InJhcG5ldGFwaXMtYXBpZ2F0ZXdheSI6WyJwcmltYXJ5U3VwbGxpZXIiLCJwcmljZUxpc3RXZWVrbHkiLCJlbnRlcnByaXNlIiwicHJpY2VMaXN0TW9udGhseSIsInJhcG5ldFByaWNlTGlzdFdlZWtseSIsImJhc2ljIiwicmFwYXBvcnRFbXBsb3llZXMiLCJETFMiLCJyYXBuZXRQcmljZUxpc3RNb250aGx5IiwiYmV0YSIsImluc3RhbnRJbnZlbnRvcnkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsImluc3RhbnRJbnZlbnRvcnlTZXR1cCIsIm15Q29udGFjdHMiLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsIm1lbWJlclJhdGluZyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQtc3RhZ2luZy5hdXRoMC5jb20vIiwic3ViIjoiNjN5QTVzUjM0andyYkQwVGdaTHk3NnE3MWNjd0lnUWpAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImlhdCI6MTY4NTA0Mjk3MywiZXhwIjoxNjg1MTI5MzczLCJhenAiOiI2M3lBNXNSMzRqd3JiRDBUZ1pMeTc2cTcxY2N3SWdRaiIsInNjb3BlIjoibWFuYWdlTGlzdGluZ3MiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.1srYnId36Z7eux_KTMjoNg-ftJIUXQ2PtS2qVvAyNGK2-injHbBTYBGb7zoYaMMBZ1YGancWSwKLOQz3wnsKzYnX-L296R0ewzkzYOLn9ah3s1mdrsCoycTdvG20fcoY16mXPjSHgNn2rJRX4EYKe7R-k2TlVgCC8ollgD1tGftUnOtgHe2EMYLvRjBK3-UbziUke0Lw2qEhSHGauX2eTP2Jv0k4qbRY6MdKe5mwie2mLrFouykkeOyXpgoyzPduUjBpPrLJowVhOd7bnPXwxN-BlW0pGm9TADPTKEABcVX5yUHPJpCPhJ6s2lN8x3MkIETlYcGt0Q72dn-ijXjOjg' \
-H 'Content-Type: application/json' \
-d '[
{
"stockNumber": "C233",
"status": "M"
},
{
"rapnetLotId": 46256343,
"status": "G"
},
{
"stockNumber": "C235",
"status": "NA"
},
]'
Request parameters:
Name | Type | Description |
---|---|---|
RapnetLotId | Int | Lot ID of diamond that needs updating |
StockNumber | String | Stock Numbers of diamond that needs updating |
Status | String | New Availability status for corresponding diamond |
Note: For each diamond specify only one type of identifier i.e. either Lot ID or Stock Number
Web Request -Response
{
"uploadId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Initiate Mutipart -Response
{
"uploadId": "string",
"multipartUploadId": "string",
"putUrls": [
"string"
],
"multipartSplitSize": 0
}
Change Prices Upload -Response
{
"uploadId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Change status Upload -Response
{
"uploadId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Request parameters:Upload Diamonds – Multipart upload
Name Type Description UploadId String GUID id of the upload returned by initiate multipart upload MultipartUploadId String multipart upload id returned by initiate multipart upload eTags List List of ETags returned in response headers of each file part uploading, number of records equals to number of split parts
Request parameters:Upload Diamonds – Upload status
Name Type Description UploadId String GUID id of the upload returned by initiate upload
Upload Diamonds – Delete Diamonds
DELETE /diamondupdate/api/public/lots HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMjEzMDZ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2FwaWtleSI6eyJodHRwczovL3VwbG9hZGxvdHMucmFwbmV0YXBpcy5jb20iOiJYVFV2YzcwdE1xOE9ZbjNmQldBUU42YXNQZGVIZmwxUjFvWFJNQmNLIn0sImh0dHA6Ly9yYXBhcG9ydC5jb20vYXVkaWVuY2UiOlsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIiwiaHR0cHM6Ly9hcGlnYXRld2F5LnJhcG5ldGFwaXMuY29tIl0sImh0dHA6Ly9yYXBhcG9ydC5jb20vcGVybWlzc2lvbnMiOnsicmFwbmV0YXBpcy1hcGlnYXRld2F5IjpbInByaW1hcnlTdXBsbGllciIsInByaWNlTGlzdFdlZWtseSIsInByaWNlTGlzdE1vbnRobHkiLCJyYXBuZXRQcmljZUxpc3RXZWVrbHkiLCJiYXNpYyIsInJhcG5ldFByaWNlTGlzdE1vbnRobHkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJpbnN0YW50SW52ZW50b3J5U2V0dXAiLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsIm15Q29udGFjdHMiLCJtZW1iZXJSYXRpbmciLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQuYXV0aDAuY29tLyIsInN1YiI6ImhUWnpDc0JkQ2toV1l4UTRvbEJXMmYzOFd1eWQ3cDJvQGNsaWVudHMiLCJhdWQiOiJodHRwczovL2FwaWdhdGV3YXkucmFwbmV0YXBpcy5jb20iLCJpYXQiOjE2OTI3ODk1MTIsImV4cCI6MTY5Mjg3NTkxMiwiYXpwIjoiaFRaekNzQmRDa2hXWXhRNG9sQlcyZjM4V3V5ZDdwMm8iLCJzY29wZSI6Im1hbmFnZUxpc3RpbmdzIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.n864uovpKXENMK8k0vepXvlxJ0C3_2QSx_m-MYby_xO1dmdTb3vYFzEikv3TfV-AXdTRQWoRqzLChEU7VqNNpIAYmmH5JtB7S5Pkf7OW62pxJwoDeWviBtTtdQK7YWza_tkHpJQMwggW3AJl9NUw0oa4XKWsm6pOdQgYcuBCBYg-LkKY8gx0EzLL9h14z2eAF-oAbAtvg7QksuC3GgHi0LP1xyba_U-t80SGTHg3FOCOTXtRl2qOF9cOQ9iq-IqlTjDi1O7k0zcmxh8U8usOFUYtmqBO5TbbldRp3YG32j6L9kgepZmLqnyYZV9j8iztFwaE0B_g17gSnw-iEoWo0g
Content-Length: 2063
curl -X 'DELETE' \
'https:
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik56aERNVFkzUmtGRE56WXdOMEZDUVVWRE5qQTFOVU00TXpkRlJUTTVPVFF3T1VGRVEwTkdSUSJ9.eyJodHRwOi8vcmFwYXBvcnQuY29tL3VzZXIiOnsiYWNjb3VudElkIjoxMTIwNzMzfSwiaHR0cDovL3JhcGFwb3J0LmNvbS9hcGlrZXkiOnsiaHR0cHM6Ly91cGxvYWRsb3RzLnJhcG5ldGFwaXMuY29tIjoiWVpFM1VHcjRLZDVtSGhnN0FtYTRSOWhzZDBtOGhURjQzU1VjbGxqSiJ9LCJodHRwOi8vcmFwYXBvcnQuY29tL2F1ZGllbmNlIjpbImh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImh0dHBzOi8vdXBsb2FkbG90cy5yYXBuZXRhcGlzLmNvbSJdLCJodHRwOi8vcmFwYXBvcnQuY29tL3Blcm1pc3Npb25zIjp7InJhcG5ldGFwaXMtYXBpZ2F0ZXdheSI6WyJwcmltYXJ5U3VwbGxpZXIiLCJwcmljZUxpc3RXZWVrbHkiLCJlbnRlcnByaXNlIiwicHJpY2VMaXN0TW9udGhseSIsInJhcG5ldFByaWNlTGlzdFdlZWtseSIsImJhc2ljIiwicmFwYXBvcnRFbXBsb3llZXMiLCJETFMiLCJyYXBuZXRQcmljZUxpc3RNb250aGx5IiwiYmV0YSIsImluc3RhbnRJbnZlbnRvcnkiLCJtZW1iZXJEaXJlY3RvcnkiLCJzZWFyY2giLCJtYW5hZ2VMaXN0aW5nc0ZpbGUiLCJidXlSZXF1ZXN0c0FkZCIsIml0ZW1TaGFyZWQiLCJ0cmFkZUNlbnRlciIsImluc3RhbnRJbnZlbnRvcnlTZXR1cCIsIm15Q29udGFjdHMiLCJjaGF0IiwibWFuYWdlTGlzdGluZ3MiLCJsZWFkcyIsIm1lbWJlclJhdGluZyIsImFkbWluIiwiYnV5UmVxdWVzdHMiXX0sImlzcyI6Imh0dHBzOi8vcmFwYXBvcnQtc3RhZ2luZy5hdXRoMC5jb20vIiwic3ViIjoiNjN5QTVzUjM0andyYkQwVGdaTHk3NnE3MWNjd0lnUWpAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vYXBpZ2F0ZXdheS5yYXBuZXRhcGlzLmNvbSIsImlhdCI6MTY4NTA0Mjk3MywiZXhwIjoxNjg1MTI5MzczLCJhenAiOiI2M3lBNXNSMzRqd3JiRDBUZ1pMeTc2cTcxY2N3SWdRaiIsInNjb3BlIjoibWFuYWdlTGlzdGluZ3MiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.1srYnId36Z7eux_KTMjoNg-ftJIUXQ2PtS2qVvAyNGK2-injHbBTYBGb7zoYaMMBZ1YGancWSwKLOQz3wnsKzYnX-L296R0ewzkzYOLn9ah3s1mdrsCoycTdvG20fcoY16mXPjSHgNn2rJRX4EYKe7R-k2TlVgCC8ollgD1tGftUnOtgHe2EMYLvRjBK3-UbziUke0Lw2qEhSHGauX2eTP2Jv0k4qbRY6MdKe5mwie2mLrFouykkeOyXpgoyzPduUjBpPrLJowVhOd7bnPXwxN-BlW0pGm9TADPTKEABcVX5yUHPJpCPhJ6s2lN8x3MkIETlYcGt0Q72dn-ijXjOjg \
-H 'Content-Type: application/json' \
-d '{
"clientRowIds": [],
"rapnetLotIds": [
"46256343",
"46256344",
"46256345"
],
"stockNumbers": [
"C233",
"C234",
"C235"
]
}'
Request parameters:
Name | Type | Description |
---|---|---|
ClientRowIds | List of strings | List of Client Row Ids for diamonds that need to ne deleted |
RapnetLotIds | List of strings | List of Lot Ids for diamonds that need to ne deleted |
StockNumbers | List of strings | List of Stock Numbers for diamonds that need to ne deleted |
Note: For each diamond specify only one type of identifier i.e. either Client Row Id or Lot Id or Stock Number
Upload Diamonds – Keep Alive All
PUT /diamondupdate/api/public/lots/keepalive/all HTTP/1.1
Host: technet.rapnetapis.com
AccountId: 115074
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik56aERNVFkzUmtGRE56WXdOMEZDUVVWRE5qQTFOVU00TXpkRlJUTTVPVFF3T1VGRVEwTkdSUSJ9
Request parameters:Upload Diamonds – Keep Alive Single
Name Type Description ClientRowIds List of strings List of Client Row Ids of diamonds StockNumbers List of strings List of Stock Numbers of diamonds
Initiate Mutipart -Response
{
"uploadId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Upload Status -Response
{
"uploadID": 58955452,
"uploadType": "Rapnet.com",
"fileFormat": "Rapnet",
"stockReplaced": false,
"dateUploaded": "2023-05-26T12:22:48.969812",
"status": "Finished successfully",
"errorMessages": null,
"warningMessages": null,
"numLotReceived": 131,
"numValidLots": 130,
"numInvalidLots": 1,
"startTime": "2023-05-26T12:22:55.616365",
"endTime": "2023-05-26T12:22:57.529206",
"lastUpdated": "2023-05-26T12:22:57.545855",
"duration": null,
"progressPercent": 0,
"waitingINQueue": 0
}
Delete Diamonds -Response
{
"notFound": {
"stockNumbers": [
"C234",
"C235"
]
},
"totalDeleted": 4
}
Keep Alive All -Response
{
"totalUpdated": 80124
}
Keep Alive Single-Response
{
"totalUpdated": 0,
"notFound": {
"clientRowIds": [
"string"
],
"stockNumbers": [
"string"
]
}
}
Web Services
You can upload diamond listings using HTTP POST to the following endpoints
Send a CSV formatted string.
For example, “StockNumber, Shape, Weight, Color, Clarity\n\rStrok_1.3, Round, 2.1, D, VVS1”
Endpoint: https://technet.rapaport.com:449/HTTP/Upload/Upload.aspx?Method=string
Upload a CSV File
Endpoint: https://technet.rapaport.com:449/HTTP/Upload/Upload.aspx?Method=file
Note: You must authenticate before sending the data.
Web Request and CSV File
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Collections.Specialized;
namespace TechnetSamples
{
class Program
{
static void Main(string[] args)
{
string URLAuth = "https://technet.rapaport.com/HTTP/Authenticate.aspx";
WebClient webClient = new WebClient();
NameValueCollection formData = new NameValueCollection();
formData["Username"] = "myUser";
formData["Password"] = "myPassword";
byte[] responseBytes = webClient.UploadValues(URLAuth, "POST", formData);
string resultAuthTicket = Encoding.UTF8.GetString(responseBytes);
webClient.Dispose();
string URL = "http://technet.rapaport.com/HTTP/Upload/Upload.aspx?Method=file";
string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
System.Net.WebRequest webRequest = System.Net.WebRequest.Create(URL);
webRequest.Method = "POST";
webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
string FilePath = "C:\\test.csv";
formData.Clear();
formData["ticket"] = resultAuthTicket;
formData["ReplaceAll"] = "false";
Stream postDataStream = GetPostStream(FilePath, formData, boundary);
webRequest.ContentLength = postDataStream.Length;
Stream reqStream = webRequest.GetRequestStream();
postDataStream.Position = 0;
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = postDataStream.Read(buffer, 0, buffer.Length)) != 0)
{
reqStream.Write(buffer, 0, bytesRead);
}
postDataStream.Close();
reqStream.Close();
StreamReader sr = new StreamReader(webRequest.GetResponse().GetResponseStream());
string Result = sr.ReadToEnd();
}
private static Stream GetPostStream(string filePath, NameValueCollection formData, string boundary)
{
Stream postDataStream = new System.IO.MemoryStream();
//adding form data
string formDataHeaderTemplate = Environment.NewLine + "--" + boundary + Environment.NewLine +
"Content-Disposition: form-data; name=\"{0}\";" + Environment.NewLine + Environment .NewLine + "{1}";
foreach (string key in formData.Keys)
{
byte[] formItemBytes = System.Text.Encoding.UTF8.GetBytes(string.Format(formDataHeaderTemplate,
key, formData[key]));
postDataStream.Write(formItemBytes, 0, formItemBytes.Length);
}
//adding file data
FileInfo fileInfo = new FileInfo(filePath);
string fileHeaderTemplate = Environment.NewLine + "--" + boundary + Environment.NewLine +
"Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"" +
Environment.NewLine + "Content-Type: application/vnd.ms-excel" + Environment.NewLine + Environment.NewLine;
byte[] fileHeaderBytes = System.Text.Encoding.UTF8.GetBytes(string.Format(fileHeaderTemplate,
"UploadCSVFile", fileInfo.FullName));
postDataStream.Write(fileHeaderBytes, 0, fileHeaderBytes.Length);
FileStream fileStream = fileInfo.OpenRead();
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
postDataStream.Write(buffer, 0, bytesRead);
}
fileStream.Close();
byte[] endBoundaryBytes = System.Text.Encoding.UTF8.GetBytes("--" + boundary + "--");
postDataStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
return postDataStream;
}
}
}
WebClient and CSV String
string UploadCSVString = @"StockNumber,Shape,Weight,Color,Clarity" +
Environment.NewLine + "1234Eli,Round,2.0,F,VVS1"; //CSV forma
string URLAuth = "https://technet.rapaport.com/HTTP/Authenticate.aspx";
WebClient webClient = new WebClient();
NameValueCollection formData = new NameValueCollection();
formData["Username"] = "myUser";
formData["Password"] = "myPassword";
byte[] responseBytes = webClient.UploadValues(URLAuth, "POST", formData);
string ResultAuthTicket = Encoding.UTF8.GetString(responseBytes);
webClient.Dispose();
string URL = "http://technet.rapaport.com/HTTP/Upload/Upload.aspx?Method=string";
formData.Clear();
formData["ticket"] = ResultAuthTicket;
formData["UploadCSVString"] = UploadCSVString;
formData["ReplaceAll"] = "false";
responseBytes = webClient.UploadValues(URL, "POST", formData);
string Result = Encoding.UTF8.GetString(responseBytes);
WebClient and CSV File
string URLAuth = "https://technet.rapaport.com/HTTP/Authenticate.aspx";
WebClient webClient = new WebClient();
NameValueCollection formData = new NameValueCollection();
formData["Username"] = "myUser";
formData["Password"] = "myPassword";
byte[] responseBytes = webClient.UploadValues(URLAuth, "POST", formData);
string ResultAuthTicket = Encoding.UTF8.GetString(responseBytes);
webClient.Dispose();
string URL = "http://technet.rapaport.com/HTTP/Upload/Upload.aspx?Method=file&ReplaceAll=false&ticket=" + ResultAuthTicket;
formData.Clear();
responseBytes = webClient.UploadFile(URL, "POST", "C:\\test.csv");
string Result = Encoding.UTF8.GetString(responseBytes);
WebServices – Framework 4.0
//in your binding setting increacse the timeout and buffer sizes
closeTimeout="00:05:00" openTimeout="00:05:00"
receiveTimeout="00:10:00" sendTimeout="00:05:00"
maxBufferSize="65536" maxBufferPoolSize="5242880" maxReceivedMessageSize="655360"
DiamondManagerSoapClient webServiceManager = new DiamondManagerSoapClient();
//This must be done in HTTPS protocol
AuthenticationTicketHeader ticket = webServiceManager.Login("myUser", "myPassword");
//After log in you will receive an encrypted ticket with your credentials. This will be used to authenticate your session.
//Now you can choose to change the protocol to HTTP so it works faster.
string oldAddress = webServiceManager.Endpoint.Address.ToString();
string newAddress = "http" + webServiceManager.Endpoint.Address.ToString().Substring(5);
System.ServiceModel.EndpointAddress address = new System.ServiceModel.EndpointAddress(newAddress);
webServiceManager.Endpoint.Address = address;
UploadLotsParameters uploadManager = new UploadLotsParameters();
uploadManager.FirstRowHeaders = true;
string fileContent = File.ReadAllText(@"FilePath\File.csv");
//indicates if the first row in the file contains headers
uploadManager.LotList = fileContent;
//indicates if to replace the this upload or to add it to the existing inventory
uploadManager.ReplaceAll = true;
UploadLotsResult ressult = webServiceManager.UploadLots(ticket,uploadManager);
//get your entire inventory in RapNet
GetLotsResult lots = webServiceManager.GetLots(ticket);
WebService Certificate Uploads – Framework 4.0
//in your binding setting increacse the timeout and buffer sizes
closeTimeout="00:05:00" openTimeout="00:05:00"
receiveTimeout="00:10:00" sendTimeout="00:05:00"
maxBufferSize="65536" maxBufferPoolSize="5242880" maxReceivedMessageSize="655360"
DiamondManagerSoapClient webServiceManager = new DiamondManagerSoapClient();
//This must be done in HTTPS protocol
AuthenticationTicketHeader ticket = webServiceManager.Login("myUser", "myPassword");
//After log in you will receive a encrypted ticket with your credentials. This will be used to authenticate your session.
//Now you can choose to change the protocol to HTTP so it works faster.
string oldAddress = webServiceManager.Endpoint.Address.ToString();
string newAddress = "http" + webServiceManager.Endpoint.Address.ToString().Substring(5);
System.ServiceModel.EndpointAddress address = new System.ServiceModel.EndpointAddress(newAddress);
webServiceManager.Endpoint.Address = address;
//uploading image or zip files
UploadFilesParameters ufp = new UploadFilesParameters();
ufp.FileName = "Test.jpg"; //or Test.zip
ufp.FileContents = File.ReadAllBytes(@"C:\Test.jpg");//or Test.zip
ufp.FileUploadType = FileUploadTypes.Cert;
UploadFilesResult sr = webServiceManager.UploadFiles(ticket,ufp);;
if (sr.InvalidFilesCount > 0)
{
//if it is a zip file you can get more then one file result
foreach (FileUploadInfo fileinfo in sr.InvalidFiles)
{
string FileName = fileinfo.FileName;
string ImageType = fileinfo.ImageType.ToString();
string Url = fileinfo.Url;
}
}
else if (sr.ValidFilesCount > 0)
{
//if it is a zip file you can get more then one file result
foreach (FileUploadInfo fileinfo in sr.ValidFiles)
{
string FileName = fileinfo.FileName;
string ImageType = fileinfo.ImageType.ToString();
string Url = fileinfo.Url;
}
}
Diamond Media Upload
Members can list diamonds with a grading report, an unlimited number of images, and one video.
Grading Reports
- When uploaded diamond data includes the diamond’s Lab and Report #, we auto-sync most GIA, IGI, and HRD reports to display on RapNet, wherever possible.
- Wherever it is not possible for us to automatically download a diamond report, members can upload a copy of the report to either a single diamond listing or bulk upload certificate files to their RapNet certificate folder.
- Certificate filenames matching the stock or report number auto-connect to the correct diamond.
Images
RapNet’s Diamond Media Library supports image uploads and connects & manages diamond images.
- We accept images in jpg, png, and gif format.
- Image filenames matching the diamond’s stock or report number auto-connect to the correct diamond.
- Upload methods:
- One by one
- Zip folder
- CSV file with image links suffixed in png or jpg
- FTP
Videos
We accept video URLs that members copy & paste into the single upload form or the “Video Link” column in their diamond inventory file.
- We only display videos from approved video providers on diamond search results and on the diamond’s item pages. All other videos will be shown externally to RapNet.
- Click here to view a list of RapNet-approved diamond video providers.
- We only accept secure links formatted with HTTPS.
Important: Images or videos with external URL links appear as links on RapNet.
They do not display on item pages nor can they be used for advanced reseller services such as Instant Inventory.