Parallel Web Systems Memory API (Beta)

The beta Memory API gives agents a persistent retrieval layer over previously gathered web context. It exposes three operations - retrieve memory for a query, evict a specific source from memory, and clear memory entirely - so an agent can reuse research across turns without refetching the web. The surface lives under the /v1beta prefix and is opted into via the `parallel-beta` request header.

OpenAPI Specification

parallel-web-systems-memory-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Parallel Memory API (Beta)
  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
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'
security:
- ApiKeyAuth: []
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