# Testing OAuth to get token

**URL:** <https://community.dynatrace.com/t/testing-oauth-to-get-token/44485>\
**Category:** Dynatrace API\
**Tags:** dynatrace-api\
**Created:** [March 7, 2024, 11:42am UTC](https://community.dynatrace.com/t/testing-oauth-to-get-token/44485 "2024-03-07T11:42:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frazzle](https://avatars.discourse-cdn.com/v4/letter/f/2bfe46/32.png) [@Frazzle](https://community.dynatrace.com/u/Frazzle)\
**Post date:** [March 7, 2024, 11:42am UTC](https://community.dynatrace.com/t/testing-oauth-to-get-token/44485/1 "2024-03-07T11:42:19Z")

</div>

Hi, i am using the below details to pull back a token (removed the OAuth details), but we get a badrequest 400 back with this body and no idea what the issue is.

Input:  
Headers:  
{ “Content-Type”: “application/x-www-form-urlencoded” }  
Body:  
{ “grant\_type”: “client\_credentials”, “client\_id”: “\*.\*”, “client\_secret”: “\*”, “scope”: “account-idm-read account-idm-write”, “resource”: “\*” }

Response:

{&nbsp;&nbsp;&nbsp;&nbsp;“statusCode”:&nbsp;400,&nbsp;&nbsp;&nbsp;&nbsp;“headers”:&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Date”:&nbsp;“Thu,&nbsp;07&nbsp;Mar&nbsp;2024&nbsp;11:37:34&nbsp;GMT”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Connection”:&nbsp;“keep-alive”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Set-Cookie”:&nbsp;“AWSALB=Y/NaFryc7SsOf2MxmkuwVVGJHxLU0p1XrWOiQojtDSqMWV0Qpx1qJWiAnEeifSLvCTtoMDBm2y0imRXrVh6tYhSfuwa6POX513NQjP/torNLEuMp/3N6QPpqefJA;&nbsp;Expires=Thu,&nbsp;14&nbsp;Mar&nbsp;2024&nbsp;11:37:34&nbsp;GMT;&nbsp;Path=/,AWSALBCORS=Y/NaFryc7SsOf2MxmkuwVVGJHxLU0p1XrWOiQojtDSqMWV0Qpx1qJWiAnEeifSLvCTtoMDBm2y0imRXrVh6tYhSfuwa6POX513NQjP/torNLEuMp/3N6QPpqefJA;&nbsp;Expires=Thu,&nbsp;14&nbsp;Mar&nbsp;2024&nbsp;11:37:34&nbsp;GMT;&nbsp;Path=/;&nbsp;SameSite=None;&nbsp;Secure,dtCookie=v\_4\_srv\_14\_sn\_DA589D2531938B2A2F384294FD5F1308\_perc\_100000\_ol\_0\_mul\_1\_app-3A98ef57ca1ba5392b\_1\_rcs-3Acss\_0;&nbsp;Path=/;&nbsp;[Domain=.dynatrace.com](http://Domain=.dynatrace.com);&nbsp;secure”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Server-Timing”:&nbsp;“dtRpid;desc=\”-524315565\“,&nbsp;dtSInfo;desc=\“0\””,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“X-OneAgent-JS-Injection”:&nbsp;“true”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“X-Frame-Options”:&nbsp;“DENY”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Frame-Options”:&nbsp;“deny”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“X-XSS-Protection”:&nbsp;“1;&nbsp;mode=block”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“X-Content-Type-Options”:&nbsp;“nosniff”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Content-Security-Policy”:&nbsp;“default-src&nbsp;‘self’&nbsp;[https://static.sso.dynatrace.com](https://static.sso.dynatrace.com)&nbsp;[https://dt-cdn.net](https://dt-cdn.net);&nbsp;script-src&nbsp;‘self’&nbsp;‘unsafe-inline’&nbsp;[https://static.sso.dynatrace.com](https://static.sso.dynatrace.com);&nbsp;frame-ancestors&nbsp;‘none’;&nbsp;form-action&nbsp;http:&nbsp;https:;&nbsp;report-uri&nbsp;[https://report-csp.internal.dynatracelabs.com/sso2.0](https://report-csp.internal.dynatracelabs.com/sso2.0)”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“X-Content-Security-Policy”:&nbsp;“default-src&nbsp;‘self’&nbsp;[https://static.sso.dynatrace.com](https://static.sso.dynatrace.com)&nbsp;[https://dt-cdn.net](https://dt-cdn.net);&nbsp;script-src&nbsp;‘self’&nbsp;‘unsafe-inline’&nbsp;[https://static.sso.dynatrace.com](https://static.sso.dynatrace.com);&nbsp;frame-ancestors&nbsp;‘none’;&nbsp;form-action&nbsp;http:&nbsp;https:;&nbsp;report-uri&nbsp;[https://report-csp.internal.dynatracelabs.com/sso2.0](https://report-csp.internal.dynatracelabs.com/sso2.0)”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Strict-Transport-Security”:&nbsp;“max-age=31536000;&nbsp;preload”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Pragma”:&nbsp;“no-cache”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Cache-Control”:&nbsp;“no-store,&nbsp;must-revalidate,&nbsp;no-cache”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“issueId”:&nbsp;“25EDJDCEXJAZAG5I”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Content-Type”:&nbsp;“application/json;&nbsp;charset=utf-8”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“Content-Length”:&nbsp;“70”&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;“body”:&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“errorCode”:&nbsp;400,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“message”:&nbsp;“Bad&nbsp;Request”,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;“issueId”:&nbsp;“25EDJDCEXJAZAG5I”&nbsp;&nbsp;&nbsp;&nbsp;}}

---

<div class="post-metadata">

**Author:** ![mark\_bley](https://dub1.discourse-cdn.com/dynatrace/user_avatar/community.dynatrace.com/mark_bley/32/20954_2.png) [@mark\_bley](https://community.dynatrace.com/u/mark_bley)\
**Post date:** [April 3, 2024, 12:37pm UTC](https://community.dynatrace.com/t/testing-oauth-to-get-token/44485/2 "2024-04-03T12:37:58Z")

</div>

Hi&nbsp;[@Frazzle](https://community.dynatrace.com/user/73096)&nbsp;,

you may have missed a the first bit in the resource filed.

try it like this:

```markup
curl --location --request POST 'https://sso.dynatrace.com/sso/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=dt0s02.*' \
--data-urlencode 'client_secret=dt0s02.*.*' \
--data-urlencode 'resource=urn:dtaccount:<your-account-id>' \
--data-urlencode 'scope=account-idm-read account-idm-write'

```

---

<div class="post-metadata">

**Author:** ![DaveOps](https://avatars.discourse-cdn.com/v4/letter/d/fbc32d/32.png) [@DaveOps](https://community.dynatrace.com/u/DaveOps)\
**Post date:** [August 13, 2024, 8:50am UTC](https://community.dynatrace.com/t/testing-oauth-to-get-token/44485/3 "2024-08-13T08:50:17Z")

</div>

I have a similar issue:

curl --location --request POST ‘[https://sso.dynatrace.com/sso/oauth2/token](https://sso.dynatrace.com/sso/oauth2/token)’ \  
--header ‘Content-Type: application/x-www-form-urlencoded’ \  
--data-urlencode ‘grant\_type=client\_credentials’ \  
--data-urlencode ‘client\_id=\<client id\>’ \  
--data-urlencode ‘client\_secret=\<secret\>’ \  
--data-urlencode ‘resource=urn:dtaccount:\<account-UUID\>’ \  
--data-urlencode ‘scope=app-engine:apps:install app-engine:apps:run’

{“errorCode”:400,“message”:“Bad Request”,“issueId”:“K4DTL7WN6UVPGAM6”,“error”:“invalid\_request”,“error\_description”:“”}%

---

<div class="post-metadata">

**Author:** ![shivamagnihotri](https://avatars.discourse-cdn.com/v4/letter/s/4491bb/32.png) [@shivamagnihotri](https://community.dynatrace.com/u/shivamagnihotri)\
**Post date:** [September 10, 2024, 4:40pm UTC](https://community.dynatrace.com/t/testing-oauth-to-get-token/44485/4 "2024-09-10T16:40:38Z")

</div>

To resolve the issue, **generate a new OAuth Client**.

In my case, the OAuth Client was dormant because it was created by a colleague who is no longer active in my Dynatrace account, resulting in the following response.

{ “errorCode”: 400, “message”: “Bad Request”, “issueId”: “XXXXXXXXXXX”, “error”: “invalid\_request”, “error\_description”: “” }

Here’s the working cURL command/request body for your reference:

curl --location ‘[https://sso.dynatrace.com/sso/oauth2/token](https://sso.dynatrace.com/sso/oauth2/token)’ \  
--header ‘Content-Type: application/x-www-form-urlencoded’ \  
--data-urlencode ‘grant\_type=client\_credentials’ \  
--data-urlencode ‘client\_id=\<your-Client-ID\>’ \  
--data-urlencode ‘client\_secret=\<your-Client-secret\>’ \  
--data-urlencode ‘resource=urn:dtaccount:\<your-account-UUID\>’ \  
--data-urlencode ‘scope=iam-policies-management account-idm-read account-idm-write’
