CCIP is now live for all developers. See what's new.

Streams Direct WebSocket


DescriptionTestnet URLMainnet URL
WebSocket endpoint to subscribe to price updateswss://



All routes require the following three headers for user authentication:

AuthorizationThe user’s unique identifier, provided as a UUID (Universally Unique IDentifier).
X-Authorization-TimestampThe current timestamp, with precision up to milliseconds. The timestamp must closely synchronize with the server time, allowing a maximum discrepancy of 5 seconds (by default).
X-Authorization-Signature-SHA256The HMAC (Hash-based Message Authentication Code) signature, generated by hashing parts of the request and its metadata using SHA-256 with a shared secret key.

WebSocket Connection

Establish a streaming WebSocket connection that sends reports for the given feedID(s) after they are verified.



WebSocketfeedIDs: A comma-separated list of Data Streams feed IDs.
Sample request
GET /api/v1/ws?feedIDs=<feedID1>,<feedID2>,...
Sample response
  "report": {
    "feedID": "hex encoded feedId",
    "fullReport": "a blob containing the report context + body, can be passed unmodified to the contract for verification"

Error response codes

Status CodeDescription
400 Bad RequestThis error is triggered when:
  • There is any missing/malformed query argument.
  • Required headers are missing or provided with incorrect values.
401 Unauthorized UserThis error is triggered when:
  • Authentication fails, typically because the HMAC signature provided by the client doesn't match the one expected by the server.
  • A user requests access to a feed without the appropriate permission or that does not exist.
500 Internal ServerIndicates an unexpected condition encountered by the server, preventing it from fulfilling the request. This error typically points to issues on the server side.

Stay updated on the latest Chainlink news