Mem

Mem external API

The external API from Mem — 53 operation(s) for external.

OpenAPI Specification

mem-external-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: The external developer API exposed through api.mem.ai. This compatibility projection remains independent from first-party product routes.
  title: Mem Public Client CoreApi__service-info external API
  version: 1.0.0
servers:
- url: https://api.mem.ai
security:
- bearerAuth: []
tags:
- name: external
paths:
  /schema/openapi.json:
    get:
      operationId: getPublicClientOpenApiJson
      responses:
        '200':
          description: Public client OpenAPI document
      tags:
      - external
  /schema/openapi.yaml:
    get:
      operationId: getPublicClientOpenApiYaml
      responses:
        '200':
          description: Public client OpenAPI document
      tags:
      - external
  /v0:
    get:
      operationId: app_src_api_routes_external_v0_views_root
      parameters: []
      responses:
        '410':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeprecatedRouteResponseSchema'
          description: Gone
      summary: Root
      tags:
      - external
  /v0/mems:
    post:
      operationId: app_src_api_routes_external_v0_views_create_mem
      parameters: []
      responses:
        '410':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeprecatedRouteResponseSchema'
          description: Gone
      summary: Create Mem
      tags:
      - external
  /v0/mems/{mem_id}/append:
    post:
      operationId: app_src_api_routes_external_v0_views_append_mem
      parameters:
      - in: path
        name: mem_id
        required: true
        schema:
          title: Mem Id
          type: string
      responses:
        '410':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeprecatedRouteResponseSchema'
          description: Gone
      summary: Append Mem
      tags:
      - external
  /v0/mems/batch:
    post:
      operationId: app_src_api_routes_external_v0_views_batch_create_mems
      parameters: []
      responses:
        '410':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeprecatedRouteResponseSchema'
          description: Gone
      summary: Batch Create Mems
      tags:
      - external
  /v1/mem-it:
    post:
      operationId: app_src_api_routes_external_v1_mem_it_views_mem_it
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegacyMemItRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyMemItResponseSchema'
          description: OK
      summary: Mem It
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v1/mem-it\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --data '{\n         \"input\": \"<!DOCTYPE html><html><head><title>AI Trends 2025</title>...</html>\",\n         \"instructions\": \"Extract the key findings and save as a research note\",\n     }'"
  /v1/notes:
    post:
      operationId: app_src_api_routes_external_v1_notes_views_create_note
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegacyCreateNoteRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyCreateNoteResponseSchema'
          description: OK
      summary: Create Note
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "                    curl \"https://api.mem.ai/v1/notes\" \\\n                         --header \"Content-Type: application/json\" \\\n                         --header \"Authorization: Bearer $MEM_API_KEY\" \\\n                         --data '{\n                             \"content\": \"# Sales Call with Acme Corp\n\nContact: John Smith (john@acme.com)\n\nInterested in enterprise plan. Follow up next week.\",\n                             \"auto_organize\": \"Add this to both my Sales and Follow-ups collections\",\n                             \"auto_format\": \"Format as a sales call summary with clear follow-up tasks\"\n                         }'\n                    "
  /v1/notes/{note_id}:
    delete:
      operationId: app_src_api_routes_external_v1_notes_views_delete_note
      parameters:
      - in: path
        name: note_id
        required: true
        schema:
          format: uuid
          title: Note Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyDeleteNoteResponseSchema'
          description: OK
      summary: Delete Note
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v1/notes/01961d40-7a67-7049-a8a6-d5638cbaaeb9\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --request DELETE"
  /v2/attachments/answer-question:
    post:
      description: 'Ask one focused question about a single attachment by kind and ID.

        Use `attachment_kind` and `attachment_id` returned in note attachment metadata.'
      operationId: app_src_api_routes_external_v2_attachments_views_answer_question_about_attachment
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnswerQuestionAboutAttachmentRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnswerQuestionAboutAttachmentResponseSchema'
          description: OK
      summary: Answer Question About Attachment
      tags:
      - external
  /v2/attachments/read:
    post:
      description: 'Read structured content for a single attachment by kind and ID.

        Use `attachment_kind` and `attachment_id` returned in note attachment metadata.'
      operationId: app_src_api_routes_external_v2_attachments_views_read_attachment
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReadAttachmentRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadAttachmentResponseSchema'
          description: OK
      summary: Read Attachment
      tags:
      - external
  /v2/audio-recordings/{audio_recording_id}:
    get:
      description: Fetch the current public transcript and metadata for a single audio recording by ID.
      operationId: app_src_api_routes_external_v2_audio_recordings_views_read_audio_recording
      parameters:
      - description: 'When true (default), transcript turns are prefixed with available speaker

          labels. Labels may be participant names, generic diarization labels such as

          `[Speaker 1]`, or app channel labels such as `[Speaker]` and

          `[Other Speakers]`.

          Participant names are included only when available; many transcripts use

          generic diarization labels or app channel labels instead. Generic labels are

          speaker grouping context, not verified participant identity.

          When false, the same transcript content is returned without speaker labels.'
        in: query
        name: transcript_speaker_labels
        required: false
        schema:
          default: true
          description: 'When true (default), transcript turns are prefixed with available speaker

            labels. Labels may be participant names, generic diarization labels such as

            `[Speaker 1]`, or app channel labels such as `[Speaker]` and

            `[Other Speakers]`.

            Participant names are included only when available; many transcripts use

            generic diarization labels or app channel labels instead. Generic labels are

            speaker grouping context, not verified participant identity.

            When false, the same transcript content is returned without speaker labels.'
          title: Transcript Speaker Labels
          type: boolean
      - description: UUID of the audio recording to read. The caller must be able to access this recording.
        in: path
        name: audio_recording_id
        required: true
        schema:
          description: UUID of the audio recording to read. The caller must be able to access this recording.
          format: uuid
          title: Audio Recording Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadAudioRecordingResponseSchema'
          description: OK
      summary: Read Audio Recording
      tags:
      - external
  /v2/calendar/calendars:
    get:
      operationId: app_src_api_routes_external_v2_calendar_views_list_calendars
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCalendarsResponseSchema'
          description: OK
      summary: List Calendars
      tags:
      - external
  /v2/calendar/calendars/settings:
    post:
      operationId: app_src_api_routes_external_v2_calendar_views_update_calendar_settings
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCalendarSettingsRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCalendarSettingsResponseSchema'
          description: OK
      summary: Update Calendar Settings
      tags:
      - external
  /v2/calendar/connections:
    get:
      operationId: app_src_api_routes_external_v2_calendar_views_list_calendar_connections
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCalendarConnectionsResponseSchema'
          description: OK
      summary: List Calendar Connections
      tags:
      - external
  /v2/calendar/connections/{provider}/callback:
    post:
      operationId: app_src_api_routes_external_v2_calendar_views_calendar_oauth_callback
      parameters:
      - in: path
        name: provider
        required: true
        schema:
          title: Provider
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalendarOAuthCallbackRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarOAuthCallbackResponseSchema'
          description: OK
      summary: Calendar Oauth Callback
      tags:
      - external
  /v2/calendar/connections/{provider}/connect:
    post:
      operationId: app_src_api_routes_external_v2_calendar_views_connect_calendar
      parameters:
      - in: path
        name: provider
        required: true
        schema:
          title: Provider
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectCalendarRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectCalendarResponseSchema'
          description: OK
      summary: Connect Calendar
      tags:
      - external
  /v2/calendar/connections/{provider}/disconnect:
    post:
      operationId: app_src_api_routes_external_v2_calendar_views_disconnect_calendar
      parameters:
      - in: path
        name: provider
        required: true
        schema:
          title: Provider
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisconnectCalendarRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisconnectCalendarResponseSchema'
          description: OK
      summary: Disconnect Calendar
      tags:
      - external
  /v2/calendar/events:
    get:
      operationId: app_src_api_routes_external_v2_calendar_views_list_calendar_events
      parameters:
      - description: Filter events ending at or after this time.
        in: query
        name: start_time
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: Filter events ending at or after this time.
          title: Start Time
      - description: Filter events starting at or before this time.
        in: query
        name: end_time
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: Filter events starting at or before this time.
          title: End Time
      - description: Filter by external calendar ID (provider calendar ID).
        in: query
        name: calendar_id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by external calendar ID (provider calendar ID).
          title: Calendar Id
      - description: Maximum number of events to return.
        in: query
        name: limit
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Maximum number of events to return.
          title: Limit
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCalendarEventsResponseSchema'
          description: OK
      summary: List Calendar Events
      tags:
      - external
  /v2/calendar/events/{event_id}:
    get:
      operationId: app_src_api_routes_external_v2_calendar_views_read_calendar_event
      parameters:
      - description: UUID of the calendar event to read.
        in: path
        name: event_id
        required: true
        schema:
          description: UUID of the calendar event to read.
          format: uuid
          title: Event Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadCalendarEventResponseSchema'
          description: OK
      summary: Read Calendar Event
      tags:
      - external
  /v2/calendar/reconcile:
    post:
      operationId: app_src_api_routes_external_v2_calendar_views_reconcile_calendar
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReconcileCalendarRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconcileCalendarResponseSchema'
          description: OK
      summary: Reconcile Calendar
      tags:
      - external
  /v2/collections:
    get:
      description: 'List collections visible to the authenticated caller with cursor pagination.

        Results are ordered by `order_by` and return `next_page` when additional rows are available.

        For relevance-ranked retrieval by query, use `POST /v2/collections/search`.'
      operationId: app_src_api_routes_external_v2_collections_views_list_collections
      parameters:
      - description: 'Maximum number of collections in this page.

          Use smaller values for lower latency.

          Default is 50; valid range is 1 to 100.'
        in: query
        name: limit
        required: false
        schema:
          anyOf:
          - maximum: 100
            minimum: 1
            type: integer
          - type: 'null'
          default: 50
          description: 'Maximum number of collections in this page.

            Use smaller values for lower latency.

            Default is 50; valid range is 1 to 100.'
          title: Limit
      - description: 'Opaque cursor from a previous list response.

          Omit for the first page.

          IMPORTANT: Reuse with the same filters and `order_by` settings.'
        in: query
        name: page
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Opaque cursor from a previous list response.

            Omit for the first page.

            IMPORTANT: Reuse with the same filters and `order_by` settings.'
          title: Page
      - description: 'Sort key for pagination boundaries.

          Use `updated_at` (default) for recency feeds.

          Use `created_at` for creation-order views.'
        in: query
        name: order_by
        required: false
        schema:
          allOf:
          - enum:
            - created_at
            - updated_at
            title: CollectionListOrderBy
            type: string
          default: updated_at
          description: 'Sort key for pagination boundaries.

            Use `updated_at` (default) for recency feeds.

            Use `created_at` for creation-order views.'
      - description: 'Optional inclusive lower bound for collection creation time (ISO 8601).

          The timestamp must include a timezone offset such as `Z` or `+01:00`.'
        in: query
        name: filter_by_created_after
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: 'Optional inclusive lower bound for collection creation time (ISO 8601).

            The timestamp must include a timezone offset such as `Z` or `+01:00`.'
          title: Filter By Created After
      - description: 'Optional inclusive upper bound for collection creation time (ISO 8601).

          The timestamp must include a timezone offset such as `Z` or `+01:00`.'
        in: query
        name: filter_by_created_before
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: 'Optional inclusive upper bound for collection creation time (ISO 8601).

            The timestamp must include a timezone offset such as `Z` or `+01:00`.'
          title: Filter By Created Before
      - description: 'Optional inclusive lower bound for collection update time (ISO 8601).

          The timestamp must include a timezone offset such as `Z` or `+01:00`.'
        in: query
        name: filter_by_updated_after
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: 'Optional inclusive lower bound for collection update time (ISO 8601).

            The timestamp must include a timezone offset such as `Z` or `+01:00`.'
          title: Filter By Updated After
      - description: 'Optional inclusive upper bound for collection update time (ISO 8601).

          The timestamp must include a timezone offset such as `Z` or `+01:00`.'
        in: query
        name: filter_by_updated_before
        required: false
        schema:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          description: 'Optional inclusive upper bound for collection update time (ISO 8601).

            The timestamp must include a timezone offset such as `Z` or `+01:00`.'
          title: Filter By Updated Before
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionListResponseSchema'
          description: OK
      summary: List Collections
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections?limit=20\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\""
    post:
      description: 'Create a collection with optional caller-provided ID and timestamps.

        If `id` already exists, this request returns a conflict.

        Use collection membership endpoints to add, remove, or move notes between collections.'
      operationId: app_src_api_routes_external_v2_collections_views_create_collection
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCollectionRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCollectionResponseSchema'
          description: OK
      summary: Create Collection
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --data '{\n         \"title\": \"Acme Corp\"\n     }'"
  /v2/collections/{collection_id}:
    delete:
      description: 'Permanently delete a collection.

        Hard-deleting removes the collection resource itself.

        For membership-only changes, use note add, remove, or move collection endpoints.'
      operationId: app_src_api_routes_external_v2_collections_views_delete_collection
      parameters:
      - description: UUID of the collection to permanently delete. Use an ID returned by create/list/search. The caller must be able to access this collection.
        in: path
        name: collection_id
        required: true
        schema:
          description: UUID of the collection to permanently delete. Use an ID returned by create/list/search. The caller must be able to access this collection.
          format: uuid
          title: Collection Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCollectionResponseSchema'
          description: OK
      summary: Delete Collection
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections/01961d40-7a67-7049-a8a6-d5638cbaaeb9\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --request DELETE"
    get:
      description: 'Fetch metadata for a single collection by ID.

        This endpoint returns collection metadata only, not a note list for that collection.

        For discovery flows, use `GET /v2/collections` or `POST /v2/collections/search`.'
      operationId: app_src_api_routes_external_v2_collections_views_read_collection
      parameters:
      - description: UUID of the collection to read. Use an ID returned by create/list/search. The caller must be able to access this collection.
        in: path
        name: collection_id
        required: true
        schema:
          description: UUID of the collection to read. Use an ID returned by create/list/search. The caller must be able to access this collection.
          format: uuid
          title: Collection Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadCollectionResponseSchema'
          description: OK
      summary: Read Collection
      tags:
      - external
    patch:
      description: 'Update metadata for a collection by ID.

        Use this endpoint to rename a collection by setting `title`.

        This endpoint updates only provided fields (`title`, `description`) and leaves omitted fields unchanged.

        For read-only retrieval, use `GET /v2/collections/{collection_id}`.'
      operationId: app_src_api_routes_external_v2_collections_views_update_collection
      parameters:
      - description: UUID of the collection to update. Use an ID returned by create/list/search. The caller must be able to edit this collection.
        in: path
        name: collection_id
        required: true
        schema:
          description: UUID of the collection to update. Use an ID returned by create/list/search. The caller must be able to edit this collection.
          format: uuid
          title: Collection Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCollectionRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCollectionResponseSchema'
          description: OK
      summary: Update Collection
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections/01961d40-7a67-7049-a8a6-d5638cbaaeb9\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --request PATCH \\\n     --data '{\n         \"title\": \"Acme Corp - 2026\",\n         \"description\": \"Collection for 2026 Acme planning and execution notes.\"\n     }'"
  /v2/collections/{collection_id}/notes/{note_id}:
    delete:
      description: 'Remove a note from a collection while keeping both resources.

        This operation only removes the membership link between IDs.

        Use note/collection deletion endpoints to remove resources.'
      operationId: app_src_api_routes_external_v2_collections_views_remove_note_from_collection
      parameters:
      - description: UUID of the collection to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.
        in: path
        name: collection_id
        required: true
        schema:
          description: UUID of the collection to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.
          format: uuid
          title: Collection Id
          type: string
      - description: UUID of the note to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.
        in: path
        name: note_id
        required: true
        schema:
          description: UUID of the note to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.
          format: uuid
          title: Note Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveNoteFromCollectionResponseSchema'
          description: OK
      summary: Remove Note From Collection
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections/01961d40-7a67-7049-a8a6-d5638cbaaeb9/notes/01961d40-7b6f-70dd-8a92-2ee8f7137ab5\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --request DELETE"
    put:
      description: 'Add an existing note to an existing collection.

        This operation only creates the membership link and does not modify note or collection content.

        Use create endpoints to create notes or collections.'
      operationId: app_src_api_routes_external_v2_collections_views_add_note_to_collection
      parameters:
      - description: UUID of the collection that will receive the note. Use an ID returned by create/list/search. The caller must be able to contribute to this collection.
        in: path
        name: collection_id
        required: true
        schema:
          description: UUID of the collection that will receive the note. Use an ID returned by create/list/search. The caller must be able to contribute to this collection.
          format: uuid
          title: Collection Id
          type: string
      - description: UUID of the note to add. Use an ID returned by create/list/search. The caller must be able to access this note.
        in: path
        name: note_id
        required: true
        schema:
          description: UUID of the note to add. Use an ID returned by create/list/search. The caller must be able to access this note.
          format: uuid
          title: Note Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddNoteToCollectionResponseSchema'
          description: OK
      summary: Add Note To Collection
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections/01961d40-7a67-7049-a8a6-d5638cbaaeb9/notes/01961d40-7b6f-70dd-8a92-2ee8f7137ab5\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --request PUT"
  /v2/collections/{source_collection_id}/notes/{note_id}/move:
    post:
      description: 'Move a note from one collection to another collection.

        This operation adds the note to the target collection, then removes it from the source collection.

        It does not modify note or collection content.'
      operationId: app_src_api_routes_external_v2_collections_views_move_note
      parameters:
      - description: UUID of the collection that currently contains the note. Caller must be able to remove the note from this collection.
        in: path
        name: source_collection_id
        required: true
        schema:
          description: UUID of the collection that currently contains the note. Caller must be able to remove the note from this collection.
          format: uuid
          title: Source Collection Id
          type: string
      - description: UUID of the note to move. Use an ID returned by create/list/search.
        in: path
        name: note_id
        required: true
        schema:
          description: UUID of the note to move. Use an ID returned by create/list/search.
          format: uuid
          title: Note Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveNoteRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveNoteResponseSchema'
          description: OK
      summary: Move Note
      tags:
      - external
      x-codeSamples:
      - label: cURL
        lang: bash
        source: "curl \"https://api.mem.ai/v2/collections/01961d40-7a67-7049-a8a6-d5638cbaaeb9/notes/01961d40-7b6f-70dd-8a92-2ee8f7137ab5/move\" \\\n     --header \"Content-Type: application/json\" \\\n     --header \"Authorization: Bearer $MEM_API_KEY\" \\\n     --data '{\n         \"target_collection_id\": \"01961d40-7c70-7ed8-8cd4-bd99203de422\"\n     }'"
  /v2/collections/search:
    post:
      description: 'Search collections using free-text relevance matching.

        Returns a bounded relevance-ranked result set and does not return `next_page`.

        For deterministic chronological pagination, use `GET /v2/collections`.'
      operationId: app_src_api_routes_external_v2_collections_views_search_collections
      parameters: []
      requestBody:
        content:
          app

# --- truncated at 32 KB (300 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mem/refs/heads/main/openapi/mem-external-api-openapi.yml