> ## 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 a new manual app without a connector.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/apps
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/apps:
    post:
      tags:
        - App
      summary: Create
      description: Create a new manual app without a connector.
      operationId: c1.api.app.v1.Apps.Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.CreateAppRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.CreateAppResponse'
          description: Returns the new app's values.
      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.Apps.Create(ctx, nil)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.CreateAppResponse != 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.apps.create();

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.app.v1.CreateAppRequest:
      description: The CreateAppRequest message is used to create a new app.
      properties:
        annotations:
          additionalProperties:
            type: string
          description: |-
            Bounded key/value metadata bag for IaC marking and customer tags.
             See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128
             chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars
             matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting
             with `c1/` are reserved for server-managed use and rejected on write.

             Well-known keys: `managed_by`, `iac_workspace`,
             `iac_resource_address`, `iac_tool_version`.
          type: object
          x-speakeasy-terraform-plan-modifier:
            imports:
              - >-
                github.com/conductorone/terraform-provider-conductorone/internal/annotations
            schemaDefinition: annotations.PlanModifier()
        appEntitlementOwnerRefs:
          description: Sets entitlement owners on the app.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.AppEntitlementRef'
          type:
            - array
            - 'null'
        certifyPolicyId:
          description: Creates the app with this certify policy.
          type:
            - string
            - 'null'
        description:
          description: Creates the app with this description.
          type:
            - string
            - 'null'
        displayName:
          description: Creates the app with this display name.
          type:
            - string
            - 'null'
        grantPolicyId:
          description: Creates the app with this grant policy.
          type:
            - string
            - 'null'
        identityMatching:
          description: Define the app user identity matching strategy for this app.
          enum:
            - APP_USER_IDENTITY_MATCHING_UNSPECIFIED
            - APP_USER_IDENTITY_MATCHING_STRICT
            - APP_USER_IDENTITY_MATCHING_DISPLAY_NAME
            - APP_USER_IDENTITY_MATCHING_CUSTOM
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        instructions:
          description: >-
            Instructions shown to users in the access request form when
            requesting access for this app.
          type:
            - string
            - 'null'
        monthlyCostUsd:
          description: Creates the app with this monthly cost per seat.
          format: int32
          type:
            - integer
            - 'null'
        owners:
          description: Creates the app with this array of user owners.
          items:
            type: string
          type:
            - array
            - 'null'
        revokePolicyId:
          description: Creates the app with this revoke policy.
          type:
            - string
            - 'null'
        strictAccessEntitlementProvisioning:
          description: >-
            This flag enforces a provisioning mode where the access entitlement
            is always included in the provisioning flow, if the app user doesn't
            exist
          type:
            - boolean
            - 'null'
      required:
        - displayName
      title: Create App Request
      type: object
      x-speakeasy-entity: App
      x-speakeasy-name-override: CreateAppRequest
    c1.api.app.v1.CreateAppResponse:
      description: Returns the new app's values.
      properties:
        app:
          oneOf:
            - $ref: '#/components/schemas/c1.api.app.v1.App'
            - type: 'null'
      title: Create App Response
      type: object
      x-speakeasy-name-override: CreateAppResponse
    c1.api.app.v1.AppEntitlementRef:
      description: The AppEntitlementRef message.
      properties:
        appId:
          description: The appId field.
          type:
            - string
            - 'null'
        id:
          description: The id field.
          type:
            - string
            - 'null'
      title: App Entitlement Ref
      type: object
      x-speakeasy-name-override: AppEntitlementRef
    c1.api.app.v1.App:
      description: >-
        The App object provides all of the details for an app, as well as some
        configuration.
      properties:
        accessModel:
          description: >-
            How this app models access. Derived during uplift from the app's
            resource type traits.
             Sparse ACL feature.
          enum:
            - APP_ACCESS_MODEL_UNSPECIFIED
            - APP_ACCESS_MODEL_CLASSIC
            - APP_ACCESS_MODEL_HYBRID
            - APP_ACCESS_MODEL_SPARSE
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        annotations:
          additionalProperties:
            type: string
          description: |-
            Key/value metadata. Up to 16 entries; keys 1-128 chars; values 0-256
             chars; URL-safe ASCII. Keys starting with `c1/` are reserved.

             Updates have PATCH semantics: keys absent from the request are
             preserved; an empty value deletes the key.

             Well-known keys: `managed_by`, `iac_workspace`,
             `iac_resource_address`, `iac_tool_version`.
          type: object
          x-speakeasy-terraform-plan-modifier:
            imports:
              - >-
                github.com/conductorone/terraform-provider-conductorone/internal/annotations
            schemaDefinition: annotations.PlanModifier()
        appAccountId:
          description: The ID of the Account named by AccountName.
          readOnly: true
          type:
            - string
            - 'null'
        appAccountName:
          description: >-
            The AccountName of the app. For example, AWS is AccountID, Github is
            Org Name, and Okta is Okta Subdomain.
          readOnly: true
          type:
            - string
            - 'null'
        appOwners:
          description: The owners of the app.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.User'
          readOnly: true
          type:
            - array
            - 'null'
        appUserMapper:
          oneOf:
            - $ref: '#/components/schemas/c1.api.app.v1.AppUserMapper'
            - type: 'null'
        certifyPolicyId:
          description: The ID of the Certify Policy associated with this App.
          type:
            - string
            - 'null'
        connectorVersion:
          description: The connectorVersion field.
          format: uint32
          type:
            - integer
            - 'null'
        createdAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        defaultRequestCatalogId:
          description: The ID for the default request catalog for this app.
          type:
            - string
            - 'null'
        deletedAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        description:
          description: The app's description.
          type:
            - string
            - 'null'
        displayName:
          description: The app's display name.
          type:
            - string
            - 'null'
        enableConnectorSourcedOwnership:
          description: When enabled, resource ownership is sourced from the connector.
          type:
            - boolean
            - 'null'
        fieldMask:
          readOnly: true
          type:
            - string
            - 'null'
        grantPolicyId:
          description: The ID of the Grant Policy associated with this App.
          type:
            - string
            - 'null'
        iconUrl:
          description: The URL of an icon to display for the app.
          type:
            - string
            - 'null'
        id:
          description: The ID of the app.
          readOnly: true
          type:
            - string
            - 'null'
        identityMatching:
          description: The identityMatching field.
          enum:
            - APP_USER_IDENTITY_MATCHING_UNSPECIFIED
            - APP_USER_IDENTITY_MATCHING_STRICT
            - APP_USER_IDENTITY_MATCHING_DISPLAY_NAME
            - APP_USER_IDENTITY_MATCHING_CUSTOM
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        instructions:
          description: >-
            If you add instructions here, they will be shown to users in the
            access request form when requesting access for this app.
          type:
            - string
            - 'null'
        isDirectory:
          description: Specifies if the app is a directory.
          readOnly: true
          type:
            - boolean
            - 'null'
        isManuallyManaged:
          description: The isManuallyManaged field.
          type:
            - boolean
            - 'null'
        logoUri:
          description: The URL of a logo to display for the app.
          readOnly: true
          type:
            - string
            - 'null'
        monthlyCostUsd:
          description: >-
            The cost of an app per-seat, so that total cost can be calculated by
            the grant count.
          format: int32
          type:
            - integer
            - 'null'
        parentAppId:
          description: The ID of the app that created this app, if any.
          readOnly: true
          type:
            - string
            - 'null'
        revokePolicyId:
          description: The ID of the Revoke Policy associated with this App.
          type:
            - string
            - 'null'
        strictAccessEntitlementProvisioning:
          description: The strictAccessEntitlementProvisioning field.
          type:
            - boolean
            - 'null'
        updatedAt:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        userCount:
          description: The number of users with grants to this app.
          format: int64
          readOnly: true
          type:
            - string
            - 'null'
      title: App
      type: object
      x-speakeasy-entity: App
      x-speakeasy-name-override: App
    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.app.v1.AppUserMapper:
      description: AppUserMapper configures custom account mapping for uplift.
      properties:
        mappingCases:
          description: >-
            Ordered list of match cases. Each case defines a pair of CEL key
            extractors.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.AppUserMapperMatchCase'
          type:
            - array
            - 'null'
      title: App User Mapper
      type: object
      x-speakeasy-name-override: AppUserMapper
    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
    c1.api.app.v1.AppUserMapperMatchCase:
      description: >-
        AppUserMapperMatchCase defines a single matching rule for uplift account
        mapping.
      properties:
        appUserKeyCel:
          description: CEL expression evaluated against an AppUser to produce match key(s).
          type:
            - string
            - 'null'
        userKeyCel:
          description: CEL expression evaluated against a User to produce match key(s).
          type:
            - string
            - 'null'
      title: App User Mapper Match Case
      type: object
      x-speakeasy-name-override: AppUserMapperMatchCase
  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

````