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

# Get or create workspace

> Create a workspace. If the workspace exists, return it



## OpenAPI

````yaml https://dev.hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/workspaces/get_or_create
openapi: 3.1.0
info:
  description: >-
    Oxen is a fast, unstructured data version control, to help version large
    machine learning datasets written in Rust.
  license:
    name: ''
  title: oxen-server
  version: 0.50.0
servers:
  - description: Production API
    url: https://hub.oxen.ai
  - description: Local Development
    url: http://localhost:3000
security:
  - api_key: []
tags:
  - description: Namespace management endpoints
    name: Namespaces
  - description: Repository management endpoints.
    name: Repositories
paths:
  /api/repos/{namespace}/{repo_name}/workspaces/get_or_create:
    put:
      tags:
        - Workspaces
      summary: Get or create workspace
      description: Create a workspace. If the workspace exists, return it
      operationId: get_or_create
      parameters:
        - description: Namespace of the repository
          example: ox
          in: path
          name: namespace
          required: true
          schema:
            type: string
        - description: Name of the repository
          example: ImageNet-1k
          in: path
          name: repo_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              branch_name: main
              name: bessie_workspace
              workspace_id: b3f27f05-0955-4076-805f-39575853b27b
            schema:
              $ref: '#/components/schemas/NewWorkspace'
        description: >-
          Workspace creation details, including base branch and optional
          name/ID.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceResponseView'
          description: Workspace found or created
        '400':
          description: Invalid payload or branch not found
        '404':
          description: Repository not found
components:
  schemas:
    NewWorkspace:
      properties:
        branch_name:
          type: string
        entity_type:
          type:
            - string
            - 'null'
        force:
          type:
            - boolean
            - 'null'
        name:
          type:
            - string
            - 'null'
        resource_path:
          type:
            - string
            - 'null'
        workspace_id:
          type: string
      required:
        - workspace_id
        - branch_name
      type: object
    WorkspaceResponseView:
      allOf:
        - $ref: '#/components/schemas/StatusMessage'
        - properties:
            workspace:
              $ref: '#/components/schemas/WorkspaceResponse'
          required:
            - workspace
          type: object
    StatusMessage:
      properties:
        oxen_version:
          type:
            - string
            - 'null'
        status:
          type: string
        status_message:
          type: string
      required:
        - status
        - status_message
      type: object
    WorkspaceResponse:
      properties:
        commit:
          $ref: '#/components/schemas/Commit'
        id:
          type: string
        name:
          type:
            - string
            - 'null'
      required:
        - id
        - commit
      type: object
    Commit:
      example:
        author: ox
        email: ox@example.com
        id: a1b2c3d4e5f67890abcdef1234567890
        message: Refactor data loading pipeline.
        parent_ids:
          - f1e2d3c4b5a67890fedcba9876543210
        timestamp: '2025-01-01T10:00:00Z'
      properties:
        author:
          type: string
        email:
          type: string
        id:
          type: string
        message:
          type: string
        parent_ids:
          items:
            type: string
          type: array
        timestamp:
          format: date-time
          type: string
      required:
        - id
        - parent_ids
        - message
        - author
        - email
        - timestamp
      type: object
  securitySchemes:
    api_key:
      bearerFormat: JWT
      scheme: bearer
      type: http

````