Request

Response

    Task 1 – Obtain an Access Token

    This task produces a two-legged OAuth token with a scope sufficient to authenticate the remaining tasks in this walkthrough.

    By the end of this task, you will know how to obtain a two-legged access token when the Client ID and Client Secret is known.

    You use the following operations in this task:

    HTTP RequestOperation
    POST /authenticate Get a two-legged access token

    Step 1 - Register an App

    Follow the instructions on Create an App to register the App you will create for this walkthrough.

    Step 2 - Convert Client ID and Secret to Base64 encoded string

    You must combine your Client ID with the Client Secret and convert it to a Base64 encoded string before you can request a two-legged OAuth access token.

    1. Concatenate your Client ID and Client Secret with a colon character (:) in between, as shown below.

      <CLIENT_ID>:<CLIENT_SECRET>
      
    2. Use the appropriate function or method in your preferred programming language to encode the combined string to the Base64 format. Examples:

      Programming LanguageMethod/Function
      JavaScript btoa() function
      Python b64encode() function from the base64 module
      C# Convert.ToBase64String() method

      Note: There are online tools that you can use to convert the combined string to a Base64 encoded string. However, we don’t recommend that you use such tools. Exposing your Client ID and Client Secret to an online tool can be a security threat.

      You should receive a string that looks like RjZEbjh5cGVtMWo4UDZzVXo4SVgzcG1Tc09BOTlHVVQ6QVNOa3c4S3F6MXQwV1hISw==.

    Step 3 - Use encoded string to obtain an Access Token

    Call the POST token endpoint:

    The Base64 encoded Client ID + Client Secret are passed through the Authorization header. The grant_type and scope are specified as form fields in the request body.

    curl -v 'https://developer.api.autodesk.com/authentication/v2/token' \
       -X 'POST' \
       -H 'Content-Type: application/x-www-form-urlencoded' \
       -H 'Accept: application/json' \
       -H 'Authorization: Basic <BASE64_ENCODED_STRING_FROM_STEP_1>' \
       -d 'grant_type=client_credentials' \
       -d 'scope=code:all bucket:create bucket:read data:create data:write data:read'
    

    Note: The bucket:read scope is not required for the walkthrough. However, you will need bucket:read if you plan to list the files in a bucket.

    A successful response, in relevant part, will look like this (though again, the example is formatted for ease of reading):

    HTTP/1.1 200 OK
    Cache-Control: no-cache, no-store, no-store
    Content-Type: application/json;charset=UTF-8
    Date: Mon, 20 Feb 2017 04:46:41 GMT
    Expires: Thu, 01 Jan 1970 00:00:00 GMT
    max-age: Thu, 01 Jan 1970 00:00:00 GMT
    Pragma: no-cache
    Server: Apigee Router
    Set-Cookie: PF=2xeh6LTdKKqibsTu9HlyM5;Path=/;Secure;HttpOnly
    X-Frame-Options: SAMEORIGIN
    Content-Length: 436
    Connection: keep-alive
    
    {
      "token_type": "Bearer",
      "expires_in": 1799,
      "access_token": "<YOUR_ACCESS_TOKEN>"
    }
    
    Show More

    Notes:

    • Note down the access token (indicated by <YOUR_ACCESS_TOKEN> in the preceding example) in the response. You use this value for all subsequent requests in this walkthrough. The token remains valid for an hour. In the Postman Collection for this walkthrough, the access token is saved to the variable TBD.
    • The access token expires in the number of seconds specified by the expires_in attribute.
     
    ______
    icon-svg-close-thick

    Cookie preferences

    Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

    May we collect and use your data?

    Learn more about the Third Party Services we use and our Privacy Statement.

    Strictly necessary – required for our site to work and to provide services to you

    These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

    Improve your experience – allows us to show you what is relevant to you

    These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

    Customize your advertising – permits us to offer targeted advertising to you

    These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

    icon-svg-close-thick

    THIRD PARTY SERVICES

    Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

    icon-svg-hide-thick

    icon-svg-show-thick

    Strictly necessary – required for our site to work and to provide services to you

    Qualtrics
    W
    Akamai mPulse
    W
    Digital River
    W
    Dynatrace
    W
    Khoros
    W
    Launch Darkly
    W
    New Relic
    W
    Salesforce Live Agent
    W
    Wistia
    W
    Tealium
    W
    Upsellit
    W
    CJ Affiliates
    W
    Commission Factory
    W
    Google Analytics (Strictly Necessary)
    W
    Typepad Stats
    W
    Geo Targetly
    W
    SpeedCurve
    W
    Qualified
    #

    icon-svg-hide-thick

    icon-svg-show-thick

    Improve your experience – allows us to show you what is relevant to you

    Google Optimize
    W
    ClickTale
    W
    OneSignal
    W
    Optimizely
    W
    Amplitude
    W
    Snowplow
    W
    UserVoice
    W
    Clearbit
    #
    YouTube
    #

    icon-svg-hide-thick

    icon-svg-show-thick

    Customize your advertising – permits us to offer targeted advertising to you

    Adobe Analytics
    W
    Google Analytics (Web Analytics)
    W
    AdWords
    W
    Marketo
    W
    Doubleclick
    W
    HubSpot
    W
    Twitter
    W
    Facebook
    W
    LinkedIn
    W
    Yahoo! Japan
    W
    Naver
    W
    Quantcast
    W
    Call Tracking
    W
    Wunderkind
    W
    ADC Media
    W
    AgrantSEM
    W
    Bidtellect
    W
    Bing
    W
    G2Crowd
    W
    NMPI Display
    W
    VK
    W
    Adobe Target
    W
    Google Analytics (Advertising)
    W
    Trendkite
    W
    Hotjar
    W
    6 Sense
    W
    Terminus
    W
    StackAdapt
    W
    The Trade Desk
    W
    RollWorks
    W

    Are you sure you want a less customized experience?

    We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

    Your experience. Your choice.

    We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

    May we collect and use your data to tailor your experience?

    Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.