---
descriptions:
  get_profile_and_token:
    grant_type: >-
      The method by which your application will receive an access token. This
      value should be `authorization_code`.
    code: >-
      The authorization value which was passed back as a query parameter in the
      callback to the [Redirect
      URI](/reference/sso/get-authorization-url/redirect-uri).
    access_token: >-
      An access token that can be exchanged for a user profile. Access tokens
      expire 5 minutes after they're created.
    oauth_tokens: >
      OAuth tokens from the identity provider when using OAuth connections.
      Contains the provider name, access token, refresh token, expiration time,
      and scopes.
reference:
  curl:
    - key: get_profile_and_token
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: /sso/token
      type: POST
      parameters:
        - key: client_id
          type: string
          description: (client_id)
        - key: client_secret
          type: string
          description: (client_secret)
        - key: grant_type
          type: '"authorization_code"'
          description: (get_profile_and_token.grant_type)
        - key: code
          type: string
          description: (get_profile_and_token.code)
      returns:
        - key: anonymous
          type: object
          unwrap: true
          properties:
            - key: access_token
              type: string
              description: (get_profile_and_token.access_token)
            - key: profile
              type: string
              description: (profile.self)
            - key: oauth_tokens
              type: object
              optional: true
              description: (get_profile_and_token.oauth_tokens)
  dotnet:
    - key: GetProfileAndToken
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: ssoService.GetProfileAndToken()
      parameters:
        - key: options
          type: GetProfileAndTokenOptions
          expanded: true
          properties:
            - key: GrantType
              type: '"authorization_code"'
              description: (get_profile_and_token.grant_type)
            - key: ClientId
              type: string
              description: (client_id)
            - key: ClientSecret
              type: string
              description: (client_secret)
            - key: Code
              type: string
              description: (get_profile_and_token.code)
        - (cancellationToken)
      returns:
        - key: Task<GetProfileAndTokenResponse>
          title: class GetProfileAndTokenResponse
          expanded: true
          properties:
            - key: AccessToken
              type: string
              description: (get_profile_and_token.access_token)
            - key: Profile
              type: Profile
              description: (profile.self)
  ruby:
    - key: profile_and_token
      id: get_profile_and_token
      url: /reference/sso/profile/get-profile-and-token
      title: SSO.profile_and_token()
      parameters:
        - key: client_id
          type: String
          description: (client_id)
        - key: code
          type: String
          description: (get_profile_and_token.code)
      returns:
        - key: ProfileAndToken
          type: Struct
          unwrap: true
          properties:
            - key: access_token
              type: String
              description: (get_profile_and_token.access_token)
            - key: profile
              type: Profile
              description: (profile.self)
  php:
    - key: getProfileAndToken
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: $sso->getProfileAndToken()
      parameters:
        - key: code
          type: string
          description: (get_profile_and_token.code)
      returns:
        - key: ProfileAndToken
          title: WorkOS\Resource\ProfileAndToken
          expanded: true
          properties:
            - key: accessToken
              type: string
              description: (get_profile_and_token.access_token)
            - key: profile
              type: Profile
              description: (profile.self)
  python:
    - key: get_profile_and_token
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: sso.get_profile_and_token()
      parameters:
        - key: code
          type: str
          description: (get_profile_and_token.code)
      returns:
        - key: profile_and_token
          type: ProfileAndToken
          unwrap: true
          properties:
            - key: access_token
              type: str
              description: (get_profile_and_token.access_token)
            - key: profile
              type: Profile
              description: (profile.self)
  js:
    - key: getProfileAndToken
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: sso.getProfileAndToken()
      parameters:
        - key: options
          type: object
          unwrap: true
          properties:
            - key: clientId
              type: string
              description: (client_id)
            - key: code
              type: string
              description: (get_profile_and_token.code)
      returns:
        - key: anonymous
          type: object
          unwrap: true
          properties:
            - key: accessToken
              type: string
              description: (get_profile_and_token.access_token)
            - key: profile
              type: Profile
              description: (profile.self)
            - key: oauthTokens
              type: object
              optional: true
              description: (get_profile_and_token.oauth_tokens)
  go:
    - key: GetProfileAndToken
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: sso.GetProfileAndToken()
      parameters:
        - (ctx)
        - key: opts
          type: sso.GetProfileAndTokenOpts
          expanded: true
          properties:
            - key: Code
              type: string
              description: (get_profile_and_token.code)
      returns:
        - key: profileAndToken
          type: sso.ProfileAndToken
          expanded: true
          properties:
            - key: AccessToken
              type: string
              description: (get_profile_and_token.access_token)
            - key: Profile
              type: string
              description: (profile.self)
        - (err)
  java:
    - key: getProfileAndToken
      url: /reference/sso/profile/get-profile-and-token
      id: get_profile_and_token
      title: sso.getProfileAndToken()
      parameters:
        - key: code
          type: String
          description: (get_profile_and_token.code)
        - key: clientId
          type: String
          description: (client_id)
      returns:
        - key: profileAndToken
          type: ProfileAndToken
          expanded: true
          properties:
            - key: profile
              type: Profile
              description: (profile.self)
            - key: token
              type: String
              description: (get_profile_and_token.access_token)
originalPath: >-
  .tmp-workos-clone/packages/docs/content/reference/sso/profile/get-profile-and-token.mdx
---

## Get a Profile and Token

Get an access token along with the user [Profile](/reference/sso/profile) using the code passed to your [Redirect URI](/reference/sso/get-authorization-url/redirect-uri).

<CodeBlock referenceId="get_profile_and_token">
  <CodeBlockTab title="Request" file="get-profile-and-token-request" />
  <CodeBlockTab title="Response" file="get-profile-and-token-response" />
</CodeBlock>
