> ## Documentation Index
> Fetch the complete documentation index at: https://docs.join.tl/llms.txt
> Use this file to discover all available pages before exploring further.

# Get OpenID Connect UserInfo



## OpenAPI

````yaml /specs/openapi/jointl-api-v1.openapi.yaml get /oauth/userinfo
openapi: 3.1.2
info:
  title: Jointl REST API and OAuth
  version: 1.0.0
  summary: Supported public HTTP contract for Jointl third-party connections.
  description: >-
    HTTP contract for Jointl REST operations, OAuth, and Zapier subscription and
    action endpoints. Jointl does not provide a public sandbox.
  termsOfService: https://join.tl/legal/terms-of-service
  contact:
    name: Jointl Support
    url: https://join.tl
servers:
  - url: https://api.join.tl
    description: Jointl production API
security: []
tags:
  - name: OAuth
    description: OAuth 2.0 and OpenID Connect endpoints.
  - name: Discovery
    description: OAuth resource and issuer discovery.
  - name: Operations
    description: Permission-filtered read operations.
  - name: Actions
    description: Prepare, human approval, and confirmation.
  - name: Zapier
    description: Endpoints restricted to the approved Jointl Zapier app.
paths:
  /oauth/userinfo:
    get:
      tags:
        - OAuth
      summary: Get OpenID Connect UserInfo
      operationId: getOAuthUserInfo
      responses:
        '200':
          description: Authorized user claims.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - JointlOAuth:
            - openid
components:
  headers:
    RequestId:
      description: Request correlation identifier.
      schema:
        type: string
  schemas:
    UserInfo:
      type: object
      properties:
        sub:
          type: string
        email:
          type: string
          format: email
        email_verified:
          type: boolean
        name:
          type: string
      required:
        - sub
      additionalProperties: true
    ErrorEnvelope:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
          additionalProperties: false
        requestId:
          type: string
      required:
        - error
        - requestId
      additionalProperties: false
  responses:
    Unauthorized:
      description: Authentication required.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              code: not-authenticated
              message: Authentication is required.
            requestId: request_example_401
  securitySchemes:
    JointlOAuth:
      type: oauth2
      description: OAuth access token issued for the REST resource.
      flows:
        authorizationCode:
          authorizationUrl: https://api.join.tl/oauth/authorize
          tokenUrl: https://api.join.tl/oauth/token
          refreshUrl: https://api.join.tl/oauth/token
          scopes:
            openid: Authenticate the Jointl member.
            email: Read the authorized member email claim.
            workspace.read: Read authorized Jointl workspace data.
            workspace.write: Prepare and confirm authorized Jointl changes.
            offline_access: Receive a rotating refresh token.
      x-jointl-resource: https://api.join.tl/api/v1
      x-jointl-pkce-required: S256

````