# Connection/Authentication

Connection to the message broker is made using a *Websocket* connection and the message broker makes use of the *MQTT protocol*.

More information about how authentication works is available at <http://developer.connect.sportradar.com/token>.

The authorization call will return a number of things:

1. An endpoint parameter\
   This is an authorized url where you make a websocket connection to the message broker.
2. A client identifier\
   This is the identifier you must use when connection to the message broker
3. A list of topics\
   For each permission scope you requested you will receive a topic that you can subscribe/publish to. If your permission scopes include any 'write' permissions you will also receive a topic specific to your client for feedback from the system. Any errors for the data you send will be sent on this topic.

Some example Python code using the paho.mqtt.client library (<https://www.eclipse.org/paho/index.php?page=downloads.php>).

```
urlparts = urlparse(connection_url)
host = urlparts.netloc
client = Client(client_id=client_id, transport="websockets")
client.tls_set()
headers = {'host': host, 'Host': host}
client.ws_set_options(
    path="{}?{}".format(urlparts.path, urlparts.query),
    headers=headers
)
client.on_connect = _on_connect
client.on_message = _on_message
client.connect(host, 443, 15)
client.loop_start()

def _on_connect(client, userdata, flags, connection_result):
    print("connected")

def _on_message(client, userdata, msg):
    print("received message {}".format(msg))
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportradar.com/datacore/sports-apis/badminton/datacore-streaming-api/introduction/connection-authentication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
