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

# Introspect

> Introspect returns the current user's principle_id, user_id and a list of roles, permissions, and enabled features.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples get /api/v1/auth/introspect
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/auth/introspect:
    get:
      tags:
        - Auth
      summary: Introspect
      description: >-
        Introspect returns the current user's principle_id, user_id and a list
        of roles, permissions, and enabled features.
      operationId: c1.api.auth.v1.Auth.Introspect
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.auth.v1.IntrospectResponse'
          description: >-
            IntrospectResponse contains information about the current user who
            is authenticated.
      x-codeSamples:
        - lang: go
          label: Introspect
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.Auth.Introspect(ctx)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.IntrospectResponse != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.auth.introspect();

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.auth.v1.IntrospectResponse:
      description: >-
        IntrospectResponse contains information about the current user who is
        authenticated.
      properties:
        features:
          description: >-
            The list of feature flags enabled for the tenant the logged in user
            belongs to.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        permissions:
          description: The list of permissions that the current logged in user has.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        principleId:
          description: The principleID of the current logged in user.
          readOnly: false
          type: string
        roles:
          description: The list of roles that the current logged in user has.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        userId:
          description: The userID of the current logged in user.
          readOnly: false
          type: string
      title: Introspect Response
      type: object
      x-speakeasy-name-override: IntrospectResponse
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````