{"id":21284476,"url":"https://github.com/nasdaq/nasdaqclouddataservice-sdk-java","last_synced_at":"2026-01-02T16:41:57.054Z","repository":{"id":43332855,"uuid":"225417891","full_name":"Nasdaq/NasdaqCloudDataService-SDK-Java","owner":"Nasdaq","description":"Nasdaq Data Link provides a modern and efficient method of delivery for real-time exchange data and other financial information. This repository provides a Java SDK for developing applications using Nasdaq Data Link's real-time data.","archived":false,"fork":false,"pushed_at":"2024-05-21T15:56:44.000Z","size":2338,"stargazers_count":84,"open_issues_count":1,"forks_count":19,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-01-22T04:44:35.186Z","etag":null,"topics":["bx","exchange-data","financial-data","index","low-cost","market-data","nasdaq","nasdaq-canada","ncds","news","options","psx","realtime","rest","restapi","sdk","streaming"],"latest_commit_sha":null,"homepage":"https://www.nasdaq.com/solutions/data-link-api","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nasdaq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-02T16:17:22.000Z","updated_at":"2025-01-12T18:22:21.000Z","dependencies_parsed_at":"2024-01-04T19:40:50.669Z","dependency_job_id":"45674bb4-3fa7-4266-aa2d-e279e75733b1","html_url":"https://github.com/Nasdaq/NasdaqCloudDataService-SDK-Java","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdaq%2FNasdaqCloudDataService-SDK-Java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdaq%2FNasdaqCloudDataService-SDK-Java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdaq%2FNasdaqCloudDataService-SDK-Java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdaq%2FNasdaqCloudDataService-SDK-Java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nasdaq","download_url":"https://codeload.github.com/Nasdaq/NasdaqCloudDataService-SDK-Java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243746127,"owners_count":20341203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bx","exchange-data","financial-data","index","low-cost","market-data","nasdaq","nasdaq-canada","ncds","news","options","psx","realtime","rest","restapi","sdk","streaming"],"created_at":"2024-11-21T11:16:08.694Z","updated_at":"2026-01-02T16:41:57.048Z","avatar_url":"https://github.com/Nasdaq.png","language":"HTML","readme":"# Nasdaq Data Link - Streaming API Java SDK\n\nNasdaq Data Link provides a modern and efficient method of delivery for realtime exchange data and other financial information. Data is made available through a suite of APIs, allowing for effortless integration of data from disparate sources, and a dramatic reduction in time to market for customer-designed applications. The API is highly scalable, and robust enough to support the delivery of real-time exchange data. Read our latest case study: \u003ca href=\"https://www.nasdaq.com/docs/2022/10/09/2107-Q22_NDL_Unhedged-Case-Study.pdf\"\u003eNasdaq Data Link Provides Real-Time Data with Efficiency and Scale to Fintech Newcomer Unhedged\u003c/a\u003e\n\nThis repository provides an SDK for developing applications to access Nasdaq Data Link's Streaming API. While the SDK is open source, connecting to the API does require credentials, which are provided by Nasdaq during an on-boarding process.\n\n\n# Products Currently Available\n### Equities\n#### The Nasdaq Stock Market\n- [Nasdaq Basic](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf)(real-time \u0026 delayed)\n- [Nasdaq Last Sale+](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/be43dffd095ba2ba0ce65b1689cc228f/NewLastSale_Cloud-2025-1.pdf) (real-time \u0026 delayed)\n- [Nasdaq TotalView](https://assets.ctfassets.net/mx0rke14e5yt/2nwLafPib6CgIbFu63K4zo/71480a8ab9bb6f97190f056da7133c2e/Nasdaq_ITCH_Products_2025-1.pdf)\n- [Nasdaq Consolidated Quotes and Trades V2](https://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/CQT-cloud.pdf) (real-time \u0026 delayed)\n- [Nasdaq Consolidated Quotes and Trades V3](https://images.ctfassets.net/mx0rke14e5yt/19Ud7WoFVS17VcIk4efxNd/8decf61dacc984ecdd6bad0192b6c7a5/CQT-cloud.pdf) (real-time \u0026 delayed)\n#### Nasdaq BX\n- [BX BBO](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf)\n- [BX Last Sale v4](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/be43dffd095ba2ba0ce65b1689cc228f/NewLastSale_Cloud-2025-1.pdf)\n#### Nasdaq PSX\n- [PSX BBO](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf)\n- [PSX Last Sale v4](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/be43dffd095ba2ba0ce65b1689cc228f/NewLastSale_Cloud-2025-1.pdf)\n#### Nasdaq Canada\n- [Nasdaq Canada Basic](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/Nasdaq-Basic-Canada-Cloud-Specification.pdf)\n#### OTC Markets\n- [OTC Markets](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/OTCM-cloud.pdf) (real-time \u0026 delayed)\n#### Bruce Markets\n- [Bruce Best Bid and Offer](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf)\n- [Bruce Last Sale](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/be43dffd095ba2ba0ce65b1689cc228f/NewLastSale_Cloud-2025-1.pdf)\n- [Bruce Depth of Book](https://assets.ctfassets.net/mx0rke14e5yt/2nwLafPib6CgIbFu63K4zo/71480a8ab9bb6f97190f056da7133c2e/Nasdaq_ITCH_Products_2025-1.pdf)\n### Indexes \u0026 ETPs\n- [Global Index Data Service](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/GIDS_Cloud.pdf)\n### Options\n#### Nasdaq U.S. Derivatives\n- [Nasdaq Smart Options](http://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NCDSSmartOptions.pdf)\n- [Nasdaq Options Greeks and Implied Volatility](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/GreeksandVols_Specification.pdf)\n- [Nasdaq Options Greeks and Implied Volatility Powered by Nasdaq Basic](https://assets.ctfassets.net/mx0rke14e5yt/5TJxpG0Cjk1tNUIRP4rZ86/5d77161ead15d746872d2ff17ba6ac06/Greeks_and_Vols_Powered_by_Basic_Streaming_Specs.pdf)\n### Mutual Funds\n- [Nasdaq Fund Network](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NFNDS_NCDS.pdf)\n### News\n- [Financial News - MT Newswires](http://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/MTNewswires-cloud.pdf)\n- [Benzinga Market Newswires](https://data.nasdaq.com/databases/BENZ)\n\n# Table of Contents\n- [Getting Started](#Getting-Started)\n- [Using the SDK](#Using-The-SDK)\n- [Documentation](#Documentation)\n- [Docker](#Docker)\n- [Contributing](#Contributing)\n- [License](#License)\n\n\n## Getting Started\n\n### Pre-requisites\n\n- OpenJDK 8\n- Maven 3\n\n### Get the SDK\n\nClone the repository: ```git clone https://github.com/Nasdaq/CloudDataService```\n- Run ```mvn install``` to build the library, test, javadoc and source jars and install to your local Maven repository.\n- Run ```mvn javadoc:javadoc``` to build the documentation.\n\n### Stream configuration\n\n=======\n\nReplace example stream properties in the file **kafka-config.properties** (https://github.com/Nasdaq/CloudDataService/blob/master/ncdssdk-client/src/main/resources/kafka-config.properties) with provided values during on-boarding.\n\nRequired kafka configuration\n\n```properties\nbootstrap.servers={streams_endpoint_url}:9094\n```\n\nFor optional consumer configurations see: https://kafka.apache.org/0100/javadoc/org/apache/kafka/clients/consumer/ConsumerConfig.html\n\nFor example:\n```properties\nrequest.timeout.ms=20000\nretry.backoff.ms=500\nmax.poll.records=2000\n```\n \n=======\n\n### Client Authentication configuration\n\nReplace example client authentication properties in the file **clientAuthentication-config.properties** (https://github.com/Nasdaq/CloudDataService/blob/master/ncdssdk-client/src/main/resources/clientAuthentication-config.properties) with valid credentials provided during on-boarding.\n\n```properties\noauth.token.endpoint.uri=https://{auth_endpoint_url}/auth/realms/pro-realm/protocol/openid-connect/token\noauth.client.id=client\noauth.client.secret=client-secret\noauth.username.claim=preferred_username\n```\n### Logging Configuration\n\nTo enable debug logging, edit the file (https://github.com/Nasdaq/CloudDataService/blob/master/ncdssdk-client/src/main/resources/log4j.xml) and change line 18 to the logging level desired.\n\nFor example, to enable debug logging to a file:\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" ?\u003e\n\u003c!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\"\u003e\n\u003clog4j:configuration debug=\"false\" xmlns:log4j='http://jakarta.apache.org/log4j/'\u003e\n\n    \u003cappender name=\"FILE\" class=\"org.apache.log4j.FileAppender\"\u003e\n\n        \u003cparam name=\"file\" value=\"logs/client/log.out\"/\u003e\n        \u003cparam name=\"immediateFlush\" value=\"true\"/\u003e\n        \u003cparam name=\"threshold\" value=\"debug\"/\u003e\n        \u003cparam name=\"append\" value=\"false\"/\u003e\n\n        \u003clayout class=\"org.apache.log4j.PatternLayout\"\u003e\n            \u003cparam name=\"conversionPattern\" value=\"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\"/\u003e\n        \u003c/layout\u003e\n    \u003c/appender\u003e\n\n    \u003croot\u003e\n        \u003clevel value=\"DEBUG\"/\u003e\n        \u003cappender-ref ref=\"FILE\"/\u003e\n    \u003c/root\u003e\n\n\u003c/log4j:configuration\u003e\n```\n\n### Create NCDS Session Client\n\nRun `mvn clean install` command in ncdssdk-client project (https://github.com/Nasdaq/CloudDataService/tree/master/ncdssdk-client). It will generate the jar file in target file.\nHow to run the jar:\n```\n-opt -- Provide the operation you want to perform \\n\" +\n  \"        * TOP - View the top nnn records in the Topic/Stream\\n\"+\n  \"        * SCHEMA - Display the Schema for the topic\\n\"+\n  \"        * METRICS - Display the Metrics for the topic\\n\"+\n  \"        * TOPICS - List of streams available on Nasdaq Cloud DataService\\n\"+\n  \"        * GETMSG - Get one example message for the\\n\"+\n  \"        * CONTSTREAM   - Retrieve continuous stream  \\n\"+\n  \"        * FILTERSTREAM  - Retrieve continuous stream filtered by symbols and/or msgtypes \\n\"+\n  \"        * NEWS - Get stream for Pro Global news stream\\n\"+\n  \"        * HELP - help \\n\"+\n\"-topic -- Provide topic for selected option         --- REQUIRED for TOP,SCHEMA,METRICS,GETMSG,CONTSTREAM,FILTERSTREAM  and NEWS \\n\"+\n\"-symbols -- Provide symbols comma separated list    --- OPTIONAL for FILTERSTREAM\"+  \n\"-msgtypes -- Provide msgtypes comma separated list  --- OPTIONAL for FILTERSTREAM\"+  \n\"-authprops -- Provide Client Properties File path   --- For using different set of Client Authentication Properties \\n\"+\n\"-kafkaprops -- Provide Kafka Properties File path   --- For using different set of Kafka Properties \\n\"+\n\"-n -- Provide number of messages to retrieve        --- REQUIRED for TOP \\n\"+\n\"-msgName -- Provide name of message based on schema --- REQUIRED for GETMSG \\n\"+\n\"-timestamp -- Provide timestamp in milliseconds     --- OPTIONAL for TOP, CONTSTREAM and FILTERSTREAM\\n\"\n```\n\nFew examples to use jar:\n\nGet first 100 records for given stream\n\n```java -jar ncdssdk-client.jar -opt TOP -n 100 -topic GIDS```\n\nGet all available streams\n\n```java -jar ncdssdk-client.jar -opt TOPICS```\n\n\n## Using the SDK\n\n### Getting list of data stream available\nList all available data stream for the user.\n```java\n// Example1.java\nNCDSClient ncdsClient = new NCDSClient();\nString[] topics = ncdsClient.ListTopicsForTheClient();\nSystem.out.println(\"Entitled DataSet Topics:\" );\nfor (String topicEntry : topics) {\n    System.out.println(topicEntry);\n}\n```\n\nExample output:\n```\nList of streams available on Nasdaq Cloud DataService:\nGIDS\nNLSUTP\nNLSCTA\n```\n\n### Getting schema for the stream\nThis methods returns the schema for the stream in Apache Avro format (https://avro.apache.org/docs/current/spec.html).\n```java\n// Example2.java\nNCDSClient ncdsClient = new NCDSClient();\nString topic = \"GIDS\";\nString schema = ncdsClient.getSchemaForTheTopic(topic);\nSystem.out.println(schema);\n```\nExample output:\n```\n[ {\n    \"type\" : \"record\",\n    \"name\" : \"SeqCommoditySummary\",\n    \"namespace\" : \"com.nasdaq.marketdata.sequencer.applications.datafeed.gids20feed.messaging\",\n    \"fields\" : [ {\n      \"name\" : \"SoupPartition\",\n      \"type\" : \"int\"\n    }, {\n      \"name\" : \"SoupSequence\",\n      \"type\" : \"long\"\n    }, {\n      \"name\" : \"msgType\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"timeStamp\",\n      \"type\" : \"int\"\n    }, {\n      \"name\" : \"fpType\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"brand\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"series\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"instrumentID\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"summaryType\",\n      \"type\" : \"string\"\n    }, {\n      \"name\" : \"sodValue\",\n      \"type\" : \"long\"\n    }, {\n      \"name\" : \"high\",\n      \"type\" : \"long\"\n    },\n}........\n....]\n```\n\n### Get first 10 messages of the stream\nThis returns the first 10 available messages of the stream.\n```java\n// Example2.java\nNCDSClient ncdsClient = new NCDSClient();\nString topic=\"NLSCTA\";\nConsumerRecords\u003cString, GenericRecord\u003e records = ncdsClient.topMessages(topic);\nfor (ConsumerRecord\u003cString, GenericRecord\u003e record : records) {\n    System.out.println(\"key:\" + record.key());\n    System.out.println(\"value:\" + record.value().toString());\n}\n```\nExample output:\n```\nkey:1\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 1, \"trackingID\": 7238625218217, \"msgType\": \"S\", \"event\": \"O\"}\nkey:2\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 2, \"trackingID\": 11231714567789, \"msgType\": \"R\", \"symbol\": \"A       \", \"marketClass\": \"N\", \"fsi\": \" \", \"roundLotSize\": 100, \"roundLotOnly\": \"N\", \"issueClass\": \"C\", \"issueSubtype\": \"Z \", \"authenticity\": \"P\", \"shortThreshold\": \"N\", \"ipo\": \" \", \"luldTier\": \"1\", \"etf\": \"N\", \"etfFactor\": 0, \"inverseETF\": \"N\", \"compositeId\": \"BBG000C2V3D6\"}\nkey:3\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 3, \"trackingID\": 11231714567789, \"msgType\": \"G\", \"symbol\": \"A       \", \"securityClass\": \"N\", \"adjClosingPrice\": 766400}\nkey:4\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 4, \"trackingID\": 11231714628669, \"msgType\": \"R\", \"symbol\": \"AA      \", \"marketClass\": \"N\", \"fsi\": \" \", \"roundLotSize\": 100, \"roundLotOnly\": \"N\", \"issueClass\": \"C\", \"issueSubtype\": \"Z \", \"authenticity\": \"P\", \"shortThreshold\": \"N\", \"ipo\": \" \", \"luldTier\": \"1\", \"etf\": \"N\", \"etfFactor\": 1, \"inverseETF\": \"N\", \"compositeId\": \"BBG00B3T3HD3\"}\nkey:5\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 5, \"trackingID\": 11231714628669, \"msgType\": \"G\", \"symbol\": \"AA      \", \"securityClass\": \"N\", \"adjClosingPrice\": 225300}\nkey:6\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 6, \"trackingID\": 11231714675278, \"msgType\": \"R\", \"symbol\": \"AAAU    \", \"marketClass\": \"P\", \"fsi\": \" \", \"roundLotSize\": 100, \"roundLotOnly\": \"N\", \"issueClass\": \"Q\", \"issueSubtype\": \"I \", \"authenticity\": \"P\", \"shortThreshold\": \"N\", \"ipo\": \" \", \"luldTier\": \"2\", \"etf\": \"Y\", \"etfFactor\": 1, \"inverseETF\": \"N\", \"compositeId\": \"BBG00LPXX872\"}\nkey:7\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 7, \"trackingID\": 11231714675278, \"msgType\": \"G\", \"symbol\": \"AAAU    \", \"securityClass\": \"P\", \"adjClosingPrice\": 145600}\nkey:8\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 8, \"trackingID\": 11231714764805, \"msgType\": \"R\", \"symbol\": \"AADR    \", \"marketClass\": \"P\", \"fsi\": \" \", \"roundLotSize\": 100, \"roundLotOnly\": \"N\", \"issueClass\": \"Q\", \"issueSubtype\": \"I \", \"authenticity\": \"P\", \"shortThreshold\": \"N\", \"ipo\": \" \", \"luldTier\": \"2\", \"etf\": \"Y\", \"etfFactor\": 0, \"inverseETF\": \"N\", \"compositeId\": \"BBG000BDYRW6\"}\nkey:9\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 9, \"trackingID\": 11231714764805, \"msgType\": \"G\", \"symbol\": \"AADR    \", \"securityClass\": \"P\", \"adjClosingPrice\": 499000}\nkey:10\nvalue:{\"SoupPartition\": 0, \"SoupSequence\": 10, \"trackingID\": 11231714853049, \"msgType\": \"R\", \"symbol\": \"AAMC    \", \"marketClass\": \"A\", \"fsi\": \" \", \"roundLotSize\": 100, \"roundLotOnly\": \"N\", \"issueClass\": \"C\", \"issueSubtype\": \"Z \", \"authenticity\": \"P\", \"shortThreshold\": \"N\", \"ipo\": \" \", \"luldTier\": \"2\", \"etf\": \"N\", \"etfFactor\": 0, \"inverseETF\": \"N\", \"compositeId\": \"BBG003PNL136\"}    \n```\n\n### Get first 10 messages of the stream from given timestamp\nThis returns the first 10 available messages of the stream from given timestamp in milliseconds since the UNIX epoch.\n```java\n// Example3.java\nNCDSClient ncdsClient = new NCDSClient();\nString topic=\"NLSCTA\";\nLong timestamp = 1590084445610L; // This is timestamp in millseconds from UNIX epoch. (https://currentmillis.com/)\nConsumerRecords\u003cString, GenericRecord\u003e records = ncdsClient.topMessages(topic, timestamp);\nfor (ConsumerRecord\u003cString, GenericRecord\u003e record : records) {\n    System.out.println(\"key:\" + record.key());\n    System.out.println(\"value:\" + record.value().toString());\n}\n```\nExample output:\n ```\nOffset: 105834100\nTop 10 Records for the Topic:NLSCTA\nkey:9362630\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362630, \"trackingID\": 50845551492208, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"SIVR    \", \"securityClass\": \"P\", \"controlNumber\": \"0000A2MLOB\", \"price\": 164797, \"size\": 1, \"saleCondition\": \"@  o\", \"cosolidatedVolume\": 520174}\nkey:9362631\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362631, \"trackingID\": 50845557908136, \"msgType\": \"T\", \"marketCenter\": \"Q\", \"symbol\": \"TJX     \", \"securityClass\": \"N\", \"controlNumber\": \"   8358213\", \"price\": 540300, \"size\": 100, \"saleCondition\": \"@   \", \"cosolidatedVolume\": 16278768}\nkey:9362632\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362632, \"trackingID\": 50845565203932, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"CMI     \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOC\", \"price\": 1579900, \"size\": 100, \"saleCondition\": \"@   \", \"cosolidatedVolume\": 568622}\nkey:9362633\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362633, \"trackingID\": 50845565791061, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"UTI     \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOD\", \"price\": 70150, \"size\": 64, \"saleCondition\": \"@  o\", \"cosolidatedVolume\": 151359}\nkey:9362634\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362634, \"trackingID\": 50845566628604, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"UFS     \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOE\", \"price\": 203660, \"size\": 24, \"saleCondition\": \"@  o\", \"cosolidatedVolume\": 664962}\nkey:9362635\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362635, \"trackingID\": 50845569154140, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"KR      \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOF\", \"price\": 320350, \"size\": 100, \"saleCondition\": \"@   \", \"cosolidatedVolume\": 4054473}\nkey:9362636\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362636, \"trackingID\": 50845577944984, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"PAGP    \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOG\", \"price\": 98350, \"size\": 100, \"saleCondition\": \"@   \", \"cosolidatedVolume\": 1557084}\nkey:9362637\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362637, \"trackingID\": 50845588007117, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"LUV     \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOH\", \"price\": 297413, \"size\": 4, \"saleCondition\": \"@  o\", \"cosolidatedVolume\": 16791899}\nkey:9362638\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362638, \"trackingID\": 50845596356365, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"M       \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOI\", \"price\": 54000, \"size\": 10, \"saleCondition\": \"@  o\", \"cosolidatedVolume\": 39273663}\nkey:9362639\nvalue :{\"SoupPartition\": 0, \"SoupSequence\": 9362639, \"trackingID\": 50845600594567, \"msgType\": \"T\", \"marketCenter\": \"L\", \"symbol\": \"TTM     \", \"securityClass\": \"N\", \"controlNumber\": \"0000A2MLOJ\", \"price\": 56000, \"size\": 400, \"saleCondition\": \"@   \", \"cosolidatedVolume\": 1293244}\n```\n\n### Get example message from stream\nPrint message to the console for given message name.\n```java\nNCDSClient ncdsClient = new NCDSClient();\nString topic=\"GIDS\"\nncdsClient.getSampleMessages(topic, \"SeqIndexDirectory\");\n```\nExample output:\n ```\n {\"SoupPartition\": 0, \"SoupSequence\": 193, \"msgType\": \"R\", \"timeStamp\": 224140137, \"instrumentID\": \"NQJP3700LMCAD     \", \"disseminationFlag\": \"Y\", \"fpType\": \"I\", \"brand\": \"NQ\", \"series\": \"NQG\", \"strategy\": \"SEC\", \"assetType\": \"EQ\", \"marketCapSize\": \"X\", \"currency\": \"CAD\", \"geography\": \"JP  \", \"settlementType\": \" \", \"calculationMethod\": \"PR \", \"state\": \"A\", \"indexUsage\": \"L\", \"schedule\": \"ASI\", \"frequency\": \"ODCL\", \"numberOfIssueParticipation\": 23, \"baseValue\": 100000000000000, \"baseDate\": 20140111, \"instrumentName\": \"NASDAQ Japan Psnl \u0026 Hhld Goods Lg Md Cap CAD\"}\n```\n\n### Get Continuous stream\n```java\nNCDSClient ncdsClient = new NCDSClient();\nString topic=\"GIDS\"\nConsumer consumer = ncdsClient.NCDSKafkaConsumer(topic);\nwhile (true) {\n    ConsumerRecords\u003cString, GenericRecord\u003e records = consumer.poll(Duration.ofMinutes(Integer.parseInt(\"1\")));\n    if (records.count() == 0) {\n        System.out.println(\"No Records Found for the Topic:\" + topic);\n    }\n    for (ConsumerRecord\u003cString, GenericRecord\u003e record : records) {\n        System.out.println(\"value :\" + record.value().toString());\n    }\n}\n```\n\n### Get News stream\n```java\nNCDSClient ncdsClient = new NCDSClient();\nString topic=\"NEWS-PRO-GLOBAL\"\nConsumer consumer = ncdsClient.NCDSNewsKafkaConsumer(topic);\nwhile (true) {\n    ConsumerRecords\u003cString, GenericRecord\u003e records = consumer.poll(Duration.ofMinutes(Integer.parseInt(\"1\")));\n    if (records.count() == 0) {\n        System.out.println(\"No Records Found for the News\");\n    }\n    for (ConsumerRecord\u003cString, GenericRecord\u003e record : records) {\n        System.out.println(\"News :\" + News.newsBuilder(record.value()).toString());\n    }\n}\n```\n\nExample output:\n```-----------------------------------------------------------------------------------------------\n   News :ReleaseTime: 2020/04/03 14:40:00\n   TransmissionID: A2136726\n   RevisionID: 0\n   Retract: FALSE\n   StoryType:\n   TechnicalStory: FALSE\n   metaDataNode:\n   STOK.MN\n   EARN.MN\n   USUS.MN\n   NOAM.MN\n   INBY.MN\n   INSL.MN\n   FOR4.MN\n   EECH.MN\n   \n   HeadLine: {Headlines}\n   Body:\n   {Body}\n   Tickers: {tickers}\n   CopyRight: Copyright © 2020 MT Newswires, All Rights reserved. Data provided by UpTick Data Technologies.\n   ISIN: null\n   ArticleImage: null\n   -----------------------------------------------------------------------------------------------\n\n```\n\n### Example syntax to run the Client Jar based on this SDK\n\n1. To list of streams available on Nasdaq Cloud DataService\n\n```java -jar ncdssdk-client.jar -opt TOPICS```\n\n2. To display the schema for the given topic\n\n```java -jar ncdssdk-client.jar -opt SCHEMA -topic NLSUTP```\n\n3. To dump top n records from the given topic\n\n```java -jar ncdssdk-client.jar -opt TOP -n 10 -topic NLSUTP```\n\n4. To use client based specific authorization file instead of using from the resources of client code base\n\n```java -jar ncdssdk-client.jar -opt TOP -n 10 -topic NLSUTP -authprops clntauth.properties```\n\n5. To use the specific kafka properties instead of using the kafka properties from the resources of the client base code\n\n```java -jar ncdssdk-client.jar -opt TOP -n 10 -topic NLSUTP -kafkaprops kafkaprops.properties```\n\n6. To use the specific client based authorization file and specific kafka properties file\n\n```java -jar ncdssdk-client.jar -opt TOP -n 10 -topic NLSUTP -authprops clntauth.properties -kafkaprops kafkaprops.properties```\n\n7. To display a specific message type\n\n```java -jar ncdssdk-client.jar -opt GETMSG -topic UTPBIN-UF30 -msgName SeqTradeLong```\n\n9. To dump top n records from the given topic from given timestamp in milliseconds since the UNIX epoch\n\n```java -jar ncdssdk-client.jar -opt TOP -n 10 -topic NLSUTP -timestamp 1590084445610 ```\n\n10. To get filtered stream by symbols or/and message-types\n\n```java -jar ncdssdk-client.jar -opt FILTERSTREAM -topic NLSUTP -symbols AAPL,NDAQ -msgtypes SeqTradeReportMessage```\n\n11. To get all messages for given type messagtype\n\n```java -jar ncdssdk-client.jar -opt GETALLMSGS -topic NLSUTP -msgName SeqTradeReportMessage```\n\n\n\n## Documentation\n\nAn addition to the example application, there is extra documentation at the package and class level within the JavaDocs, which are located in project ```https://github.com/Nasdaq/CloudDataService/tree/master/ncds-sdk/docs```\n\nIf you make an update, you can run `mvn javadocs:javadocs` to update documents.\n\n## Docker\n\nDocker images are already configured to run the SDK. View the instructions (https://github.com/Nasdaq/CloudDataService/blob/master/docker/README.md)\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## License\n\nCode and documentation released under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasdaq%2Fnasdaqclouddataservice-sdk-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasdaq%2Fnasdaqclouddataservice-sdk-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasdaq%2Fnasdaqclouddataservice-sdk-java/lists"}