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

# Create Project

> Create a new project.

    This endpoint creates a project under the specified organization using the
    provided identifiers and configuration. Both `org_id` and `project_id`
    follow the rules: no slashes; only letters, numbers, underscores,
    hyphens, colon, and Unicode characters.

    Each project acts as an isolated memory namespace. All memories (episodes)
    inserted into a project belong exclusively to that project. Queries,
    listings, and any background operations such as memory summarization or
    knowledge extraction only access data within the same project. No
    cross-project memory access is allowed.

    If a project with the same ID already exists within the organization,
    the request will fail with an error.

    Returns the fully resolved project record, including configuration defaults
    applied by the system.



## OpenAPI

````yaml /openapi.json post /api/v2/projects
openapi: 3.1.0
info:
  title: MemMachine API
  version: 0.3.10
  description: >-
    Architectural Memory Systems for AI Agents. Specialized in episodic and
    semantic memory management with strict namespace isolation.
servers:
  - url: http://localhost:8080
security: []
tags:
  - name: Configuration
    description: System overview and memory subsystem configuration.
  - name: Episodic Configuration
    description: Per-project episodic memory subsystem configuration.
  - name: Memories
    description: Core operations for episodic and semantic memory ingestion and retrieval.
  - name: Projects
    description: Lifecycle management for isolated memory namespaces.
  - name: Resources
    description: Embedder, language model, and reranker lifecycle management.
  - name: 'Semantic Memory: Categories'
    description: Category, template, and tag management for semantic sets.
  - name: 'Semantic Memory: Features'
    description: Add, retrieve, and update individual semantic features.
  - name: 'Semantic Memory: Sets'
    description: Set type and set ID lifecycle, listing, and configuration.
  - name: System
    description: Infrastructure, health, and observability.
paths:
  /api/v2/projects:
    post:
      tags:
        - Projects
      summary: Create Project
      description: |-
        Create a new project.

            This endpoint creates a project under the specified organization using the
            provided identifiers and configuration. Both `org_id` and `project_id`
            follow the rules: no slashes; only letters, numbers, underscores,
            hyphens, colon, and Unicode characters.

            Each project acts as an isolated memory namespace. All memories (episodes)
            inserted into a project belong exclusively to that project. Queries,
            listings, and any background operations such as memory summarization or
            knowledge extraction only access data within the same project. No
            cross-project memory access is allowed.

            If a project with the same ID already exists within the organization,
            the request will fail with an error.

            Returns the fully resolved project record, including configuration defaults
            applied by the system.
      operationId: create_project
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectSpec'
            example:
              org_id: acme-corp
              project_id: agent-smith-v1
              description: Primary memory store for customer support agent
              config:
                embedder: openai-text-3-small
                reranker: cohere-rerank-english-v3.0
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CreateProjectSpec:
      properties:
        org_id:
          type: string
          title: Org Id
          description: |2-

                The unique identifier of the organization.

                - Must not contain slashes (`/`).
                - Must contain only letters, numbers, underscores, hyphens, colon, and Unicode
                  characters (e.g., Chinese/Japanese/Korean). No slashes or other symbols
                  are allowed.

                This value determines the namespace the project belongs to.
                
          examples:
            - MemVerge
            - AI_Labs
        project_id:
          type: string
          title: Project Id
          description: |2-

                The identifier of the project.

                - Must be unique within the organization.
                - Must not contain slashes (`/`).
                - Must contain only letters, numbers, underscores, hyphens, colon, and Unicode
                  characters (e.g., Chinese/Japanese/Korean). No slashes or other symbols
                  are allowed.

                This ID is used in API paths and resource locations.
                
          examples:
            - memmachine
            - research123
            - qa_pipeline
        description:
          type: string
          title: Description
          description: |2-

                A human-readable description of the project.
                Used for display purposes in UIs and dashboards.
                Optional; defaults to an empty string.
                
          default: ''
          examples:
            - Test project for RAG pipeline
            - Production semantic search index
        config:
          $ref: '#/components/schemas/ProjectConfig'
          description: |2-

                Configuration settings associated with this project.

                Defines which models (reranker, embedder) to use. If any values within
                `ProjectConfig` are empty, global defaults are applied.
                
      type: object
      required:
        - org_id
        - project_id
      title: CreateProjectSpec
      description: |-
        Specification model for creating a new project.

        A project belongs to an organization and has its own identifiers,
        description, and configuration. The project ID must be unique within
        the organization.
    ProjectResponse:
      properties:
        org_id:
          type: string
          title: Org Id
          description: |2-

                The unique identifier of the organization this project belongs to.

                Returned exactly as stored by the system.
                
        project_id:
          type: string
          title: Project Id
          description: |2-

                The identifier of the project.

                This value uniquely identifies the project within the organization.
                
        description:
          type: string
          title: Description
          description: |2-

                A human-readable description of the project.
                Used for display purposes in UIs and dashboards.
                Optional; defaults to an empty string.
                
          default: ''
        config:
          $ref: '#/components/schemas/ProjectConfig'
          description: |2-

                Configuration settings associated with this project.

                Defines which models (reranker, embedder) to use. If any values within
                `ProjectConfig` are empty, global defaults are applied.
                
      type: object
      required:
        - org_id
        - project_id
      title: ProjectResponse
      description: >-
        Response model returned after project operations (e.g., creation,
        update, fetch).


        Contains the resolved identifiers and configuration of the project as
        stored

        in the system. Field formats follow the same validation rules as in

        `CreateProjectSpec`.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProjectConfig:
      properties:
        backend:
          anyOf:
            - type: string
              enum:
                - declarative
                - event
            - type: 'null'
          title: Backend
          description: Long-term memory backend. New projects should set 'event'.
        reranker:
          type: string
          title: Reranker
          description: |2-

                The name of the reranker model to use for this project.

                - Must refer to a reranker model defined in the system configuration.
                - If set to an empty string (default), the globally configured reranker will
                  be used.

                Rerankers typically re-score retrieved documents to improve result quality.
                
          default: ''
          examples:
            - bge-reranker-large
            - my-custom-reranker
        embedder:
          type: string
          title: Embedder
          description: |2-

                The name of the embedder model to use for this project.

                - Must refer to an embedder model defined in the system configuration.
                - If set to an empty string (default), the globally configured embedder will
                  be used.

                Embedders generate vector embeddings for text to support semantic search and
                similarity operations.
                
          default: ''
          examples:
            - bge-base-en
            - my-embedder
        vector_graph_store:
          type: string
          title: Vector Graph Store
          description: VectorGraphStore resource id (declarative backend only)
          default: ''
        vector_store:
          type: string
          title: Vector Store
          description: VectorStore resource id (event backend only)
          default: ''
        segment_store:
          type: string
          title: Segment Store
          description: >-
            SQL engine resource id backing the segment store (event backend
            only)
          default: ''
        properties_schema:
          additionalProperties:
            type: string
          type: object
          title: Properties Schema
          description: >-
            User-defined filterable properties (event backend only). Maps name
            to type ("bool", "int", "float", "str", "datetime").
      type: object
      title: ProjectConfig
      description: >-
        Project configuration model.


        Identifies the long-term-memory backend and the resource ids it should

        bind to. If any string field is left empty (""), the server falls back
        to

        its globally-configured defaults.


        Backend selection:

        - `backend="event"` (default for new projects): uses VectorStore +
          SegmentStore. Requires `vector_store` and `segment_store`.
        - `backend="declarative"`: uses VectorGraphStore. Requires
          `vector_graph_store`.
        - Empty/null `backend`: server falls back to its parse-time default
          (declarative, for backwards compatibility with pre-discriminator clients).
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````