Instant Inventory

Overview

Rapaport Trade Instant Inventory enables you to showcase thousands of diamonds and jewelry items from Rapaport Trade’s global suppliers on your website as a virtual store.
You can place a diamond feed on one page of your website and a jewelry feed on another page of your website.
It is 
designed for members to search directly from the application on demand, and not to use the  APIs to download the data to their website.

Instant Inventory is a live feed, therefore, all inventory is maintained by Rapaport Trade and changes reflect automatically in your Instant Inventory store. 

We offer 2 integration methods:

  1. Rapaport Trade’s pre-designed search engine widget
  2. An API that enables you to customize and build your own search engine

Note: 

  • Most e-commerce platforms are compatible with Instant inventory, for example, WordPress, WooCommerce, Wix, and  Shopify.
  • Rapaport Trade Instant Inventory is only accessible with a paid Rapaport Trade subscription.
  • Please contact Rapaport Trade Customer Service to verify that your current subscription includes the Instant Inventory add-on. 

Important: It is forbidden to download diamond data and/or import Rapaport Trade diamonds into your database.

Instant Inventory Setup

Members select type of diamonds and/jewelry they want on their site,  select suppliers , and mark up the price to display in the store. 

Requirements :

  1. Set up your feed for Instant Inventory 
  2. Select the diamonds or jewelry you want to display  
  3. Select suppliers 
  4. Choose markup you want to use 
  5. Set up an Login Token for the developer or tech team to access data and work on integration

Instant Inventory Integration

Instant Inventory is designed for members to search directly from the application on demand, and not to use the  APIs to download the data to their website.
Members can add particular diamond data into there Favorites or Shopping carts as needed.

Important:
It is forbidden to download diamond data and/or import Rapaport Trade diamonds into your  local database.

  1. Once you have set up your Instant Inventory feeds, integrate using either the pre-designed widget or API.
  2. Rapaport Trade pre-designed widget:
    • Is available for both diamond and jewelry feeds 
    • Is web and mobile-friendly 
    • Offers some customizable features 
    • Integrates into your website quickly and easily using the script provided and is scripted in HTML, so you may need a 3rd party web developer to help with integration

  3. API Integration
    • Available for diamond feeds only 
    • Gives you more freedom, whereby you can design your own website, build your own diamond search engine,and offer multiple currencies, languages 
    • Is ideal if you have existing e-commerce and shopping cart application.

        4. SDK Integration (Software Development Kit) 

    • Available for the diamond feed only 
    • Gives you more freedom, whereby you can design your website, build your diamond search engine, offer multiple currencies and languages.

Important:

We recommend that consult your website developer for assistance.   

There is currently no add-to-cart or API option for instant inventory jewelry.

API Integration Setting Requirements

  • Authentication: Each request must have a Bearer Token Value
  • Request method: All requests should be sent using POST 
  • Content-Type: Application/x-www-form-urlencoded 
  • URL: Encode the request
  • Optional values: Can be omitted or left blank 
  • Response: Always contains an “error code” field:   
    • If the error code field value is 0, the operation succeeded 
    • If the error code field value is not 0, you will need to check your code or contact Tech Support. 

Click here to generate your own sample code. 

To download certificates Use the following link :

https://www.diamondselections.com/GetCertificate.aspx?diamondid=XXX

NOTE: If you are using our old API (generate sample code), you only need to change the

  • Endpoint :

       Diamonds – https://technet.rapnetapis.com/instant-inventory/api/Diamonds 

       Single Stone – https://technet.rapnetapis.com/instant-inventory/api/SingleDiamond

  • Authentication Parameters : Bearer token 

Sample Codes

Instant Inventory Diamonds and Jewelry

Instant Inventory Get Diamond Sample Code

Diamond_ID This is the diamond Id that is generated from the response above.

Instant Inventory Diamonds
				
					POST /instant-inventory/api/Diamonds HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik56aERNVFkzUmtGRE56WXdOMEZDUVVWRE5qQTFOVU00TXpkRlJUTTVPVFF3T1VGRVEwTkdSUSJ
Content-Length: 1026

{
  "request": {

    "body": {
      "search_type": "White",
      "shapes": [
        "Round",
        "Pear",
        "Princess",
        "Marquise",
        "Oval",
        "Radiant",
        "Emerald",
        "Heart",
        "Cushion",
        "Asscher"
      ],
      "labs": [
        "GIA",
        "IGI",
        "NONE"
      ],
      "fluorescence_intensities": [
                "Faint"
       
      ],
      "fluorescence_colors": [
        "Blue",
        "Yellow",
        "Green",
        "Red",
        "Orange",
        "White"
      ],
      "size_from": "0.2",
      "size_to": "0.5",
      "color_from": "D",
      "color_to": "K",
      "clarity_from": "IF",
      "clarity_to": "SI3",
      "price_total_from": "100",
      "price_total_to": "1000000",
      "fancy_color_intensity_from": "",
      "fancy_color_intensity_to": "",
      "ratio_from": null,      
      "ratio_to": null,
      "rough_source": null,      
      "isBGM": false,//true (only with BGM)/false (only with out BGM)/null (all)
      "city": "New York",
      "state": "NY",
      "country": "United States",
      "crownHeightPercentFrom": 0,
      "crownHeightPercentTo": 0,
      "crownAngleFrom": 14.1,
      "crownAngleTo": 17.1,
      "pavilionDepthFrom": 14.1,
      "pavilionDepthTo": 18.1,
      "pavilionAngleFrom": 14.1,
      "pavilionAngleTo": 19.1,
      "culetCondition": null,
      "blackInclusion": null,
      "whiteInclusion": null,
      "openInclusion": null,
      "eyeClean": null,
      "shade": null,
      "brand": null,
      "hasImage": true,
      "hasVideo": true,
      "sort_by": "Price",
      "sort_direction": "Asc",
      "page_number": "1",
      "page_size": "20"
    }
  }
}

				
			
Parameters Details Mandatory\ optional
shapes
Allowed values : “Round”, “Pear”,”Princess”, “Marquise”, “Oval”, “Radiant”, “Emerald”, “Heart”,”Cushion”, “Asscher”

optional

color_from
color_to
Allowed values : “D”, “E”, “F”, “G”,
“H”, “I”, “J”, “K”, “L”, “M”
optional
size_from
size_to
Example: 2.10
optional
fancy_colors
Allowed values :
“Yellow”,”Pink”,”Orange”,”Green”,
“Gray”, “Brown”,”Blue”,
“Black”,”Red”,”Purple”,”Violet”,”
Champagne”,”Cognac”,”Chameleon”
optional
fancy_color_intensity_from fancy_color_intensity_to
Allowed values : “Faint”,”Very Light”,”Light”,”Fancy Light”, “Fancy Dark”, “Fancy Intense”,”Fancy Vivid”, “Fancy Deep”
optional
clarity_from clarity_to
Allowed values : “IF”, “VVS1”, “VVS2”, “VS1”, “VS2”, “SI1”, “SI2”, “SI3”, “I1″,”I2″,”I3”
optional
cut_from cut_to
optional Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
polish_from polish_to
Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
symmetry_from symmetry_to
Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
price_total_from price_total_to
Example : 100000
optional
labs
Allowed values : “GIA”, “GIA DOR”, “RAP”, “AGS”, “HRD”, “IGI”, “RDC”, “CGL”, “DCLA”, “GCAL”, “GHI”, “GII”, “DBIOD”, “GSI”, “GWLAB”, “NGTC”, “PGS”, “NONE”
optional
fluorescence_intensities
Allowed values : “Very Slight”, “Faint”, “Medium”, “Slight”, “Strong”, “Very Strong”,”None”
optional
fluorescence_colors
Allowed values : “Blue”, “Yellow”, “Green”, “Red”, “Orange”, “White”
optional
depth_percent_from depth_percent_to
Example : 66.7
optional
table_percent_from table_percent_to
Example : 54.2
optional
meas_length_from meas_length_to
Example : 6.41
optional
meas_width_from meas_width_to
Example : 3.91
optional
meas_depth_from meas_depth_to
Example : 3.12
optional
girdle_min girdle_max
Allowed values : “Extr Thin”, “Very Thin”, “Thin”, “Slightly Thin”, “Medium”, “Slightly Thick”, “Thick”, “Very Thick”, “Extr Thick”
optional
culet_sizes
Allowed values : “Very Small”, “Small”, “Medium”, “Large”
optional
eye_cleans
Allowed values : “Yes”, “Borderline”, “No”
optional
page_number
Example : 1
mandatory
page_size
Example : 20
mandatory
sort_by
Allowed values : “Price”,”Shape”,”Size”,”Color”, “Clarity”, “Cut”,”Lab”
optional
sort_direction
Allowed values : “Asc”,”Desc”
optional
isBGM
true/false/null true (only BGM), false (Only without BGM), null (All)
optional
crownHeightPercentFrom crownHeightPercentTo
Example: 16.7
optional
crownAngleFrom crownAngleTo
Example: 16.7
optional
pavilionDepthFrom pavilionDepthTo
Example: 42.49
optional
pavilionAngleFrom pavilionAngleTo
Example: 42.49
optional
culetCondition
Example: None
optional
blackInclusion
Example: None
optional
whiteInclusion
Example: BC2
optional
openInclusion
Example: OC1
optional
eyeClean
Example: Yes
optional
shade
Example: Mixed
optional
brand
Example: 88-Cut
optional
hasImage
Example: true
optional
hasVideo
Example: true
optional
Instant Inventory Diamond-Response
				
					{
    "response": {
        "header": {
            "error_code": 0,
            "error_message": ""
        },
        "body": {
            "search_results": {
                "diamonds_returned": 20,
                "total_diamonds_found": 461,
                "sorted_by": "Price",
                "sort_direction": "Asc"
            },
            "diamonds": [
                {
                    "diamond_id": 163965146,
                    "shape": "Oval",
                    "size": 0.21,
                    "color": "G",
                    "fancy_color_dominant_color": "",
                    "fancy_color_secondary_color": "",
                    "fancy_color_overtone": "",
                    "fancy_color_intensity": "",
                    "clarity": "SI2",
                    "cut": "Very Good",
                    "symmetry": "Very Good",
                    "polish": "Excellent",
                    "depth_percent": 71.8,
                    "table_percent": 57.0,
                    "meas_length": 4.48,
                    "meas_width": 3.16,
                    "meas_depth": 2.27,
                    "girdle_min": "TK",
                    "girdle_max": "",
                    "girdle_condition": "",
                    "culet_size": "N",
                    "culet_condition": "",
                    "fluor_color": "",
                    "fluor_intensity": "Slight",
                    "has_cert_file": false,
                    "lab": "IGI",
                    "currency_code": "AUD",
                    "currency_symbol": "AUD$",
                    "cert_num": "646463473",
                    "stock_num": "11243-36",
                    "video_url": "https://snlive.blob.core.windows.net/dim/hd4/Vision360.html?d=316-210-B",
                    "has_video": true,
                    "eye_clean": "Yes",
                    "has_image_file": true,
                    "has_sarineloupe": false,
                    "image_file": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAicmFwbmV0LzExODc1My9pbWFnZS8xNjM5NjUxNDZfc3RpbGwvOTAwYjhmNmUtYzAwYS00OTNiLWFhYjMtNjQwOTAxM2M0YTQ3LmpwZyIsCiAgImVkaXRzIjogewogICAgInJlc2l6ZSI6IHsKICAgICAgIndpZHRoIjogNzYwLAogICAgICAiaGVpZ2h0IjogNzYwCiAgICB9CiAgfSwKICAiY3JlYXRlZGRhdGUiOiAiMDkvMjMvMjAyNCAxNToyODozMyIKfQ==?Signature=Bx7fskrh67--CKGcgIa239x4VjSXh9xKwoLq4zB8qUCjKK9R0eSucMONVieXxGQ8JV4lkBk5GocHTuRS3uwlPgC7x85NejsAoLuxrV7-b7sVlF-jy4Q8xuJCjE~FwfjDeQ0ZTlux3KcNBTfAjedAMocTgpIspvpdEHmZS7I1N7gMXMLEPnK9VjwfjiuEhYevhs6q90iLwaOg~P1b4cLM-HJ8pnjGZukZtKvujxn9o5yPxeS3lm9rPvosDxVb5Zyk5yrnYOELJTk8TeSJV9QUPIfuj09jHcIBovq9JDn6erl2qDqV0RLWlTbGUVb8w5lP41lccGAY1wsDZAdFlQkufA__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNjEzMjY1fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzIwMDc1NjV9fX1dfQ__",
                    "total_sales_price": 143.0,
                    "total_sales_price_in_currency": 220.0,
                    "ratio": 1.418,
                    "is_bgm": true,
                    "cert_file": "",
                    "shade": "None",
                    "milky": "None"
                },
				
			
Instant Inventory Diamonds - Fancy Color
				
					POST /instant-inventory/api/Diamonds HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJscyJ9.MrXXQVrqdKJgdg
Content-Length: 1330


  {
  "request": {

    "body": {
      "search_type": "Fancy",
      "shapes": [
        "Round",
        "Pear",
        "Princess",
        "Marquise",
        "Oval",
        "Radiant",
        "Emerald",
        "Heart",
        "Cushion",
        "Asscher"
      ],
      "labs": [
        "GIA",
        "IGI",
        "NONE"
      ],
      "fluorescence_intensities": [
                 "Very Slight",
        "Faint",
        "Medium",
        "Slight",
        "Strong",
        "Very Strong",
        "None"

      ],
      "fluorescence_colors": [
        "Blue",
        "Yellow",
        "Green",
        "Red",
        "Orange",
        "White"
      ],
      "fancy_colors": [
        "Yellow",
        "Pink",
        "Orange",
        "Green",
        "Gray",
        "Brown",
        "Blue",
        "Black"
      ],
      "size_from": "0.2",
      "size_to": "0.5",
      "color_from": "D",
      "color_to": "K",
      "clarity_from": "IF",
      "clarity_to": "SI3",
      "price_total_from": "100",
      "price_total_to": "1000000",
      "fancy_color_intensity_from": "",
      "fancy_color_intensity_to": "",
      "ratio_from": null,      
      "ratio_to": null,
      "rough_source": null,      
      "isBGM": false, //true (only BGM) /false (only without BGM) /null (All)
      "city": "New York",
      "state": "NY",
      "country": "United States",
      "fancyColorOvertone": "Yellowish",
      "sort_by": "Price",
      "sort_direction": "Asc",
      "page_number": "1",
      "page_size": "20"
    }
  }
}
				
			
Parameters Details Mandatory\ optional
shapes
Allowed values : “Round”, “Pear”,
“Princess”, “Marquise”, “Oval”,
“Radiant”, “Emerald”, “Heart”,
“Cushion”, “Asscher”

optional

size_from
size_to
Example: 2.10
optional
fancy_colors
Allowed values :
“Yellow”,”Pink”,”Orange”,”Green”,
“Gray”, “Brown”,”Blue”,
“Black”,”Red”,”Purple”,”Violet”,”
Champagne”,”Cognac”,”Chameleon”
optional
fancy_color_intensity_from fancy_color_intensity_to
Allowed values : “Faint”,”Very Light”,”Light”,”Fancy Light”, “Fancy Dark”, “Fancy Intense”,”Fancy Vivid”, “Fancy Deep”
optional
clarity_from clarity_to
optional Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
polish_from polish_to
Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
symmetry_from symmetry_to
Allowed values : “Excellent”, “Very Good”, “Good”, “Fair”, “Poor”
optional
price_total_from price_total_to
Example : 100000
optional
labs
Allowed values : “GIA”, “IGI”, “AGS”, “HRD”, “PGS”, “DCLA”, “VGR”, “GCAL”,”NGTC”, “GSI”, “DBGIS”, “NONE”
optional
fluorescence_intensities
Allowed values : “Very Slight”, “Faint”, “Medium”, “Slight”, “Strong”, “Very Strong”,”None”
optional
fluorescence_colors
Allowed values : “Blue”, “Yellow”, “Green”, “Red”, “Orange”, “White”
optional
depth_percent_from depth_percent_to
Example : 66.7
optional
table_percent_from table_percent_to
Example : 54.2
optional
meas_length_from meas_length_to
Example : 6.41
optional
meas_width_from meas_width_to
Example : 3.91
optional
meas_depth_from meas_depth_to
Example : 3.12
optional
girdle_min girdle_max
Allowed values : “Extr Thin”, “Very Thin”, “Thin”, “Slightly Thin”, “Medium”, “Slightly Thick”, “Thick”, “Very Thick”, “Extr Thick”
optional
culet_sizes
Allowed values : “Very Small”, “Small”, “Medium”, “Large”
optional
eye_cleans
Allowed values : “Yes”, “Borderline”, “No”
optional
page_number
Example : 1
mandatory
page_size
Example : 20
mandatory
sort_by
Allowed values : “Price”,”Shape”,”Size”,”Color”, “Clarity”, “Cut”,”Lab”
optional
sort_direction
Allowed values : “Asc”,”Desc”
optional
fancyColorOvertone
Example: Yellowish
optional
Instant Inventory Fancy Diamonds-Response
				
					{
    "response": {
        "header": {
            "error_code": 0,
            "error_message": ""
        },
        "body": {
            "search_results": {
                "diamonds_returned": 20,
                "total_diamonds_found": 352,
                "sorted_by": "Price",
                "sort_direction": "Asc"
            },
            "diamonds": [
                {
                    "diamond_id": 142649117,
                    "shape": "Round",
                    "size": 0.3,
                    "color": "",
                    "fancy_color_dominant_color": "Brown",
                    "fancy_color_secondary_color": "",
                    "fancy_color_overtone": "None",
                    "fancy_color_intensity": "Very Light",
                    "clarity": "SI2",
                    "cut": "Very Good",
                    "symmetry": "Excellent",
                    "polish": "Excellent",
                    "depth_percent": 59.2,
                    "table_percent": 58.5,
                    "meas_length": 4.33,
                    "meas_width": 4.38,
                    "meas_depth": 2.58,
                    "girdle_min": "",
                    "girdle_max": "",
                    "girdle_condition": "",
                    "culet_size": "M",
                    "culet_condition": "",
                    "fluor_color": "",
                    "fluor_intensity": "Slight",
                    "has_cert_file": true,
                    "lab": "IGI",
                    "currency_code": "AUD",
                    "currency_symbol": "AUD$",
                    "cert_num": "262774416",
                    "stock_num": "C05019",
                    "video_url": null,
                    "has_video": false,
                    "eye_clean": "",
                    "has_image_file": false,
                    "has_sarineloupe": false,
                    "image_file": null,
                    "total_sales_price": 231.0,
                    "total_sales_price_in_currency": 354.0,
                    "ratio": null,
                    "is_bgm": false
                },
				
			
Instant Inventory Jewelry
				
					POST /instant-inventory/api/Feeds/d09ad878-3b95-4709-a614-aaed970e1283/JewelryListingsV2 HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJ9
Content-Length: 328

{"jewelryTypes":["Rings","earrings"],
"jewelryMetalTypes":["yellow gold"],
"jewelryGemTypes":["Ruby"],
"jewelryCondition":["New"],
"jewelryGemShapes": ["Round"],
"pagination":{"isFetchingNext":false,
"currentPage":1,
"recordsPerPage":16},
"currency":"ZAR",
"sorting":"New",
"priceTotalFrom":1,
"priceTotalTo":10000}

				
			
Instant Inventory Jewelry - Response
				
					{
    "error": 0,
    "pagination": {
        "recordsReturned": 0,
        "totalRecordsFound": 1,
        "currentPage": 1,
        "recordsPerPage": 16
    },
    "data": [
        {
            "lotId": 12199,
            "lotSku": "1148",
            "availabilityCommentName": null,
            "availabilityCommentStatus": null,
            "lotTitle": "14K YELLOW GOLD LADIES RUBY AND DIAMOND RING",
            "lotHasImage": true,
            "lotDescription": "14K YELLOW GOLD LADIES RUBY AND DIAMOND RING\n\nTHE RING FEATURES 3 RUBIES ALTERNATING WITH DIAMONDS, SUPPORTED BY TAPERING SHOULDERS, \nCOMPLETED BY A 3MM WIDE BAND. IDENTIFIED WITH \"14K\" MARKING. \n\nTHREE PRONG SET OVAL MIXED CUT NATURAL RUBIES, MEASURING 4.40x3.40x2.21mm\nWITH A TOTAL CARAT WEIGHT OF 0.80CTS   \n\nFOUR PRONG SET ROUND BRILLIANT CUT DIAMONDS, MEASURING 1.70x1.50x0.96mm\nWITH A TOTAL CARAT WEIGHT OF 0.06CTS \nCOLOR: H\nCLARITY: SI2\nTOTAL WEIGHT: 4.63 GRAMS\nSIZE: 7.5\nSTOCK: 1148",
            "lotKeywords": "",
            "lotJewelryWeight": 4.63,
            "brand": null,
            "lotDesigner": null,
            "setting": "Finished",
            "lotSupplierComment": null,
            "lotManufactureDate": null,
            "countryOfOrigin": null,
            "lotMinOrderQuantity": 1,
            "lotJewelryMeasurements": "0,0",
            "lotRingSize": "7.5",
            "lotShipsFrom": null,
            "lotReportName": null,
            "lotReportNumber": "",
            "lotHasVideo": false,
            "setId": null,
            "price": 7187,
            "feedListingId": 55920626,
            "feedId": "d09ad878-3b95-4709-a614-aaed970e1283",
            "feedOwnerAccountId": 115074,
            "categories": [
                "Other"
            ],
            "conditions": [
                "New"
            ],
            "qualityDescriptions": [],
            "typeStyles": [
                {
                    "jewelryStyleId": 39,
                    "jewelryStyleName": null,
                    "jewelryTypeId": 5,
                    "jewelryType": "Rings"
                }
            ],
            "documents": [],
            "gems": [
                {
                    "gemId": 77354,
                    "gemType": "Ruby",
                    "gemColor": "Pink",
                    "gemShape": "Oval",
                    "gemCaratWeight": 0.8,
                    "gemMeasurements": "",
                    "gemQuantity": 1,
                    "gemComment": null,
                    "gemLabNumber": "",
                    "gemHasTreatment": false,
                    "gemLab": null,
                    "gemQualityGrade": null,
                    "rapnetDiamondId": null,
                    "treatmentGems": []
                },
                {
                    "gemId": 136860,
                    "gemType": "Diamond - Fancy Color",
                    "gemColor": null,
                    "gemShape": "Round",
                    "gemCaratWeight": 0.06,
                    "gemMeasurements": "",
                    "gemQuantity": 1,
                    "gemComment": null,
                    "gemLabNumber": "",
                    "gemHasTreatment": false,
                    "gemLab": null,
                    "gemQualityGrade": null,
                    "rapnetDiamondId": null,
                    "treatmentGems": []
                }
            ],
            "media": [
                {
                    "mediaId": 260975,
                    "mediaServiceId": "a2e8b96b-f166-4d29-a9f4-15d64d22ca0e",
                    "mediaPerspectiveType": null,
                    "mediaType": "Preview",
                    "mediaFileName": "DSC_9489.JPG",
                    "mediaOrder": 3,
                    "mediaLastModified": "2019-02-14T20:34:49Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OS9hMmU4Yjk2Yi1mMTY2LTRkMjktYTlmNC0xNWQ2NGQyMmNhMGUuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAyNTAsCiAgICAgICJoZWlnaHQiOiAyNTAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE5Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 260975,
                    "mediaServiceId": "a2e8b96b-f166-4d29-a9f4-15d64d22ca0e",
                    "mediaPerspectiveType": null,
                    "mediaType": "Image",
                    "mediaFileName": "DSC_9489.JPG",
                    "mediaOrder": 3,
                    "mediaLastModified": "2019-02-14T20:34:49Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OS9hMmU4Yjk2Yi1mMTY2LTRkMjktYTlmNC0xNWQ2NGQyMmNhMGUuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiA2NDAsCiAgICAgICJoZWlnaHQiOiA2NDAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE5Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 260975,
                    "mediaServiceId": "a2e8b96b-f166-4d29-a9f4-15d64d22ca0e",
                    "mediaPerspectiveType": null,
                    "mediaType": "LargeImage",
                    "mediaFileName": "DSC_9489.JPG",
                    "mediaOrder": 3,
                    "mediaLastModified": "2019-02-14T20:34:49Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OS9hMmU4Yjk2Yi1mMTY2LTRkMjktYTlmNC0xNWQ2NGQyMmNhMGUuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAxMjgwLAogICAgICAiaGVpZ2h0IjogMTI4MAogICAgfQogIH0sCiAgImNyZWF0ZWRkYXRlIjogIjAzLzIyLzIwMjEgMTg6MjY6MTkiCn0=?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 260998,
                    "mediaServiceId": "eed40ac6-0e2d-4651-854a-40ce6434be1c",
                    "mediaPerspectiveType": null,
                    "mediaType": "Preview",
                    "mediaFileName": "DSC_9491.JPG",
                    "mediaOrder": 1,
                    "mediaLastModified": "2019-02-14T20:34:19Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MS9lZWQ0MGFjNi0wZTJkLTQ2NTEtODU0YS00MGNlNjQzNGJlMWMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAyNTAsCiAgICAgICJoZWlnaHQiOiAyNTAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE1Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 260998,
                    "mediaServiceId": "eed40ac6-0e2d-4651-854a-40ce6434be1c",
                    "mediaPerspectiveType": null,
                    "mediaType": "Image",
                    "mediaFileName": "DSC_9491.JPG",
                    "mediaOrder": 1,
                    "mediaLastModified": "2019-02-14T20:34:19Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MS9lZWQ0MGFjNi0wZTJkLTQ2NTEtODU0YS00MGNlNjQzNGJlMWMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiA2NDAsCiAgICAgICJoZWlnaHQiOiA2NDAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE1Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 260998,
                    "mediaServiceId": "eed40ac6-0e2d-4651-854a-40ce6434be1c",
                    "mediaPerspectiveType": null,
                    "mediaType": "LargeImage",
                    "mediaFileName": "DSC_9491.JPG",
                    "mediaOrder": 1,
                    "mediaLastModified": "2019-02-14T20:34:19Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MS9lZWQ0MGFjNi0wZTJkLTQ2NTEtODU0YS00MGNlNjQzNGJlMWMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAxMjgwLAogICAgICAiaGVpZ2h0IjogMTI4MAogICAgfQogIH0sCiAgImNyZWF0ZWRkYXRlIjogIjAzLzIyLzIwMjEgMTg6MjY6MTUiCn0=?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261036,
                    "mediaServiceId": "040eea22-67fe-4476-8569-b450bd9e5b6c",
                    "mediaPerspectiveType": null,
                    "mediaType": "Preview",
                    "mediaFileName": "DSC_9490.JPG",
                    "mediaOrder": 0,
                    "mediaLastModified": "2019-02-14T20:35:07Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MC8wNDBlZWEyMi02N2ZlLTQ0NzYtODU2OS1iNDUwYmQ5ZTViNmMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAyNTAsCiAgICAgICJoZWlnaHQiOiAyNTAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjIwIgp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261036,
                    "mediaServiceId": "040eea22-67fe-4476-8569-b450bd9e5b6c",
                    "mediaPerspectiveType": null,
                    "mediaType": "Image",
                    "mediaFileName": "DSC_9490.JPG",
                    "mediaOrder": 0,
                    "mediaLastModified": "2019-02-14T20:35:07Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MC8wNDBlZWEyMi02N2ZlLTQ0NzYtODU2OS1iNDUwYmQ5ZTViNmMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiA2NDAsCiAgICAgICJoZWlnaHQiOiA2NDAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjIwIgp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261036,
                    "mediaServiceId": "040eea22-67fe-4476-8569-b450bd9e5b6c",
                    "mediaPerspectiveType": null,
                    "mediaType": "LargeImage",
                    "mediaFileName": "DSC_9490.JPG",
                    "mediaOrder": 0,
                    "mediaLastModified": "2019-02-14T20:35:07Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ5MC8wNDBlZWEyMi02N2ZlLTQ0NzYtODU2OS1iNDUwYmQ5ZTViNmMuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAxMjgwLAogICAgICAiaGVpZ2h0IjogMTI4MAogICAgfQogIH0sCiAgImNyZWF0ZWRkYXRlIjogIjAzLzIyLzIwMjEgMTg6MjY6MjAiCn0=?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261224,
                    "mediaServiceId": "5ca3c9cf-4ba6-46c6-a36b-9594433e199f",
                    "mediaPerspectiveType": null,
                    "mediaType": "Preview",
                    "mediaFileName": "DSC_9488.JPG",
                    "mediaOrder": 2,
                    "mediaLastModified": "2019-02-14T20:34:35Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OC81Y2EzYzljZi00YmE2LTQ2YzYtYTM2Yi05NTk0NDMzZTE5OWYuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAyNTAsCiAgICAgICJoZWlnaHQiOiAyNTAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE2Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261224,
                    "mediaServiceId": "5ca3c9cf-4ba6-46c6-a36b-9594433e199f",
                    "mediaPerspectiveType": null,
                    "mediaType": "Image",
                    "mediaFileName": "DSC_9488.JPG",
                    "mediaOrder": 2,
                    "mediaLastModified": "2019-02-14T20:34:35Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OC81Y2EzYzljZi00YmE2LTQ2YzYtYTM2Yi05NTk0NDMzZTE5OWYuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiA2NDAsCiAgICAgICJoZWlnaHQiOiA2NDAKICAgIH0KICB9LAogICJjcmVhdGVkZGF0ZSI6ICIwMy8yMi8yMDIxIDE4OjI2OjE2Igp9?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                },
                {
                    "mediaId": 261224,
                    "mediaServiceId": "5ca3c9cf-4ba6-46c6-a36b-9594433e199f",
                    "mediaPerspectiveType": null,
                    "mediaType": "LargeImage",
                    "mediaFileName": "DSC_9488.JPG",
                    "mediaOrder": 2,
                    "mediaLastModified": "2019-02-14T20:34:35Z",
                    "mediaTitle": null,
                    "url": "https://media.rapnet.com/ewogICJidWNrZXQiOiAibWVkaWEtdXBsb2FkLWZpbGVzLXByb2QteHFrbHMiLAogICJrZXkiOiAiamV3ZWxyeS82MDMxOC9pbWFnZS9EU0NfOTQ4OC81Y2EzYzljZi00YmE2LTQ2YzYtYTM2Yi05NTk0NDMzZTE5OWYuSlBHIiwKICAiZWRpdHMiOiB7CiAgICAicmVzaXplIjogewogICAgICAid2lkdGgiOiAxMjgwLAogICAgICAiaGVpZ2h0IjogMTI4MAogICAgfQogIH0sCiAgImNyZWF0ZWRkYXRlIjogIjAzLzIyLzIwMjEgMTg6MjY6MTYiCn0=?Signature=aIQ~t4dR1WWIlzo1LDLY8K0Ev8~lFwM9fEBEmLIn5IcKISyjk7PR7qU-9o8GBjbi8AaLSdVccdLGel5xtwmuonaQOiIde71OcALTNNeKXIk2Xzu5lkmqHkokq2WGSg6CVvdg8AQbsbUSmNngcTubf6BipIF~7oWbdI6p-8oLzpncWVpYu3Kyhkxkx3WiixOCFwJq1nJpuoTEKfKKwqCn7OA-QmxWbLZoKsUnFa8WDPVY5SxoIOis34gkN8Bt3RoGdccMxcjYgMxdB~1Xnr9RzTkaw7PBKONEqtXGgr~0wInqgOQxm84sWs4LfQaDr9JhJPkAVQzBlhj6lhwcV28buw__&Key-Pair-Id=APKAIALSMTWCPJ6TB5HQ&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbWVkaWEucmFwbmV0LmNvbS8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzMyNTk2NTQ5fSwiRGF0ZUdyZWF0ZXJUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MzE5OTA4NDl9fX1dfQ__&",
                    "mediaQuality": null
                }
            ],
            "metalTypes": [
                "Yellow Gold"
            ],
            "metalKarats": [
                "14K"
            ],
            "socialResponsibility": [],
            "urls": []
        }
    ],
    "currency": {
        "currencyID": 12,
        "currencyTitle": "South Africa Rand",
        "currencyShortTitle": "ZAR",
        "currencySymbol": "R",
        "lastRate": 17.967575,
        "lastRateInDounble": 17.967575,
        "lastUpdate": "2024-11-19T01:28:20.147"
    }
}
				
			
Single diamond Details
				
					POST /instant-inventory/api/SingleDiamond HTTP/1.1
Host: technet.rapnetapis.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik16aERRMFExTURFeVJqSTNRa0k0TTBGRVJUZzFNekUzTWtOQ09UTXhNREZDTVVZM1JURkNNZyJ9s
Content-Length: 142

{
    "request": {
        "header": {
            
        },
        "body": {
            "diamond_id": 118134969
        }
    }
}
				
			
Response
				
					
{
"response": {
"header": {
"error_code": 0,
"error_message": ""
},
"body": {
"diamond": {
"diamond_id": 118134969,
"shape": "Round",
"size": 0.2,
"color": "H",
"fancy_color_dominant_color": "",
"fancy_color_secondary_color": "",
"fancy_color_overtone": "",
"fancy_color_intensity": "",
"clarity": "I1",
"cut": "Good",
"symmetry": "Good",
"polish": "Very Good",
"depth_percent": 61.8,
"table_percent": 58,
"meas_length": 3.68,
"meas_width": 3.71,
"meas_depth": 2.35,
"girdle_min": "M",
"girdle_max": "STK",
"girdle_condition": "",
"culet_size": "N",
"culet_condition": "",
"fluor_color": "",
"fluor_intensity": "None",
"has_cert_file": true,
"country": "",
"city": "",
"lab": "NONE",
"currency_code": "CAD",
"currency_symbol": "CAD$",
"cert_num": "",
"stock_num": "2559",
"video_url": "",
"has_sarineloupe": false,
"sarineloupe_url": "",
"has_imagefile": false,
"has_image_file": false,
"imagefile_url": "",
"total_purchase_price": 68,
"total_sales_price": 96,
"total_sales_price_in_currency": 122
},
"seller": {
"account_id": 12345,
"company": "Rapaport",
"name": "Mr Rapaport",
"email": "Help@diamonds.net",
"phone": "",
"country": "USA",
"state": "NJ",
"city": "Teaneck"
}
}
}
}
				
			

SDK Integration

Get Diamonds:

$response = $iinventory->getDiamondInfo($token, $feedId, $filters);

Get Diamond Info:

$response = $iinventory->getDiamondInfo($token, $feedId, $filters);

Add to Cart Integration

Developers need to integrate code for the Add to Cart button to function.
They must first create the product in the e-commerce platform inventory and then save the output to the platform inventory. 
As well as the sample code below, please also read this article for a full understanding of the Add to Cart integration.

Add to Cart integration
				
					//Initialize the listener on ds.ready
(function (d, w) {
  function observeAddToCart() {
    // listener defined above
  }

  if (d.addEventListener) {
    d.addEventListener("ds.ready", function () {
      observeAddToCart();
    }, false);
  } else if (d.attachEvent) {
    d.documentElement.attachEvent("onpropertychange", function (event) {
      if (event.propertyName === "ds.ready") {
        observeAddToCart();
      }
    });
  }
})(document, window);

				
			
Add to Cart integration
				
					//🚀 Updated Add to Cart Integration (Vanilla JS)
<script type="text/javascript">
(function (d, w) {
  function observeAddToCart() {
    w.addEventListener("ds.addtocart", async function (ev) {
      // Get diamond details
      const diamond = ev.detail ? ev.detail.diamond : ev.data;
      console.log("Diamond data:", diamond);

      try {
        // Step 1: Create product in your backend
        const createRes = await fetch("https://your-website.net/createProduct", {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify(diamond)
        });

        if (!createRes.ok) throw createRes;
        const data = await createRes.json();
        console.log("createProduct response:", data);

        // Step 2: Build product JSON for Shopify
        const productJSON = [
          {
            quantity: 1,
            id: data.variants ? data.variants[0].id : parseInt(data.id.replace("gid://shopify/ProductVariant/", "")),
            properties: {
              Colour: diamond.color?.color,
              Clarity: diamond.clarity,
              Shape: diamond.shape,
              Polish: diamond.polish,
              Cut: diamond.cut
            }
          }
        ];

        console.log("productJSON:", productJSON);

        // Step 3: Add to Shopify cart
        const cartRes = await fetch("/cart/add.js", {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify({ items: productJSON })
        });

        if (!cartRes.ok) throw cartRes;
        console.log("Added to cart!");

        // Trigger event manually (Shopify-style)
        const addedEvent = new Event("added.ajaxProduct");
        d.body.dispatchEvent(addedEvent);

      } catch (err) {
        console.error("Add to cart error:", err);

        // Handle Shopify 404 (product missing → retry)
        if (err.status === 404) {
          try {
            const retryRes = await fetch("https://example@example.net/createProduct", {
              method: "POST",
              headers: { "Content-Type": "application/json" },
              body: JSON.stringify(diamond)
            });

            const retryData = await retryRes.json();
            console.log("retry response:", retryData);

            const productJSON = [
              {
                quantity: 1,
                id: parseInt(retryData.id.replace("gid://shopify/ProductVariant/", "")),
                properties: {
                  Colour: diamond.color?.color,
                  Clarity: diamond.clarity,
                  Shape: diamond.shape,
                  Polish: diamond.polish,
                  Cut: diamond.cut
                }
              }
            ];

            console.log("retry productJSON:", productJSON);

            await fetch("/cart/add.js", {
              method: "POST",
              headers: { "Content-Type": "application/json" },
              body: JSON.stringify({ items: productJSON })
            });

            console.log("Retry add to cart successful!");
            const addedEvent = new Event("added.ajaxProduct");
            d.body.dispatchEvent(addedEvent);

          } catch (retryErr) {
            console.error("Retry failed:", retryErr);
          }
        }
      }
    });
  }

  // Attach on ds.ready
  if (d.addEventListener) {
    d.addEventListener("ds.ready", function () {
      observeAddToCart();
    }, false);
  } else if (d.attachEvent) {
    d.documentElement.attachEvent("onpropertychange", function (event) {
      if (event.propertyName === "ds.ready") {
        observeAddToCart();
      }
    });
  }
})(document, window);
</script>

				
			

Code Explanation: Add to Cart Listener

This small piece of JavaScript code sets up a listener so that when our system is ready (ds.ready), it automatically starts watching for an “Add to Cart” action.

🔍 How it works

  1. Self-running function
    The code is wrapped in

     
    (function (d, w) { ... })(document, window);

    This simply means “run this code immediately, using the document (the web page) and window (the browser)”.

  2. The main function: observeAddToCart()

    • This is where the logic for listening to “Add to Cart” will live.

    • Right now, it’s just defined but not filled in (so developers can add the actual cart code inside it).

  3. Listening for readiness (ds.ready)

    • The code waits until the system signals it is ready.

    • When the "ds.ready" event is fired, it runs the observeAddToCart() function.

    • This ensures the cart logic only starts after everything on the page has loaded correctly.

  4. Browser compatibility

    • Modern browsers use addEventListener.

    • Older Internet Explorer versions use attachEvent.

    • This makes sure the same code works everywhere.

✅ In plain English

  • Think of it like a doorbell system:

    • First, we wait until the shop is open (ds.ready).

    • Once open, we connect the doorbell (observeAddToCart).

    • From then on, whenever a customer clicks “Add to Cart”, the system knows what to do.

🔄 Alt Example Code (jQuery Version)

This alternative uses jQuery’s $.post and $.ajax instead of vanilla JavaScript. If your site is already loading jQuery (most Shopify and WordPress themes do), this version may feel more familiar.

Add to Cart integration
				
					<script type="text/javascript">
(function (d, w, $) {
  function observeAddToCart() {
    $(w).on("ds.addtocart", function (event, data) {
      var diamond = event.originalEvent && event.originalEvent.detail
        ? event.originalEvent.detail.diamond
        : data;

      console.log("Diamond data:", diamond);

      // Step 1: Create product on backend
      $.post("https://your-website.net/createProduct", diamond)
        .done(function (res) {
          console.log("createProduct response:", res);

          // Step 2: Build product payload
          var productJSON = [
            {
              quantity: 1,
              id: res.variants
                ? res.variants[0].id
                : parseInt(res.id.replace("gid://shopify/ProductVariant/", "")),
              properties: {
                Colour: diamond.color.color,
                Clarity: diamond.clarity,
                Shape: diamond.shape,
                Polish: diamond.polish,
                Cut: diamond.cut
              }
            }
          ];

          console.log("productJSON:", productJSON);

          // Step 3: Add to Shopify cart
          $.ajax({
            url: "/cart/add.js",
            type: "POST",
            contentType: "application/json",
            data: JSON.stringify({ items: productJSON }),
            success: function () {
              console.log("Item added to cart successfully!");
              $("body").trigger("added.ajaxProduct");
            },
            error: function (err) {
              console.error("Cart add failed:", err);
            }
          });
        })
        .fail(function (err) {
          console.error("createProduct failed:", err);
        });
    });
  }

  // Run when system is ready
  if (d.addEventListener) {
    d.addEventListener("ds.ready", function () {
      observeAddToCart();
    }, false);
  } else if (d.attachEvent) {
    d.documentElement.attachEvent("onpropertychange", function (event) {
      if (event.propertyName === "ds.ready") {
        observeAddToCart();
      }
    });
  }
})(document, window, jQuery);
</script>

				
			

📝 Why use this version?

  • ✅ Fits naturally into sites that already rely on jQuery.
  • ✅ Shorter code when using $.post and $.ajax.
  • ✅ Compatible with WordPress + Shopify themes that bundle jQuery.
  • ✅ Works the same way as the vanilla JS version:
    • Listens for ds.addtocart.
    • Sends diamond details to your backend (createProduct).
    • Pushes the item into Shopify’s /cart/add.js.

To import the Instant Inventory into your system, we recommend that you program your software to retrieve and import complete datasets 

 

Links & Help Articles