> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-mcp-bridge-private-server.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create

> Create creates a new service principal.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/service_principals
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/service_principals:
    post:
      tags:
        - Service Principal
      summary: Create
      description: Create creates a new service principal.
      operationId: c1.api.service_principal.v1.ServicePrincipalService.Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateResponse
          description: Successful response
      x-codeSamples:
        - lang: go
          label: Create
          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.Principal.Create(ctx, nil)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.ServicePrincipalServiceCreateResponse != 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.principal.create();

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.service_principal.v1.ServicePrincipalServiceCreateRequest:
      description: The ServicePrincipalServiceCreateRequest message.
      properties:
        displayName:
          description: The display name for the new service principal.
          type:
            - string
            - 'null'
      title: Service Principal Service Create Request
      type: object
      x-speakeasy-name-override: ServicePrincipalServiceCreateRequest
    c1.api.service_principal.v1.ServicePrincipalServiceCreateResponse:
      description: The ServicePrincipalServiceCreateResponse message.
      properties:
        servicePrincipal:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.service_principal.v1.ServicePrincipal
            - type: 'null'
      title: Service Principal Service Create Response
      type: object
      x-speakeasy-name-override: ServicePrincipalServiceCreateResponse
    c1.api.service_principal.v1.ServicePrincipal:
      description: ServicePrincipal represents a tenant-managed non-human identity.
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        displayName:
          description: The display name of the service principal.
          type:
            - string
            - 'null'
        id:
          description: The unique user ID of the service principal.
          readOnly: true
          type:
            - string
            - 'null'
        updatedAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        user:
          oneOf:
            - $ref: '#/components/schemas/c1.api.user.v1.User'
            - type: 'null'
      title: Service Principal
      type: object
      x-speakeasy-name-override: ServicePrincipal
    c1.api.user.v1.User:
      description: >-
        The User object provides all of the details for an user, as well as some
        configuration.
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        delegatedUserId:
          description: >-
            The id of the user to whom tasks will be automatically reassigned
            to.
          type:
            - string
            - 'null'
        deletedAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        department:
          description: The department which the user belongs to in the organization.
          readOnly: true
          type:
            - string
            - 'null'
        departmentSources:
          description: >-
            A list of objects mapped based on department attribute mappings
            configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        directoryIds:
          description: A list of unique ids that represent different directories.
          items:
            type: string
          readOnly: true
          type:
            - array
            - 'null'
        directoryStatus:
          description: The status of the user in the directory.
          enum:
            - UNKNOWN
            - ENABLED
            - DISABLED
            - DELETED
          readOnly: true
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        directoryStatusSources:
          description: >-
            A list of objects mapped based on directoryStatus attribute mappings
            configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        displayName:
          description: The display name of the user.
          readOnly: true
          type:
            - string
            - 'null'
        email:
          description: This is the user's email.
          readOnly: true
          type:
            - string
            - 'null'
        emailSources:
          description: A list of source data for the email attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        emails:
          description: This is a list of all of the user's emails from app users.
          items:
            type: string
          readOnly: true
          type:
            - array
            - 'null'
        employeeIdSources:
          description: A list of source data for the employee IDs attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        employeeIds:
          description: This is a list of all of the user's employee IDs from app users.
          items:
            type: string
          readOnly: true
          type:
            - array
            - 'null'
        employmentStatus:
          description: The users employment status.
          readOnly: true
          type:
            - string
            - 'null'
        employmentStatusSources:
          description: >-
            A list of objects mapped based on employmentStatus attribute
            mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        employmentType:
          description: The employment type of the user.
          readOnly: true
          type:
            - string
            - 'null'
        employmentTypeSources:
          description: >-
            A list of objects mapped based on employmentType attribute mappings
            configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        id:
          description: A unique identifier of the user.
          readOnly: true
          type:
            - string
            - 'null'
        jobTitle:
          description: The job title of the user.
          readOnly: true
          type:
            - string
            - 'null'
        jobTitleSources:
          description: >-
            A list of objects mapped based on jobTitle attribute mappings
            configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        managerIds:
          description: A list of ids of the user's managers.
          items:
            type: string
          readOnly: true
          type:
            - array
            - 'null'
        managerSources:
          description: >-
            A list of objects mapped based on managerId attribute mappings
            configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        origin:
          description: The origin of the user, describing who owns the user's lifecycle.
          enum:
            - USER_ORIGIN_UNSPECIFIED
            - USER_ORIGIN_DIRECTORY
            - USER_ORIGIN_LOCAL
            - USER_ORIGIN_SYSTEM
          readOnly: true
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        profile:
          additionalProperties: true
          readOnly: true
          type:
            - object
            - 'null'
        roleIds:
          description: >-
            A list of unique identifiers that maps to ConductorOne's user roles
            let you assign users permissions tailored to the work they do in the
            software.
          items:
            type: string
          type:
            - array
            - 'null'
        status:
          description: The status of the user in the system.
          enum:
            - UNKNOWN
            - ENABLED
            - DISABLED
            - DELETED
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        type:
          description: The type of the user.
          enum:
            - USER_TYPE_UNSPECIFIED
            - USER_TYPE_SYSTEM
            - USER_TYPE_HUMAN
            - USER_TYPE_SERVICE
            - USER_TYPE_AGENT
          readOnly: true
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        updatedAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        username:
          description: >-
            This is the user's primary username. Typically sourced from the
            primary directory.
          readOnly: true
          type:
            - string
            - 'null'
        usernameSources:
          description: A list of source data for the usernames attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          readOnly: true
          type:
            - array
            - 'null'
        usernames:
          description: This is a list of all of the user's usernames from app users.
          items:
            type: string
          readOnly: true
          type:
            - array
            - 'null'
      title: User
      type: object
      x-speakeasy-name-override: User
    c1.api.user.v1.UserAttributeMappingSource:
      description: The UserAttributeMappingSource message.
      properties:
        appId:
          description: The appId field.
          type:
            - string
            - 'null'
        appUserId:
          description: The appUserId field.
          type:
            - string
            - 'null'
        appUserProfileAttributeKey:
          description: The appUserProfileAttributeKey field.
          type:
            - string
            - 'null'
        userAttributeMappingId:
          description: The userAttributeMappingId field.
          type:
            - string
            - 'null'
        value:
          description: The value field.
          type:
            - string
            - 'null'
      title: User Attribute Mapping Source
      type: object
      x-speakeasy-name-override: UserAttributeMappingSource
  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

````