{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ef182a95-2449-4cab-89e7-45dc31f50868","name":"Dailyhunt Content Syndication","description":"<strong>Partner Integration Reference</strong> _Version 2.0_\n\n\n\n<p>Dailyhunt is offering it’s rich catalogue of content via a seamless API integration. This document describes the details on how a partner can integrate with its Content Syndication API. It will help you understand the technical details of how you can integrate with Dailyhunt’s API, expectations from you & the API protocol specification.</p>\n\n___\n# Integration Details\n\n<p>This section describes the technical details of how to invoke Dailyhunt’s Syndication API. It will help you understand how to use the API security, message signing & the API protocol needed for integration.</p>\n\n<br>\n<br>\n<p>During onboarding, Dailyhunt will provision the following items for your integration:</p>\n\n\n<table>\n  <tr>\n   <td><strong>Item</strong>\n   </td>\n   <td><strong>Description</strong>\n   </td>\n  </tr>\n  <tr>\n   <td><em>API Key</em>\n   </td>\n   <td>API access key needed for authentication of the API client\n   </td>\n  </tr>\n  <tr>\n   <td><em>Secret Key</em>\n   </td>\n   <td>Needed for signing the API parameters to generate a signature for API authentication\n   </td>\n  </tr>\n  <tr>\n   <td><em>Partner Code</em>\n   </td>\n   <td>Partner identification code\n   </td>\n  </tr>\n</table>\n\n\n<br>\nYou will need to include the following items in all the API calls:\n\n\n<table>\n  <tr>\n   <td><strong>Item</strong>\n   </td>\n   <td><strong>Description</strong>\n   </td>\n  </tr>\n  <tr>\n   <td><em>Unique Partner user id (puid)</em>\n   </td>\n   <td>Your unique user id accessing Dailyhunt API\n   </td>\n  </tr>\n  <tr>\n   <td><em>API Key</em>\n   </td>\n   <td>API access key needed for authentication of the api user\n   </td>\n  </tr>\n  <tr>\n   <td><em>API Signature</em>\n   </td>\n   <td>The API authentication signature generated using <em>Secret Key</em>\n   </td>\n  </tr>\n  <tr>\n   <td><em>Partner Code</em>\n   </td>\n   <td>Partner identification code\n   </td>\n  </tr>\n  <tr>\n   <td><em>Dailyhunt Cookie (dhFeedV1)</em>\n   </td>\n   <td>Dailyhunt generated cookie (as received from the very first API call) per user\n   </td>\n  </tr>\n</table>\n\n\nThe following section describes in detail, the steps needed for integration, including how to generate some of the above fields & how to include them in the API calls.\n\n\n## API Security\n\nSince the APIs are protected, you will need to generate a message signature using the secret key as described below and pass it along with the API Key to all the API calls.\n\n\n## API Key & Secret Key\n\n\n\n1. Dailyhunt will share the API Key & Secret Key with you through email.\n2. You will pass the API key on every API call.\n3. You will use the Secret Key for signing API requests & generate a _Signature Base String_ that needs to be passed on every API call.\n\n\n## Generate _Signature Base String_\n\nTo generate a _Signature Base String_, you will need to do the following steps:\n\n\n\n1. Append “ts=_<current local server time in millis>_” in the url as query parameter.\n2. URL encode the parameter key & value pairs.\n3. Sort all the request query parameters lexicographically, sorted on encoded key.\n4. Append all the _key=value_ with “_&_” as separator if more than one _key=value_ is present.\n5. Uppercase the _http_ method used in the url and in that, append the string from _#d_ above. This new string (encoded sorted parameters + uppercase http method) represents the _Signature Base String._\n\n\nA sample Java Client Code that uses API Key & Secret Key to generate signature and to invoke Dailyhunt API:\n#### Java Code to generate Signature Base\n\tprivate String generateSignatureBase(String queryString, String method) {\n    StringBuilder signatureBaseBuffer = new StringBuilder();\n    if (!StringUtils.isEmpty(queryString)) {\n      Map<String, String> queryParams = DataUtil.urlRequestParamToMap(queryString);\n      \n      // Sort all the request query parameters lexicographically, sorted on encoded key\n      Map<String, String> encodedAndSortedQueryParams = new TreeMap<>();\n      for (String key : queryParams.keySet()) {\n        encodedAndSortedQueryParams.put(DataUtil.urlEncodedString(key),\n            DataUtil.urlEncodedString(queryParams.get(key)));\n      }\n      \n      // Append all the key=value with “&” as separator if more than one key=value is present\n      signatureBaseBuffer.append(DataUtil.formatAsUrl(encodedAndSortedQueryParams));\n    }\n    // Append the UPPERCASE(http method)\n    signatureBaseBuffer.append(method.toUpperCase());\n    return signatureBaseBuffer.toString();\n    }\n\n#### Java Code to generate the signature using signature base and secrete key\n\tprivate String calculateRFC2104HMAC(String data, String key) throws SignatureException {\n    String result;\n    try {\n      // get an hmac_sha1 key from the raw key bytes\n      SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), \"HmacSHA1\");\n      \n      // get an hmac_sha1 Mac instance and initialize with the signing key\n      Mac mac = Mac.getInstance(\"HmacSHA1\");\n      mac.init(signingKey);\n      \n      // compute the hmac on input data bytes\n      byte[] rawHmac = mac.doFinal(data.getBytes());\n      \n      // base64-encode the hmac\n      result = Base64.encodeBase64String(rawHmac);\n    } catch (InvalidKeyException e) {\n      throw new SignatureException(\"Failed to generate HMAC as key is invalid\", e);\n    } catch (NoSuchAlgorithmException e) {\n      throw new SignatureException(\"Failed to generate HMAC as encoding algorithm does not exists\", e);\n    }\n    return result;\n    }\n\n[_You can also download the sample code from here_](https://drive.google.com/open?id=0B1_Q3paCi2f2V2d2emxNMlBhM3M)\n\n## Passing API Key & Signature Request Headers\n\nFollowing steps need to be followed to pass the API Key & Signature headers to Dailyhunt:\n\n\n\n1. You will pass the API key in the _Authorization_ header with value as “_key=<API Key>_”.\n2. You will generate a signature (Message Authentication Code - MAC) using the secure message Authentication code algorithm SHA1-HMAC as explained below:\n    1. Generate a signature (S), _S = SHA1-HMAC(Secret Key, Signature Base String)_.\n    2. Base64 encode the signature (S), let's call it _S64._\n3. While calling the API, include the signature (S) in the header as “_Signature:<value of S64 in 2.b above>_”\n4. If the API key & the signature are correct, Dailyhunt server will allow the API access, otherwise it will return error codes.\n\n\n## Error Codes\n\nYou will get below error codes for failures:\n\n<table>\n  <tr>\n   <td>401</td> <td>If invalid API key is given in the request header</td>\n   </tr>\n\n\n<tr>\n   <td>403</td> <td>If invalid Signature is given in the request heade</td>\n   </tr>\n<tr>\n<td>500</td> <td>For any unexpected issues at Dailyhunt</td>\n</tr>\n</table>\n\n<br>\n\nExample\n\n\tcurl -H\"Authorization:key=<API Key>\" -H\"Signature:<value of S64>\"\" \"http://<host:port>/api/v2/syndication/channels?partner=xxxx&puid=<your unique user id>&ts=<current server local timestamp>\"\n\n\n## Handling CORS\n\nDailyhunt API can also be integrated directly from the browser. In order to avoid Cross-Origin issue, Dailyhunt supports Cross-Origin Resource Sharing (CORS). Dailyhunt will provide the following headers in the preflight response with OPTIONS http method.\n\n_Access-Control-Allow-Origin:<Your Origin Host>_\n\n_Access-Control-Allow-Credentials: true_\n\nFor more information on CORS, you may refer [https://en.wikipedia.org/wiki/Cross-origin_resource_sharing](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) \n\n\n# Identity Management\n\nA unique user id is needed for every user accessing and consuming Dailyhunt’s content. \nDailyhunt uses the user id to understand the user’s content consumption pattern and to serve personalized content to the user.\n\n\nFollowing sections describe how you can pass a unique user id and the need for a Dailyhunt Cookie which needs to be maintained at your end.\n\n\n### Unique User ID\n\n\n\n1. You will need to provide a unique user id as query parameter in the Dailyhunt API calls. This could be any identifier such as a device identifier, if accessible and available.\n\n>Parameter Name: {{puid}}\n>    \n>Example: http://host:port/{{api_url}}?puid={{Your_unique_user_id}}\n\n\n\n2. Dailyhunt will generate & maintain an internal (Dailyhunt side) user id corresponding to your unique user id.\n\n\n### Dailyhunt Cookie\n\n\n\n1. When you access Dailyhunt API with your Unique User Id (i.e. “_puid_”) in the query parameter, Dailyhunt API will provide a user specific Cookie (_dhFeedV1_) in the API response.\n\n2. You are expected to maintain the _dhFeedV1_ Cookie per user at your end and pass it back on subsequent Dailyhunt API calls. For common browser based integrations, this should happen seamlessly.\n\n3. Dailyhunt will take care of (re-)generating the _dhFeedV1_ Cookie, if found missing in the request or if the Cookie is expired. Dailyhunt will reject the request if _dhFeedV1 _Cookie is found invalid.\n\n4. Dailyhunt Cookie helps avoid repeated lookup of the Dailyhunt internal user id for a given partner user id (_puid_) in every API call.\n\n5. Dailyhunt Cookie will be having a TTL of one month initially (and this may change in future).\n\n___\n\n# Available Language Codes\n\nFollowing table lists the available language codes supported by Dailyhunt’s content feeds. \n\nNote: Some of the channels may not have content for all languages. Please therefore review the feeds for the language of choice prior to rolling out your integration for a chosen language.\n\n\n<table>\n  <tr>\n   <td><strong>Code</strong>\n   </td>\n   <td><strong>Language Name</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>en\n   </td>\n   <td>English\n   </td>\n  </tr>\n  <tr>\n   <td>hi\n   </td>\n   <td>Hindi\n   </td>\n  </tr>\n  <tr>\n   <td>mr\n   </td>\n   <td>Marathi\n   </td>\n  </tr>\n  <tr>\n   <td>gu\n   </td>\n   <td>Gujarati\n   </td>\n  </tr>\n  <tr>\n   <td>pa\n   </td>\n   <td>Punjabi\n   </td>\n  </tr>\n  <tr>\n   <td>bn\n   </td>\n   <td>Bangla\n   </td>\n  </tr>\n  <tr>\n   <td>kn\n   </td>\n   <td>Kannada\n   </td>\n  </tr>\n  <tr>\n   <td>ta\n   </td>\n   <td>Tamil\n   </td>\n  </tr>\n  <tr>\n   <td>te\n   </td>\n   <td>Telugu\n   </td>\n  </tr>\n  <tr>\n   <td>ml\n   </td>\n   <td>Malayalam\n   </td>\n  </tr>\n  <tr>\n   <td>or\n   </td>\n   <td>Oriya\n   </td>\n  </tr>\n  <tr>\n   <td>ur\n   </td>\n   <td>Urdu\n   </td>\n  </tr>\n  <tr>\n   <td>bh\n   </td>\n   <td>Bhojpuri\n   </td>\n  </tr>\n  <tr>\n   <td>ne\n   </td>\n   <td>Nepali\n   </td>\n  </tr>\n</table>\n\n___\n\n\n\n\n# Handling Image Url for Different Resolutions/Quality\n\nThe above API provides “images” field, having one or more image urls for the story card. The image url will have the following format:\n\n>[http://bcdn.newshunt.com/{CMD}/{W}x{H}_{Q}/(image_folder).{EXT}]\n\nWhere,\n\n\n\n*   **_{CMD}_** = one of _“crop”_ or _“resize”_\n*   **_{W}_** = Desired width of the image based on your user’s device dimension\n*   **_{H}_** = Desired height of the image based on your user’s device dimension\n*   **_{Q}_** = Desired image quality in percentage based on user’s network quality, highest possible value is 100 and quality value is directly proportional to the image file size\n*   **_{EXT}_** = Desired image extension such as _webp_, _jpg_, etc.\n\nYou should take care of replacing the above placeholders with appropriate values matching your user’s device & network speed qualifier. Dailyhunt will dynamically generate each image matching your criteria & cache on Dailyhunt’s CDN.\n\n\n# Managing Clickouts\n\n\n\n1. When your user clicks on a story card, you will invoke the story card **deepLinkUrl** which is given in the [**syndication/items** api response](https://documenter.getpostman.com/view/3047734/SVfTQ7qA?version=latest#e961c9fc-ecf2-4c43-9db3-4f4a5c129ded) \nYou will also need to pass the **Dailyhunt Cookie (dhFeedV1)** while calling **deepLinkUrl**. This is important to ensure proper attribution.\n\n2. The deep link URL will either open in the browser (if user does not have Dailyhunt app installed) or in the Dailyhunt app (if user has Dailyhunt app installed & chooses to open with Dailyhunt app)\n\n\n3. Dailyhunt will include the following explicit tracking parameters in the **deepLinkUrl**.\n\n<table>\n  <tr>\n   <td><strong>Tracking Field Name</strong>\n   </td>\n   <td><strong>Tracking Field Value</strong>\n   </td>\n  </tr>\n  <tr>\n   <td><em>s</em>\n   </td>\n   <td>It represents the partner. Value will be the <em>Partner Code</em>, as configured by Dailyhunt team. \n   </td>\n  </tr>\n  <tr>\n   <td><em>ss</em>\n   </td>\n   <td>It represents the mode of integration on the partner side. Value will be, as configured by Dailyhunt team. Examples include - \"-1Screen\", \"LockScreen\", \"NativeBrowser\", \"QuickAccess\", \"NativeApp\", \"Stubs\", \"ContentBanners\" etc.\n   </td>\n  </tr>\n</table>\n\n\n\n# Managing Tracking\n\nTo help measure/track the cards seen by the user, you will need to pass the tracking data for each item card seen by your user. To enable this, Dailyhunt provides the tracking data & tracking POST URLs in the Content Fetch API response.\n\n\n### How to track the seen cards\n\n\n\n1. Dailyhunt provides **trackData** field for each card, this is mentioned in the [**Content Fetch API**](https://documenter.getpostman.com/view/3047734/SVfTQ7qA?version=latest#e961c9fc-ecf2-4c43-9db3-4f4a5c129ded) section,\n2. In the same response above, Dailyhunt also provides a tracking POST URL via the **trackUrl** field.\n\nYou will need to form an array of the **trackData** values and POST the same to the **trackUrl** for the cards seen by the user. You can do this periodically or every time user sees a page worth of cards (as close to the user activity as possible). Please refer to [**Tracking API**](https://documenter.getpostman.com/view/3047734/SVfTQ7qA?version=latest#6902dc22-50a6-438b-a062-0bcfa3479606) for more details.\n\n# Collecting User Feedback On Cards\n\nFor all the cards displayed at your end, your user may want to give feedback about the cards seen. Dailyhunt provides ability to show the specific feedback options that can be displayed to your user & allow to send the signals to the Dailyhunt server. Dailyhunt will use these signals to further improve the personalized feed of your user.\nRefer : Feedback API\n\n## Feedback Options POST API\n\nThe below API allows submission of the feedback options given by user to Dailyhunt server.\n\n\n#### Request\n\nBelow describes the API request URL, parameters & request headers.\n\n\n##### API Url\n\nPOST /api/v2/syndication/feedback\n\n\n##### Query Parameters & Headers\n\nIt needs all the common parameters & headers.\n\n\n##### \n\n\n##### Request Payload\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>options\n   </td>\n   <td>\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>id\n   </td>\n   <td>Option id\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>value\n   </td>\n   <td>Option value\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\n   </td>\n   <td>JSON Object Array\n\n   </td>\n  </tr>\n  <tr>\n   <td>itemId\n\n   </td>\n   <td>The card's item id where feedback was reported\n\n   </td>\n   <td>String\n\n   </td>\n  </tr>\n</table>\n\n\n\n##### Response\n\nBelow describes the API response code & expected response payload structure.\n\n\n##### Code\n\n200 OK - for a successful processing.\n\n500 Internal Server Error - for any issues during processing.\n\nA sample JSON response of the above is available in the _Appendix_ section.\n\n\n# Integration Points Of Contact\n\n\n<table>\n  <tr>\n   <td><strong>Contact</strong>\n   </td>\n   <td><strong>Primary</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>Ankita Arora (<span style=\"text-decoration:underline;\">ankita.arora<a href=\"mailto:amarjit.thiyam@dailyhunt.in\">@dailyhunt.in</a></span>)\n<p>\nShashikant Kulkarni (<span style=\"text-decoration:underline;\">shashikant.kulkarni@dailyhunt.in</span>)\n   </td>\n   <td>Tech\n   </td>\n  </tr>\n  <tr>\n   <td>Adarsh Raja (<a href=\"mailto:adarsh.raja@verse.in\">adarsh.raja@verse.in</a>)\n   </td>\n   <td>Product/UX\n   </td>\n  </tr>\n</table>\n\n\n\n\n## \n\n\n## Content Type Enum\n\nPossible enumeration values of the “_Content Type_” of a card are as follows:\n\n\n<table>\n  <tr>\n   <td><strong>Content Type</strong>\n   </td>\n   <td><strong>Applicable Fields from (/api/v2/syndication/items)</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>STORY\n   </td>\n   <td>All the fields except “collectionItems”\n   </td>\n  </tr>\n  <tr>\n   <td>VIDEO\n   </td>\n   <td>All the fields except “collectionItems”\n   </td>\n  </tr>\n  <tr>\n   <td>PHOTO\n   </td>\n   <td>All the fields except “collectionItems”\n   </td>\n  </tr>\n  <tr>\n   <td>BANNER\n   </td>\n   <td>“images” & “deepLinkUrl” (will be delivered as Phase II)\n   </td>\n  </tr>\n  <tr>\n   <td>QUESTION_MULTI_CHOICES\n   </td>\n   <td>All the fields including “collectionItems” (will be delivered as Phase II)\n   </td>\n  </tr>\n  <tr>\n   <td>HTML\n   </td>\n   <td>“description” & “deepLinkUrl” (description will have HTML content for dynamic content channels such as for Elections, Cricket etc which will be delivered as Phase II)\n   </td>\n  </tr>\n</table>\n\n\n\n## API Security Sample Java Code\n\nThis section describes briefly how the API Key & Secret is used for signing the messages & sent to the Dailyhunt API server. It also has a working Java Client code that can be downloaded for your trial runs.\n\n\n\n\n\n### References\n\nHMAC - [https://en.wikipedia.org/wiki/Hash-based_message_authentication_code](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \n\nJava HMAC - [https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/HmacUtils.html](https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/HmacUtils.html) \n\n[http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AuthJavaSampleHMACSignature.html](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AuthJavaSampleHMACSignature.html) \n\n\n## API Integration Environments\n\nFollowing lists the integration environments available:\n\n\n<table>\n  <tr>\n   <td><strong>Environment</strong>\n   </td>\n   <td><strong>Host</strong>\n   </td>\n   <td><strong>Port</strong>\n   </td>\n   <td><strong>Description</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>Stage\n   </td>\n   <td><a href=\"http://qa-news.newshunt.com\">qa-news.newshunt.com</a>\n   </td>\n   <td>80\n   </td>\n   <td>The stage integration environment for development & testing\n   </td>\n  </tr>\n  <tr>\n   <td>Prod\n   </td>\n   <td>feed.dailyhunt.in\n   </td>\n   <td>80\n   </td>\n   <td>The production environment\n   </td>\n  </tr>\n</table>\n\n\n\n\n\n# Appendix II\n\n\n## UI Type - Content Type Mapping\n\n\n<table>\n  <tr>\n   <td><strong>Content Type “type”</strong>\n   </td>\n   <td><strong>Card Layout “uiType”</strong>\n   </td>\n   <td><strong>Example</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>STORY\n   </td>\n   <td>NORMAL \\\n(with image)\n   </td>\n   <td>\n\n<p id=\"gdcalert4\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration1.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert5\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration1.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n<p>\n\n\n<p id=\"gdcalert5\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration2.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert6\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration2.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>STORY\n   </td>\n   <td>NORMAL \\\n(without image)\n   </td>\n   <td>\n\n<p id=\"gdcalert6\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration3.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert7\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration3.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>STORY\n   </td>\n   <td>HERO\n   </td>\n   <td>\n\n<p id=\"gdcalert7\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration4.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert8\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration4.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n<p>\n\n\n<p id=\"gdcalert8\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration5.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert9\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration5.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>STORY\n   </td>\n   <td>TILE_3\n   </td>\n   <td>\n\n<p id=\"gdcalert9\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration6.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert10\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration6.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>PHOTO\n   </td>\n   <td>TILE_3\n   </td>\n   <td>\n\n<p id=\"gdcalert10\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration7.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert11\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration7.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>PHOTO\n   </td>\n   <td>GRID_3\n   </td>\n   <td>\n\n<p id=\"gdcalert11\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration8.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert12\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration8.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>PHOTO\n   </td>\n   <td>GRID_5\n   </td>\n   <td>\n\n<p id=\"gdcalert12\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration9.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert13\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration9.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>VIDEO\n   </td>\n   <td>NORMAL\n   </td>\n   <td>\n\n<p id=\"gdcalert13\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration10.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert14\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration10.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>VIDEO\n   </td>\n   <td>HERO\n   </td>\n   <td>\n\n<p id=\"gdcalert14\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration11.png). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert15\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration11.png\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>BANNER\n   </td>\n   <td>NORMAL\n   </td>\n   <td>\n\n<p id=\"gdcalert15\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration12.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert16\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration12.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>QUESTION_MULTI_CHOICES\n   </td>\n   <td>GRID\n   </td>\n   <td>\n\n<p id=\"gdcalert16\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration13.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert17\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration13.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>QUESTION_MULTI_CHOICES\n   </td>\n   <td>TAGS\n   </td>\n   <td>\n\n<p id=\"gdcalert17\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration14.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert18\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration14.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n  <tr>\n   <td>QUESTION_MULTI_CHOICES\n   </td>\n   <td>CAROUSEL\n   </td>\n   <td>\n\n<p id=\"gdcalert18\" ><span style=\"color: red; font-weight: bold\">>>>>>  gd2md-html alert: inline image link here (to images/Partner-Integration15.jpg). Store image on your image server and adjust path/filename if necessary. </span><br>(<a href=\"#\">Back to top</a>)(<a href=\"#gdcalert19\">Next alert</a>)<br><span style=\"color: red; font-weight: bold\">>>>>> </span></p>\n\n\n<img src=\"images/Partner-Integration15.jpg\" width=\"\" alt=\"alt_text\" title=\"image_tooltip\">\n\n   </td>\n  </tr>\n</table>\n\n\n\n# Appendix III\n\n\n## Live Cricket Feed Integration\n\nDailyhunt exposes cricket matches feed through APIs and the same can be used for integration in your app.\n\n\n### Cricket Channel\n\nDailyhunt provides “_Cricket_” channel that will provide a list of the upcoming, current & past matches. The below table describes the channel fields and descriptions of a _Cricket_ _Channel_.\n\n\n<table>\n  <tr>\n   <td><strong>Channel Field</strong>\n   </td>\n   <td><strong>Cricket Channel Description</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>id\n   </td>\n   <td>The cricket channel id\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>type\n   </td>\n   <td>The channel type will be “<em>CRICKET</em>”\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>name\n   </td>\n   <td>The channel name will be “Cricket” in unicode\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>contentUrl\n   </td>\n   <td>The cricket matches browse API url as explained below\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>deepLinkUrl\n   </td>\n   <td>This is not used currently\n   </td>\n   <td>\n   </td>\n  </tr>\n</table>\n\n\n\n### Browse Cricket Matches\n\nLike every other channel, _Cricket_ channel also will have a content fetch API that is of the form ‘_/syndication/items_’. The cricket channel content Fetch API provides a way to dynamically explore the list of upcoming, current & past cricket matches.\n\nBelow table describes the fields of a _Cricket Match_ that will be given in the ‘_/syndication/items_’ API response.\n\n\n<table>\n  <tr>\n   <td><strong>Item Field</strong>\n   </td>\n   <td><strong>Cricket Match Description</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>id\n   </td>\n   <td>The cricket match id\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>type\n   </td>\n   <td>The item type will be “<em>CRICKET</em>”\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>title\n   </td>\n   <td>The title of the cricket match\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>matchDate*\n   </td>\n   <td>The start date time of the cricket match\n   </td>\n   <td>Long\n   </td>\n  </tr>\n  <tr>\n   <td>team1*\n   </td>\n   <td>The cricket match playing first team\n   </td>\n   <td><em>Team</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>team2*\n   </td>\n   <td>The cricket match playing second team\n   </td>\n   <td><em>Team</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>streamUrl*\n   </td>\n   <td>The score streaming api url of the cricket match\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>commentaryUrl*\n   </td>\n   <td>The commentary streaming api url of the cricket match as described in section “<em>Stream Cricket Match Commentary API</em>”\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>trackData\n   </td>\n   <td>The tracking data for the match\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>trackFrequency*\n   </td>\n   <td>The time gap in milliseconds for POSTing trackData to Dailyhunt\n   </td>\n   <td>Long\n   </td>\n  </tr>\n</table>\n\n\n_* - fields specific to “Cricket Match” item (not applicable to other content types)_\n\nThe fields of the “_Team_” object above has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Description</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>id\n   </td>\n   <td>The team id of the cricket match\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>teamName\n   </td>\n   <td>The short name of the team such as IND, AUS etc\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>teamIcon\n   </td>\n   <td>The flag image url of the team\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\n\n### Stream Cricket Match Score API\n\nThis API allows to stream the score of a given match. Below section describes the request and response of the match score streaming API.\n\n\n#### Request\n\nBelow describes the API request URL, parameters & request headers.\n\n\n##### API Url\n\nGET /api/v2/syndication/streams/cricket/score\n\n\n##### Query Parameters & Headers\n\nIt needs all the common parameters & headers including the following parameter(s):\n\n\n<table>\n  <tr>\n   <td><strong>Name</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td><em>matchId</em>\n   </td>\n   <td>The match id for which we want to stream the score\n   </td>\n   <td>Query Parameter\n   </td>\n  </tr>\n</table>\n\n\n\n#### Response\n\nBelow describes the API response code & expected response payload structure.\n\n\n##### Code\n\n_200 - OK for success_\n\n_204 - No match found_\n\n500 _- For any issues during processing_\n\n\n##### Payload Response\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>code\n   </td>\n   <td>Http Status Code value\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>data\n   </td>\n   <td>\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>s\n   </td>\n   <td>Detailed score response as explained below\n   </td>\n   <td><em>ScoreDetail</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>v\n   </td>\n   <td>Version of the streaming data\n   </td>\n   <td>Long\n   </td>\n  </tr>\n</table>\n\n\n   </td>\n   <td>JSON object\n\n   </td>\n  </tr>\n</table>\n\n\nThe “_s = ScoreDetail_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>sb\n   </td>\n   <td>It has the scoreboard as explained below\n   </td>\n   <td><em>ScoreBoard</em> Object \n   </td>\n  </tr>\n  <tr>\n   <td>ti\n   </td>\n   <td>It has the team inining details as explained below\n   </td>\n   <td><em>TeamInnings</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>lw\n   </td>\n   <td>The last wicket of the match\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\nThe “_sb = ScoreBoard_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>h\n   </td>\n   <td>HomeTeam\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>a\n   </td>\n   <td>Away team\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>v\n   </td>\n   <td>Venue name\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>md\n   </td>\n   <td>Match Date\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>mt\n   </td>\n   <td>Match Time\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>cr\n   </td>\n   <td>Current run rate while in play\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>mom\n   </td>\n   <td>Man of the match (will be available post match)\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>s\n   </td>\n   <td>Status line of the match (e.g: <em>England lead West Indies by 62 runs)</em>\n   </td>\n   <td>String \n   </td>\n  </tr>\n  <tr>\n   <td>p\n   </td>\n   <td>true means the match is in prematch & not started yet\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n  <tr>\n   <td>t11\n   </td>\n   <td>First team’s first inning score\n   </td>\n   <td><em>TeamScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t21\n   </td>\n   <td>Second team’s first inning score\n   </td>\n   <td><em>TeamScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t12\n   </td>\n   <td>First team’s second inning score\n   </td>\n   <td><em>TeamScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t22\n   </td>\n   <td>Second team’s second inning score\n   </td>\n   <td><em>TeamScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>c\n   </td>\n   <td>true means the match is completed\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n</table>\n\n\nThe “_t11 or t21 or t12 or t22 = TeamScore_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>r\n   </td>\n   <td>Runs\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>o\n   </td>\n   <td>Overs\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>w\n   </td>\n   <td>Wickets\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n</table>\n\n\nThe “ti_ = TeamInnings_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>ci\n   </td>\n   <td>Current innings identifier\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>t11\n   </td>\n   <td>The first team’s first inning score details\n   </td>\n   <td><em>TeamInningScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t21\n   </td>\n   <td>The second team’s first inning score details\n   </td>\n   <td><em>TeamInningScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t12\n   </td>\n   <td>The first team’s second inning score details\n   </td>\n   <td><em>TeamInningScore</em> Object\n   </td>\n  </tr>\n  <tr>\n   <td>t22\n   </td>\n   <td>The second team’s second inning score details\n   </td>\n   <td><em>TeamInningScore</em> Object\n   </td>\n  </tr>\n</table>\n\n\nThe “_t11 or t21 or t12 or t22 = TeamInningScore_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>btn\n   </td>\n   <td>Batting Team Name\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>s\n   </td>\n   <td>The innings score\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>o\n   </td>\n   <td>The innings overs\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>w\n   </td>\n   <td>The innings wickets\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>od\n   </td>\n   <td>Order\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>bm\n   </td>\n   <td>Batsmen score details for the inning\n   </td>\n   <td><em>BatsmanDetail</em> Array\n   </td>\n  </tr>\n  <tr>\n   <td>bl\n   </td>\n   <td>Bowlers score details for the inning\n   </td>\n   <td><em>BowlerDetail</em> Array\n   </td>\n  </tr>\n  <tr>\n   <td>fow\n   </td>\n   <td>Fall Of Wickets\n   </td>\n   <td><em>WicketsDetails </em>Object\n   </td>\n  </tr>\n  <tr>\n   <td>extras\n   </td>\n   <td>Extras\n   </td>\n   <td><em>ExtrasDetail</em> Object\n   </td>\n  </tr>\n</table>\n\n\nThe “_bm = BatsmanDetail_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>n\n   </td>\n   <td>Batsman name\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>r\n   </td>\n   <td>Runs made by the batsman\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>b\n   </td>\n   <td>Balls faced by the batsman\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>f\n   </td>\n   <td>Total number of fours scored by the batsman\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>s\n   </td>\n   <td>Total number of sixes scored by the batsman\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>sr\n   </td>\n   <td>Strike Rate of the batsman\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>os\n   </td>\n   <td>When value is true, batsman is ‘On Strike’\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n  <tr>\n   <td>ho\n   </td>\n   <td>The status string of how batsman was out\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\nThe “_bl = BowlerDetail_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>n\n   </td>\n   <td>Bowler name\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>o\n   </td>\n   <td>Overs\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>m\n   </td>\n   <td>Maidens\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>r\n   </td>\n   <td>Runs\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>w\n   </td>\n   <td>Wickets\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>e\n   </td>\n   <td>Economy\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>os\n   </td>\n   <td>On Strike\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n  <tr>\n   <td>ns\n   </td>\n   <td>Non Striker\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n</table>\n\n\n\n\nThe “_fow = WicketsDetails_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>no\n   </td>\n   <td>Order\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>n\n   </td>\n   <td>Name\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>s\n   </td>\n   <td>Score\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>o\n   </td>\n   <td>Over\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\nThe “_extras = ExtrasDetail_” object has the following attributes:\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>nb\n   </td>\n   <td>No Balls\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>e\n   </td>\n   <td>Extras\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>b\n   </td>\n   <td>Byes\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>lb\n   </td>\n   <td>Leg Byes\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>wd\n   </td>\n   <td>Wides\n   </td>\n   <td>String\n   </td>\n  </tr>\n</table>\n\n\n\n### \n\n\n### Stream Cricket Match Commentary API\n\nThis API allows to stream the commentary of a given match. Below section describes the request and response of the match score streaming API.\n\n\n#### Request\n\nBelow describes the API request URL, parameters & request headers.\n\n\n##### API Url\n\nGET /api/v2/syndication/streams/cricket/commentary\n\n\n##### Query Parameters & Headers\n\nIt needs all the common parameters & headers including the following parameter(s):\n\n\n<table>\n  <tr>\n   <td><strong>Name</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td><em>matchId</em>\n   </td>\n   <td>The match id for which we want to stream the score\n   </td>\n   <td>Query Parameter\n   </td>\n  </tr>\n  <tr>\n   <td><em>pageSize</em>\n   </td>\n   <td>The number of commentary lines (per bowl or per end-of-over) in a page\n   </td>\n   <td>Query Parameter\n   </td>\n  </tr>\n  <tr>\n   <td><em>pageNumber</em>\n   </td>\n   <td>The commentary page number requested\n   </td>\n   <td>Query Parameter\n   </td>\n  </tr>\n</table>\n\n\n\n#### Response\n\nBelow describes the API response code & expected response payload structure.\n\n\n##### Code\n\n_200 - OK for success_\n\n_204 - No match found or no more commentary available_\n\n500 _- For any issues during processing_\n\n\n##### \n\n\n##### Payload Response\n\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>code\n   </td>\n   <td>Http Status Code value\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>data\n   </td>\n   <td>\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>rows\n   </td>\n   <td>\n\n<table>\n  <tr>\n   <td><strong>Field</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n   <td><strong>Data Type</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>id\n   </td>\n   <td>The commentary id\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>message\n   </td>\n   <td>Commentary Texts\n   </td>\n   <td>String\n   </td>\n  </tr>\n  <tr>\n   <td>over\n   </td>\n   <td>Over count\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>ball\n   </td>\n   <td>Ball number\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>ballStatus\n   </td>\n   <td>Status of the ball - could be runs count or wicket/wide etc\n   </td>\n   <td>Integer\n   </td>\n  </tr>\n  <tr>\n   <td>endOfOver\n   </td>\n   <td>true means the commentary is for the end of over commentary\n   </td>\n   <td>Boolean\n   </td>\n  </tr>\n</table>\n\n\n   </td>\n   <td>JSON Object Array having a list of Commentary texts\n\n   </td>\n  </tr>\n  <tr>\n   <td>pageNumber\n\n   </td>\n   <td>The current page number of the paginated data\n\n   </td>\n   <td>Integer\n\n   </td>\n  </tr>\n  <tr>\n   <td>count\n\n   </td>\n   <td>Total number of cards in the page\n\n   </td>\n   <td>Integer\n\n   </td>\n  </tr>\n  <tr>\n   <td>nextPageUrl\n\n   </td>\n   <td>The next page API url\n\n   </td>\n   <td>String\n\n   </td>\n  </tr>\n</table>\n\n\n   </td>\n   <td>JSON object\n\n   </td>\n  </tr>\n</table>\n\n\n\n### Tracking Cricket Match\n\nA match card in the “_Browse Cricket_” section has the “_trackData_” attribute and you can use the same tracking approach mentioned in the section - “_Managing Tracking_” to POST the cricket score views to Dailyhunt. Just that, the frequency of POSTing the _trackData_ for cricket content refreshes, will be managed by the “_trackFrequency_” field given along with the “_trackData_”.\n\n\n# Appendix IV\n\nList of features:\n\n\n<table>\n  <tr>\n   <td><strong>Feature</strong>\n   </td>\n   <td><strong>Value</strong>\n   </td>\n  </tr>\n  <tr>\n   <td>LIVE_TV_CARD\n   </td>\n   <td>1\n   </td>\n  </tr>\n  <tr>\n   <td>HERO_CARD\n   </td>\n   <td>8\n   </td>\n  </tr>\n  <tr>\n   <td>CRICKET_CARD\n   </td>\n   <td>16\n   </td>\n  </tr>\n  <tr>\n   <td>VIDEO_CHANNELS\n   </td>\n   <td>32\n   </td>\n  </tr>\n</table>\n\n\n*Bit 2 and 4 are reserved for some default feature.\n\n\n# Comscore ListView attribution\n\nBelow comscore script to be attached in each List page being loaded.\n\nIf the call from browser is https, Use :\n\n<div id=\"csDiv\"></div> <script> document.getElementById(\"csDiv\").innerHTML = '<img src=\"https://sb.scorecardresearch.com/p?c1=2&c2=21733245&c4=http%3A%2F%2Fm.dailyhunt.in%2Fnews%2F&c9=m.dailyhunt.in\" />'; </script>\n\nElse for http Use :\n\n<div id=\"csDiv\"></div> <script> document.getElementById(\"csDiv\").innerHTML = '<img src=\"http://b.scorecardresearch.com/p?c1=2&c2=21733245&c4=http%3A%2F%2Fm.dailyhunt.in%2Fnews%2F&c9=m.dailyhunt.in\" />'; </script>\n\n\n<!-- Docs to Markdown version 1.0β17 -->\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"3047734","team":513309,"collectionId":"ef182a95-2449-4cab-89e7-45dc31f50868","publishedId":"SVfTQ7qA","public":true,"publicUrl":"https://documenter-api.postman.tech/view/3047734/SVfTQ7qA","privateUrl":"https://go.postman.co/documentation/3047734-ef182a95-2449-4cab-89e7-45dc31f50868","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","version":"8.10.0","publishDate":"2019-09-04T09:02:36.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/45525660037e62f26c41b9999276a12e1353d5a0b3aa4f6e370f58d867327104","favicon":"https://res.cloudinary.com/postman/image/upload/v1617606575/team/k8bkzccbqrdsbdn3hukc.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/SVfTQ7qA"}