Marqo website screenshot

Marqo

Marqo is an open-source, multimodal vector search engine that lets developers index text and images, generate embeddings on the fly, and run tensor, lexical, and hybrid search through a single REST API. Built on Vespa for storage and retrieval and FastAPI for the HTTP surface, Marqo bundles model inference (Sentence Transformers, OpenCLIP, ONNX) inside the engine so a single `docker run` produces a working semantic search stack. The Apache 2.0 open-source engine has been marked deprecated by the maintainers as Marqo pivots to a hosted ecommerce search product, but the project remains widely forked, downloaded, and self-hosted, with active sibling repositories for the Python client, Terraform provider, InstantSearch client, ecommerce embedding models, and Generalised Contrastive Learning research.

1 APIs 12 Features
Vector DatabaseVector SearchMultimodalSemantic SearchEmbeddingsAIMachine LearningOpen SourceEcommerce Search

APIs

Marqo REST API

The Marqo REST API is the HTTP surface exposed by the open-source engine (default `http://localhost:8882`). It provides index lifecycle management, document add/update/get/delet...

Collections

Pricing Plans

Marqo Plans Pricing

1 plans

PLANS

Rate Limits

Marqo Rate Limits

1 limits

RATE LIMITS

FinOps

Marqo Finops

FINOPS

Features

Open-source Apache 2.0 vector search engine (project marked deprecated by maintainers; still 5,000+ stars and actively forked)
Single `docker run` install bundling Vespa storage and embedding model inference
Tensor, lexical, and hybrid search through a unified REST API
Multimodal indexing of text and images with on-engine inference
Embedding generation via Sentence Transformers, OpenCLIP, and ONNX models
Generalised Contrastive Learning (GCL) framework for fine-tuned retrieval
Marqo-FashionCLIP and marqo-ecommerce-embeddings open-weight models
Recommendations, filters, and structured + unstructured fields
FastAPI runtime exposing live `/openapi.json` and Swagger UI at `/docs`
Compose files for inference, model management, and Triton-backed serving
Python client (py-marqo), Terraform provider, and InstantSearch client
Hosted Marqo Cloud surface preserves API parity for legacy users

Use Cases

Multimodal Semantic Search

Index text and images into a single tensor store and query with natural-language or image inputs, with embedding inference running inside the engine.

Retrieval-Augmented Generation

Power RAG pipelines by serving the nearest-neighbor retrieval layer for LLM context windows over private corpora.

Ecommerce Product Discovery

Drive product search, recommendations, and merchandising-aware ranking using semantic relevance plus structured filters and boosts.

Visual Search

Search product catalogs and image libraries using image-to-image and text-to-image similarity through OpenCLIP / Marqo-FashionCLIP.

Self-Hosted Vector Backend

Stand up an Apache 2.0 vector search service alongside your application stack with `docker run`, no separate embedding service required.

Integrations

Vespa

Vespa is the underlying storage and retrieval engine that backs every Marqo index.

Sentence Transformers

Default text embedding model family loaded by the engine for tensor search.

OpenCLIP

Multimodal text-and-image embedding family used for visual and cross-modal search.

Hugging Face

Models are pulled from Hugging Face hubs at first use unless preloaded.

NVIDIA Triton

`compose-triton.yaml` ships a Triton-backed model server profile for GPU inference.

Terraform

terraform-provider-marqo manages Marqo Cloud indexes as infrastructure-as-code.

Algolia InstantSearch

marqo-instantsearch-client adapts Marqo to the InstantSearch.js front-end conventions.

Shopify

Hosted Marqo product offers one-click integration for Shopify catalogs.

Adobe Commerce

Hosted Marqo product offers Adobe Commerce / Magento connector.

Salesforce Commerce Cloud

Hosted Marqo product offers Salesforce Commerce Cloud connector.

Resources

🔗
Website
Website
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
🔗
LinkedIn
LinkedIn
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🔗
License
License
📰
Blog
Blog
💰
Pricing
Pricing
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔗
Models
Models
🔗
Models
Models
🔗
Research
Research
💻
Examples
Examples
🔗
Course
Course

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Marqo REST API
  version: '2.26'
items:
- info:
    name: Telemetry
    type: folder
  items:
  - info:
      name: Root Health Check
      type: http
    http:
      method: GET
      url: http://localhost:8882/
    docs: Root Health Check
  - info:
      name: Health Check
      type: http
    http:
      method: GET
      url: http://localhost:8882/health
    docs: Health Check
  - info:
      name: Memory Usage
      type: http
    http:
      method: GET
      url: http://localhost:8882/memory
    docs: Memory Usage
- info:
    name: Models
    type: folder
  items:
  - info:
      name: List Loaded Models
      type: http
    http:
      method: GET
      url: http://localhost:8882/models
    docs: List Loaded Models
  - info:
      name: Eject Model
      type: http
    http:
      method: DELETE
      url: http://localhost:8882/models/eject
      params:
      - name: model_name
        value: ''
        type: query
      - name: model_device
        value: ''
        type: query
    docs: Eject Model
- info:
    name: Indexes
    type: folder
  items:
  - info:
      name: List Indexes
      type: http
    http:
      method: GET
      url: http://localhost:8882/indexes
    docs: List Indexes
  - info:
      name: Create Index
      type: http
    http:
      method: POST
      url: http://localhost:8882/indexes/:index_name
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Create Index
  - info:
      name: Delete Index
      type: http
    http:
      method: DELETE
      url: http://localhost:8882/indexes/:index_name
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
    docs: Delete Index
  - info:
      name: Get Index Settings
      type: http
    http:
      method: GET
      url: http://localhost:8882/indexes/:index_name/settings
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
    docs: Get Index Settings
  - info:
      name: Get Index Stats
      type: http
    http:
      method: GET
      url: http://localhost:8882/indexes/:index_name/stats
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
    docs: Get Index Stats
- info:
    name: Documents
    type: folder
  items:
  - info:
      name: Add Or Update Documents
      type: http
    http:
      method: POST
      url: http://localhost:8882/indexes/:index_name/documents
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Add Or Update Documents
  - info:
      name: Delete Documents
      type: http
    http:
      method: DELETE
      url: http://localhost:8882/indexes/:index_name/documents
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Delete Documents
  - info:
      name: Get Document By Id
      type: http
    http:
      method: GET
      url: http://localhost:8882/indexes/:index_name/documents/:document_id
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      - name: document_id
        value: ''
        type: path
      - name: expose_facets
        value: ''
        type: query
    docs: Get Document By Id
- info:
    name: Search
    type: folder
  items:
  - info:
      name: Search Index
      type: http
    http:
      method: POST
      url: http://localhost:8882/indexes/:index_name/search
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Search Index
- info:
    name: Recommendations
    type: folder
  items:
  - info:
      name: Recommend Similar Documents
      type: http
    http:
      method: POST
      url: http://localhost:8882/indexes/:index_name/recommend
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Recommend Similar Documents
- info:
    name: Embeddings
    type: folder
  items:
  - info:
      name: Generate Embeddings
      type: http
    http:
      method: POST
      url: http://localhost:8882/indexes/:index_name/embed
      params:
      - name: index_name
        value: ''
        type: path
        description: Name of the Marqo index.
      body:
        type: json
        data: '{}'
    docs: Generate Embeddings
bundled: true