# Products

Get tokens to access products (other than datacore)

## Get an Access Token for access to a product.

> This API calls are used primarily by Synergy Sports internal systems to authenticate to products other than Datacore.

```json
{"openapi":"3.0.3","info":{"title":"Synergy Sports - Auth API","version":"1.0.0"},"tags":[{"name":"Products","description":"Get tokens to access products (other than datacore)"}],"servers":[{"url":"https://token.connect.sportradar.com/v1","description":"Production server"},{"url":"https://token.stg.connect-nonprod.sportradar.dev/v1","description":"NonProduction/Staging server"}],"paths":{"/products/token":{"post":{"tags":["Products"],"summary":"Get an Access Token for access to a product.","description":"This API calls are used primarily by Synergy Sports internal systems to authenticate to products other than Datacore.","operationId":"getTokenProdUser","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"userIdentityToken":{"$ref":"#/components/schemas/UserIdentityToken"},"product":{"description":"The product you want the token for. Valid options available for the user can be obtained from the `products/list` call.","type":"string"},"customerId":{"description":"The customerId for the product you want a token for. Valid options available for the user can be obtained from the `customers/list` call.","type":"string"},"scopes":{"description":"A list of permission scopes that you want for this token.  If not provided then all available permissions will be added. You would use this if you want your token to have less permissions that you are normally allowed.","type":"array","uniqueItems":true,"items":{"type":"string"}}},"required":["userIdentityToken","product","customerId"]}}}},"responses":{"200":{"$ref":"#/components/responses/TokenResponse"},"default":{"$ref":"#/components/responses/ErrorResponse"}}}}},"components":{"schemas":{"UserIdentityToken":{"description":"A user token received on login to the single sign on system.","type":"string"},"ResponseMetaData":{"properties":{"code":{"description":"The HTTP response code for this request","type":"integer"},"codeVersion":{"description":"A string indicating the version of the code that handled this request","type":"string"},"generationTime":{"description":"The number of seconds taken to generate this request.","format":"float","type":"number"},"time":{"description":"The date/time this request was made (in UTC).","format":"date-time","type":"string"},"version":{"description":"The version of the API in use for this call","type":"string"}},"type":"object"},"ErrorModel":{"properties":{"code":{"description":"HTTP Error code indicating the type of error.  If there are multiple errors, then this will be the code of the first one.","format":"int32","type":"integer"},"errors":{"items":{"$ref":"#/components/schemas/ErrorListModel"},"type":"array"},"message":{"description":"A message indicating the reason for the error. If there are multiple errors, then this is the message for the first one.","type":"string"}},"type":"object"},"ErrorListModel":{"properties":{"code":{"description":"HTTP Error code indicating the type of error.","format":"int32","type":"integer"},"message":{"description":"A message indicating the reason for the error","type":"string"},"reason":{"description":"A short code indicating the type of error","enum":["INVALID_DATA","NOT_FOUND","NOT_AUTHORISED","ERROR"]}},"type":"object"}},"responses":{"TokenResponse":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"token":{"type":"string","description":"A JWT giving you access to the resources you requested."},"tokenType":{"description":"The type of token","type":"string"},"expiresIn":{"description":"How long, in seconds, the token is valid for","type":"string","format":"number"}}},"meta":{"$ref":"#/components/schemas/ResponseMetaData"}}}}}},"ErrorResponse":{"description":"Error","content":{"application/json":{"schema":{"properties":{"error":{"$ref":"#/components/schemas/ErrorModel"},"meta":{"$ref":"#/components/schemas/ResponseMetaData"}},"type":"object"}}}}}}}
```


---

# 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/auth-api/products.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.
