Parallel Memory API

The Memory API lets agents search and reuse the results of past Task, Monitor and FindAll runs so new research builds on work already done. It exposes retrieve, evict and clear operations over the stored research corpus, turning repeated web research into a reusable, source-addressable memory rather than a fresh crawl every time.

OpenAPI Specification

parallel-memory-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Parallel Memory API
  description: Parallel API
  contact:
    name: Parallel Support
    url: https://parallel.ai
    email: support@parallel.ai
  version: 0.1.2
servers:
- url: https://api.parallel.ai
  description: Parallel API
security:
- ApiKeyAuth: []
tags:
- name: Memory
  description: The Memory API retrieves and manages memories created by Tasks, Monitors, and FindAll runs. Memories
    can be personal or isolated with a `memory_scope_key`.
paths:
  /v1beta/memory/clear:
    post:
      tags:
      - Memory
      summary: Clear Memory
      description: Clears all entries from the selected memory without deleting the underlying tasks, monitors,
        or FindAll runs.
      operationId: clear_memory_v1beta_memory_clear_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemoryClearRequest'
        required: true
      responses:
        '204':
          description: Memory cleared.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1beta/memory/evict:
    post:
      tags:
      - Memory
      summary: Evict from Memory
      description: Removes a task run, monitor, or FindAll run from the selected memory without deleting the original
        resource.
      operationId: evict_memory_source_v1beta_memory_evict_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemoryEvictRequest'
        required: true
      responses:
        '204':
          description: Source removed from memory.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1beta/memory/retrieve:
    post:
      tags:
      - Memory
      summary: Retrieve Memory
      description: Retrieves relevant or recent runs from the selected memory. Provide a query to rank results by
        relevance; leave it empty to return the most recent runs.
      operationId: retrieve_memory_v1beta_memory_retrieve_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemoryRetrieveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemoryRetrieveResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    FindAllMemoryResult:
      properties:
        kind:
          type: string
          const: findall
          title: Kind
          default: findall
        id:
          type: string
          title: Id
          description: ID of the FindAll run.
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the FindAll result was last updated, as an RFC 3339 timestamp.
        input_excerpt:
          type: string
          title: Input Excerpt
          description: Preview of the run's objective. May be truncated.
        matched_count:
          type: integer
          title: Matched Count
          description: Current number of matched entities.
      type: object
      required:
      - id
      - updated_at
      - input_excerpt
      - matched_count
      title: FindAllMemoryResult
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    MemoryClearRequest:
      properties:
        memory_scope_key:
          anyOf:
          - type: string
            maxLength: 128
            minLength: 1
            pattern: ^[a-zA-Z0-9_-]+$
          - type: 'null'
          title: Memory Scope Key
          description: User-provided key identifying the memory scope to use. Omit to use personal memory, if available.
      type: object
      title: MemoryClearRequest
    MemoryEvictRequest:
      properties:
        memory_scope_key:
          anyOf:
          - type: string
            maxLength: 128
            minLength: 1
            pattern: ^[a-zA-Z0-9_-]+$
          - type: 'null'
          title: Memory Scope Key
          description: User-provided key identifying the memory scope to use. Omit to use personal memory, if available.
        kind:
          type: string
          enum:
          - task
          - monitor
          - findall
          title: Kind
          description: 'Kind of source to evict: `task`, `monitor`, or `findall`.'
        id:
          type: string
          maxLength: 128
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]+$
          title: Id
          description: ID of the task run, monitor, or FindAll run to evict.
      type: object
      required:
      - kind
      - id
      title: MemoryEvictRequest
    MemoryRetrieveRequest:
      properties:
        query:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Query
          description: Concise query describing the memories to retrieve. Empty queries return the most recent memories.
        limit:
          type: integer
          maximum: 25.0
          minimum: 1.0
          title: Limit
          description: Maximum number of memories to return.
          default: 10
        kind:
          anyOf:
          - type: string
            enum:
            - task
            - monitor
            - findall
          - type: 'null'
          title: Kind
          description: 'Filter memories by kind: `task`, `monitor`, or `findall`.'
        since:
          anyOf:
          - type: string
          - type: 'null'
          format: date-time
          title: Since
          description: Only return memories sourced from task, monitor, or FindAll runs completed at or after this
            RFC 3339 timestamp.
          examples:
          - '2026-07-15T17:30:00Z'
        memory_scope_key:
          anyOf:
          - type: string
            maxLength: 128
            minLength: 1
            pattern: ^[a-zA-Z0-9_-]+$
          - type: 'null'
          title: Memory Scope Key
          description: User-provided key identifying the memory scope to use. Omit to use personal memory, if available.
      type: object
      title: MemoryRetrieveRequest
    MemoryRetrieveResponse:
      properties:
        results:
          items:
            oneOf:
            - $ref: '#/components/schemas/TaskMemoryResult'
            - $ref: '#/components/schemas/MonitorMemoryResult'
            - $ref: '#/components/schemas/FindAllMemoryResult'
            discriminator:
              propertyName: kind
              mapping:
                findall: '#/components/schemas/FindAllMemoryResult'
                monitor: '#/components/schemas/MonitorMemoryResult'
                task: '#/components/schemas/TaskMemoryResult'
          type: array
          title: Results
      type: object
      required:
      - results
      title: MemoryRetrieveResponse
    MonitorMemoryEvent:
      properties:
        event_id:
          type: string
          title: Event Id
          description: ID of the monitor event.
        event_group_id:
          type: string
          title: Event Group Id
          description: ID of the execution that produced this event.
        detected_at:
          type: string
          format: date-time
          title: Detected At
          description: When the event was detected, as an RFC 3339 timestamp.
        excerpt:
          type: string
          title: Excerpt
          description: Excerpt of the monitor event. May be truncated.
      type: object
      required:
      - event_id
      - event_group_id
      - detected_at
      - excerpt
      title: MonitorMemoryEvent
    MonitorMemoryResult:
      properties:
        kind:
          type: string
          const: monitor
          title: Kind
          default: monitor
        id:
          type: string
          title: Id
          description: ID of the monitor.
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the monitor last ran, as an RFC 3339 timestamp.
        input_excerpt:
          type: string
          title: Input Excerpt
          description: Preview of the monitor's query. May be truncated.
        status:
          type: string
          enum:
          - active
          - cancelled
          title: Status
          description: Current status of the monitor.
        matched_events:
          items:
            $ref: '#/components/schemas/MonitorMemoryEvent'
          type: array
          title: Matched Events
          description: Detected events matching the retrieval query, ordered by relevance with more recent events
            favored. For an empty query, events are ordered by recency.
      type: object
      required:
      - id
      - updated_at
      - input_excerpt
      - status
      title: MonitorMemoryResult
    TaskMemoryResult:
      properties:
        kind:
          type: string
          const: task
          title: Kind
          default: task
        id:
          type: string
          title: Id
          description: ID of the task run.
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the run completed, as an RFC 3339 timestamp.
        input_excerpt:
          type: string
          title: Input Excerpt
          description: Preview of the run's input. May be truncated.
        output_excerpt:
          type: string
          title: Output Excerpt
          description: Preview of the run's output. May be truncated.
      type: object
      required:
      - id
      - updated_at
      - input_excerpt
      - output_excerpt
      title: TaskMemoryResult
    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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key