Memories Serve API

The Serve API from Memories — 30 operation(s) for serve.

OpenAPI Specification

memories-serve-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Memories Platform API (Docs Mapping) Serve API
  version: v1
  description: OpenAPI mapping used by Mintlify Try it for the platform docs.
servers:
- url: https://api.memories.ai
security:
- ApiKeyAuth: []
tags:
- name: Serve
paths:
  /serve/api/v1/memories/add:
    post:
      summary: Add Memory
      operationId: add_memory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddMemoryRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/get_audio_transcription:
    get:
      summary: Get Audio Transcription
      operationId: get_audio_transcription
      parameters:
      - name: video_no
        in: query
        required: true
        schema:
          type: string
        description: The unique video ID returned by the upload API.
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/delete_videos:
    post:
      summary: Delete Videos
      operationId: delete_videos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteVideosRequest'
            example:
            - VI1234567890
            - VI0987654321
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/download:
    post:
      summary: Download Video
      operationId: download_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DownloadVideoRequest'
      responses:
        '200':
          $ref: '#/components/responses/BinaryDownloadResponse'
      tags:
      - Serve
  /serve/api/v1/get_video_ids_by_task_id:
    get:
      summary: Get Task Status
      operationId: get_task_status
      parameters:
      - name: task_id
        in: query
        required: true
        schema:
          type: string
        description: The task ID returned by an upload or scraping request.
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/memories:
    post:
      summary: List Memories
      operationId: list_memories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListMemoriesRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/get_metadata:
    get:
      summary: Get Video Metadata
      operationId: get_video_metadata
      parameters:
      - name: video_no
        in: query
        required: true
        schema:
          type: string
        example: VI606404158946574336
        description: Video identifier. Must be non-empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetadataResponse'
      tags:
      - Serve
  /serve/api/v1/list_videos:
    post:
      summary: List Videos
      operationId: list_videos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListVideosRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVideosResponse'
      tags:
      - Serve
  /serve/api/v1/chat_personal_stream:
    post:
      summary: Chat with Personal Media Entities
      operationId: chat_personal_stream
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonalMediaChatRequest'
      responses:
        '200':
          $ref: '#/components/responses/SseOrJsonResponse'
      tags:
      - Serve
  /serve/api/v1/search_clips_by_image:
    post:
      summary: Search Clips by Image
      operationId: search_clips_by_image
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SearchClipsByImageRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchClipsByImageResponse'
      tags:
      - Serve
  /serve/api/v1/search_audio_transcripts:
    get:
      summary: Search from Audio
      operationId: search_audio_transcripts
      parameters:
      - name: query
        in: query
        required: true
        schema:
          type: string
        description: Audio transcript search text (LIKE match). Must be non-empty.
      - name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
        description: One-based page number. Must be > 0.
      - name: page_size
        in: query
        schema:
          type: integer
          default: 100
          minimum: 1
          maximum: 500
        description: Results per page. Range 1-500.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchAudioTranscriptsResponse'
      tags:
      - Serve
  /serve/api/v1/memories/search:
    post:
      summary: Search Memories
      operationId: search_memories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchMemoriesRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/search:
    post:
      summary: Search from Private Library
      operationId: search_private_library
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchPrivateRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchPrivateResponse'
      tags:
      - Serve
  /serve/api/v1/search_public:
    post:
      summary: Search from Public Video Sources
      operationId: search_public_library
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchPublicRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchPublicResponse'
      tags:
      - Serve
  /serve/api/v1/search_public_similar_images:
    post:
      summary: Search Public Videos by Image
      operationId: search_public_similar_images
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SearchSimilarImagesRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchSimilarImagesResponse'
      tags:
      - Serve
  /serve/api/v1/upload_img:
    post:
      summary: Upload Image from File
      operationId: upload_image_from_file
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadImageRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadImageResponse'
      tags:
      - Serve
  /serve/api/v1/scraper:
    post:
      summary: Upload Video from Platform Creator URL
      operationId: upload_video_from_creator_url
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadVideoFromCreatorRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/upload:
    post:
      summary: Upload Video from File
      operationId: upload_video_from_file
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadVideoRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadVideoResponse'
      tags:
      - Serve
  /serve/api/v1/scraper_tag:
    post:
      summary: Upload Video from Hashtag
      operationId: upload_video_from_hashtag
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadVideoFromHashtagRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/scraper_url:
    post:
      summary: Upload Video from Platform URL
      operationId: upload_video_from_platform_url
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadVideoFromPlatformUrlRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScraperTaskResponse'
      tags:
      - Serve
  /serve/api/v1/upload_url:
    post:
      summary: Upload Video from URL
      operationId: upload_video_from_url
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadVideoFromUrlRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadVideoResponse'
      tags:
      - Serve
  /serve/api/v1/chat:
    post:
      summary: Video Chat
      operationId: video_chat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoChatRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/marketer_chat:
    post:
      summary: Video Marketer
      operationId: video_marketer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoMarketerRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/get_video_caption:
    get:
      summary: Get Video Caption
      operationId: get_video_caption
      parameters:
      - name: video_no
        in: query
        required: true
        schema:
          type: string
        description: The unique video ID returned by the upload API.
      responses:
        '200':
          $ref: '#/components/responses/SuccessJson'
      tags:
      - Serve
  /serve/api/v1/folders:
    get:
      summary: List Folders
      operationId: list_folders
      description: List all folders in your account.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderListResponse'
      tags:
      - Serve
  /serve/api/v1/folders/create:
    post:
      summary: Create Folder
      operationId: create_folder
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  maxLength: 100
                  example: my-project
                  description: Folder name. Max 100 chars, unique within your account.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderItemResponse'
      tags:
      - Serve
  /serve/api/v1/folders/rename:
    post:
      summary: Rename Folder
      operationId: rename_folder
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - folder_id
              - new_name
              properties:
                folder_id:
                  type: integer
                  example: 671631448308117500
                  description: Folder id to rename. Must be > 0 and belong to your account.
                new_name:
                  type: string
                  maxLength: 100
                  example: renamed-project
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderItemResponse'
      tags:
      - Serve
  /serve/api/v1/folders/delete:
    post:
      summary: Delete Folder
      operationId: delete_folder
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - folder_id
              properties:
                folder_id:
                  type: integer
                  example: 671631448308117500
                  description: Folder id to delete. Must be > 0 and belong to your account. Fails if it contains parsed videos.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericJsonResponse'
      tags:
      - Serve
  /serve/api/v1/folders/videos:
    get:
      summary: List Videos in Folder
      operationId: list_folder_videos
      parameters:
      - name: folder_id
        in: query
        required: true
        schema:
          type: integer
        example: 671631448308117500
        description: Folder to list. -1 Default folder, -2 legacy API folder, or a folder that belongs to your account.
      - name: page
        in: query
        schema:
          type: integer
          default: 1
        description: One-based page number.
      - name: page_size
        in: query
        schema:
          type: integer
          default: 20
        description: Items per page.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVideosResponse'
      tags:
      - Serve
  /serve/api/v1/folders/move:
    post:
      summary: Move Videos to Folder
      operationId: move_videos_to_folder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - folder_id
              - video_nos
              properties:
                folder_id:
                  type: integer
                  example: 671631448308117500
                  description: Target folder id. -1 = Default folder. Must already exist and belong to your account (not auto-created).
                video_nos:
                  type: array
                  items:
                    type: string
                  maxItems: 500
                  example:
                  - VI671631448308117504
                  description: Video identifiers to move. Max 500 per request.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericJsonResponse'
      tags:
      - Serve
components:
  schemas:
    UploadVideoFromCreatorRequest:
      type: object
      properties:
        username:
          type: string
          example: https://www.tiktok.com/@cutshall73
        scraper_cnt:
          type: integer
          default: 4
        callback_url:
          type: string
          format: uri
          example: https://your.app/callback
        folder_id:
          type: integer
          description: Optional target folder for the upload. Omit or pass -1 for the account's Default folder (auto-created on first use). A positive id must belong to your account.
          example: 671631448308117500
      required:
      - username
    UploadImageResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
          description: Business status code. 0000 indicates success.
        msg:
          type: string
          example: success
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                format: int64
                example: 568102998803353600
                description: Unique numeric identifier of the uploaded image.
          example:
          - id: 568102998803353600
          - id: 568102998803353600
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      example:
        code: '0000'
        msg: success
        data:
        - id: 568102998803353600
        - id: 568102998803353600
        success: true
        failed: false
    FolderItem:
      type: object
      properties:
        folder_id:
          type: integer
          example: 671631448308117500
          description: Folder identifier. -1 = Default folder; -2 = legacy API folder (read-only).
        folder_name:
          type: string
          example: my-project
    UploadVideoFromHashtagRequest:
      type: object
      properties:
        hash_tags:
          type: array
          items:
            type: string
          example:
          - LVMH
        scraper_cnt:
          type: integer
          default: 2
        callback:
          type: string
          format: uri
          example: https://your.app/callback
        folder_id:
          type: integer
          description: Optional target folder for the upload. Omit or pass -1 for the account's Default folder (auto-created on first use). A positive id must belong to your account.
          example: 671631448308117500
      required:
      - hash_tags
    FlexibleFilter:
      type: object
      additionalProperties: true
      description: Flexible filter object used by memories list and search endpoints.
    MemoryEntryInput:
      type: object
      properties:
        role:
          type: string
          example: Tester
        content:
          type: string
          example: Starting testing today
      required:
      - role
      - content
    VideoMarketerRequest:
      type: object
      properties:
        prompt:
          type: string
          example: What does nike recently post?
        session_id:
          type: string
          example: ''
        type:
          type: string
          enum:
          - TIKTOK
          - YOUTUBE
          - INSTAGRAM
          default: TIKTOK
      required:
      - prompt
    SearchAudioTranscriptsResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
        msg:
          type: string
          example: success
        data:
          type: object
          properties:
            current_page:
              type: integer
              example: 1
            page_size:
              type: integer
              example: 100
            total_count:
              type: integer
              format: int64
              example: 2
            videos:
              type: array
              items:
                type: object
                properties:
                  videoNo:
                    type: string
                    example: VI576925607808602112
                  videoName:
                    type: string
                    example: '1920447021987282945'
                  startTime:
                    type: string
                    example: '13'
                    description: Matched segment start time in seconds.
                  audio_ts:
                    type: string
                    example: '... where is the love ...'
                    description: Matched transcript text.
                  video_bucket:
                    type: string
                    description: GCS bucket of the original video file. Omitted when the storage location cannot be resolved.
                  video_blob:
                    type: string
                    description: GCS blob (object) path of the original video. Use it with video_bucket at GET /serve/api/v2/download to fetch the file directly.
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      example:
        code: '0000'
        msg: success
        data:
          current_page: 1
          page_size: 100
          total_count: 2
          videos:
          - videoNo: VI576925607808602112
            videoName: '1920447021987282945'
            startTime: '13'
            audio_ts: '... where is the love ...'
            video_bucket: mavi-resource
            video_blob: VI576925607808602112.mp4
        success: true
        failed: false
    SearchClipsByImageRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          description: 'Query image. Allowed extensions: .jpg/.jpeg/.png/.gif/.bmp/.webp. Content-Type must start with image/. Max 20 MB.'
        video_no:
          type: string
          example: VI625239098370850816
          description: Unique identifier of the video to search within. Must be non-empty.
        prompt:
          type: string
          example: focus on the red shirt, ignore background color
          description: Natural-language prompt that refines the visual match. Must be non-empty. English recommended.
      required:
      - file
      - video_no
      - prompt
    DeleteVideosRequest:
      type: array
      items:
        type: string
      description: Raw JSON array of video IDs to delete.
    FolderListResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
        msg:
          type: string
          example: success
        data:
          type: object
          properties:
            folders:
              type: array
              items:
                $ref: '#/components/schemas/FolderItem'
    SearchPublicResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
        msg:
          type: string
          example: success
        data:
          type: array
          items:
            type: object
            properties:
              videoNo:
                type: string
                example: PI-600947902470296459
              videoName:
                type: string
                example: They played in their OPPONENTS jerseys?!?
              startTime:
                type: string
                example: '23'
              endTime:
                type: string
                example: '27'
              audio_ts:
                type: string
                description: Matched audio transcript (populated for BY_AUDIO).
              score:
                type: number
                format: double
                example: 0.7350679636001586
              video_bucket:
                type: string
                description: GCS bucket of our cached copy of the public video. Omitted when the storage location cannot be resolved.
              video_blob:
                type: string
                description: GCS blob path of the cached video. Use with video_bucket at GET /serve/api/v2/download to fetch the file directly.
              keyframe_bucket:
                type: string
                description: GCS bucket of the matched keyframe image (BY_CLIP only).
              keyframe_blob:
                type: string
                description: GCS blob path of the matched keyframe image.
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      example:
        code: '0000'
        msg: success
        data:
        - videoNo: PI-600947902470296459
          videoName: They played in their OPPONENTS jerseys?!?
          startTime: '23'
          endTime: '27'
          audio_ts: '...matched transcript text...'
          score: 0.7350679636001586
          video_bucket: mavi-public-video
          video_blob: <scraper-id>.mp4
          keyframe_bucket: mavi-public-keyframe
          keyframe_blob: <uuid>/keyframe-000023.jpg
        success: true
        failed: false
    SearchMemoriesRequest:
      type: object
      properties:
        page:
          type: integer
          default: 1
        page_size:
          type: integer
          default: 20
        filters:
          $ref: '#/components/schemas/FlexibleFilter'
        query:
          type: string
          example: Technology
      required:
      - query
    DownloadVideoRequest:
      type: object
      properties:
        video_no:
          type: string
          example: VI625239098370850816
      required:
      - video_no
    VideoChatRequest:
      type: object
      properties:
        video_nos:
          type: array
          items:
            type: string
          example:
          - VI625239098370850816
        prompt:
          type: string
          example: Summarize the emotional moments in these videos
        session_id:
          type: string
          example: session-123
      required:
      - video_nos
      - prompt
    UploadVideoResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
          description: Business status code. 0000 indicates success.
        msg:
          type: string
          example: success
        data:
          type: object
          properties:
            videoNo:
              type: string
              example: VI568102998803353600
              description: Unique identifier of the uploaded video. Use this for all subsequent operations.
            videoName:
              type: string
              example: 1be6a69f3c6e49bf986235d68807ab1f
              description: Internal stored name of the video.
            videoStatus:
              type: string
              example: UNPARSE
              description: Initial processing status. UNPARSE immediately after upload; transitions to parsing asynchronously.
            uploadTime:
              type: string
              example: '1744905509814'
              description: Upload timestamp in milliseconds since epoch (as string).
          example:
            videoNo: VI568102998803353600
            videoName: 1be6a69f3c6e49bf986235d68807ab1f
            videoStatus: UNPARSE
            uploadTime: '1744905509814'
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      example:
        code: '0000'
        msg: success
        data:
          videoNo: VI568102998803353600
          videoName: 1be6a69f3c6e49bf986235d68807ab1f
          videoStatus: UNPARSE
          uploadTime: '1744905509814'
        success: true
        failed: false
    ListVideosRequest:
      type: object
      properties:
        page:
          type: integer
          default: 1
          minimum: 1
          description: One-based page number. Must be > 0.
        size:
          type: integer
          default: 200
          minimum: 1
          description: Items per page. Must be > 0.
        video_name:
          type: string
          description: Exact-match filter on the stored video name.
        video_no:
          type: string
          description: Exact-match filter on a single video identifier.
        video_nos:
          type: array
          items:
            type: string
          description: Restrict results to a specific set of video identifiers. Combined via AND with other filters; intersected with the metadata-filter result when both are used.
          example:
          - VI606404158946574336
          - VI606402870447996928
        status:
          type: string
          enum:
          - PARSE
          - UNPARSE
          - FAILED
          description: Filter by processing status.
        camera_model:
          type: string
          example: Canon EOS 5D
          description: 'Metadata filter: exact-match on the camera_model supplied at upload time.'
        tag:
          type: string
          example: holiday
          description: 'Metadata filter: single tag that must be present on the video.'
        datetime_taken:
          type: integer
          format: int64
          example: 1729388400000
          description: 'Metadata filter: minimum capture timestamp in milliseconds since epoch. Matches videos whose capture_timestamp >= this value.'
        latitude:
          type: number
          format: double
          example: 39.9042
          description: 'Metadata filter: decimal latitude. Must be supplied together with longitude.'
        longitude:
          type: number
          format: double
          example: 116.4074
          description: 'Metadata filter: decimal longitude. Must be supplied together with latitude. ~20 km geo-within radius.'
        folder_id:
          type: integer
          description: Optional. Restrict results to a single folder. Omit to query across your entire account. -1 is the Default folder; a positive id must belong to your account.
          example: 671631448308117500
    PersonalMediaChatRequest:
      type: object
      properties:
        session_id:
          type: string
          example: ''
        prompt:
          type: string
          example: When did I went to the beach?
      required:
      - prompt
    SearchPrivateRequest:
      type: object
      properties:
        search_param:
          type: string
          example: boat in the ocean
          description: Natural-language search query. Must be non-empty.
        search_type:
          type: string
          enum:
          - BY_VIDEO
          - BY_CLIP
          - BY_AUDIO
          - BY_IMAGE
          - BY_CAPTION
          default: BY_CLIP
          example: BY_CLIP
          description: Search modality. BY_VIDEO is treated as BY_CLIP internally. BY_CAPTION performs vector search over the video_transcript table and returns a different item shape (see response).
        top_k:
          type: integer
          default: 100
          minimum: 1
          maximum: 1000
          description: Maximum number of results to return. Range 1-1000 for BY_CLIP/BY_AUDIO/BY_IMAGE. For BY_CAPTION the range is 1-200 (server-side default is 10 when null).
        filtering_level:
          type: string
          enum:
          - low
          - medium
          - high
          example: medium
          description: Similarity-score filter. low=0.15, medium=0.225, high=0.4.
        video_nos:
          type: array
          items:
            type: string
          maxItems: 100
          example:
          - VI635764894954369024
          description: Optional list of video numbers to restrict the search to. Max 100.
        tag:
          type: string
          example: test1
          description: Optional tag filter.
        camera_tag:
          type: string
          example: Canon EOS 5D
          description: Optional c

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