Quickwit Ingest API

Add documents to indexes via NDJSON format

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/quickwit-ingest-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

quickwit-ingest-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Quickwit REST Cluster Ingest API
  description: 'The Quickwit REST API provides endpoints for indexing NDJSON documents, executing full-text and aggregation search queries, managing indexes and data sources, streaming field values, deleting documents by query, and monitoring cluster health. Quickwit is a cloud-native search engine for log management and full-text search at petabyte scale.

    '
  version: 0.8.2
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  contact:
    name: Quickwit, Inc.
    email: hello@quickwit.io
  x-api-evangelist-rating:
    designScore: 70
    reliability: 80
    documentation: 75
servers:
- url: http://localhost:7280/api/v1
  description: Local Quickwit node
tags:
- name: Ingest
  description: Add documents to indexes via NDJSON format
paths:
  /indexes/{index_id}/ingest:
    post:
      operationId: ingestDocuments
      summary: Ingest documents
      description: 'Ingests NDJSON documents into an index. Each line in the request body must be a valid JSON object. The commit parameter controls when the documents become searchable.

        '
      tags:
      - Ingest
      parameters:
      - $ref: '#/components/parameters/indexId'
      - name: commit
        in: query
        description: 'Controls when documents become searchable. ''auto'' lets Quickwit decide, ''wait_for'' waits for next commit, ''force'' triggers an immediate commit.

          '
        required: false
        schema:
          type: string
          enum:
          - auto
          - wait_for
          - force
          default: auto
      - name: detailed_response
        in: query
        description: Include parse_failures in the response
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        required: true
        content:
          application/x-ndjson:
            schema:
              type: string
              description: NDJSON formatted documents, one per line
            example: '{"message": "log line 1", "timestamp": 1700000000}

              {"message": "log line 2", "timestamp": 1700000001}

              '
      responses:
        '200':
          description: Documents ingested successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  responses:
    BadRequest:
      description: Bad request - invalid parameters or body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  parameters:
    indexId:
      name: index_id
      in: path
      description: The index identifier
      required: true
      schema:
        type: string
      example: my-index
  schemas:
    ApiError:
      type: object
      required:
      - message
      properties:
        message:
          type: string
          description: Human-readable error message
      example:
        message: Index 'my-index' not found
    IngestResponse:
      type: object
      properties:
        num_docs_for_processing:
          type: integer
          description: Number of documents submitted for processing
        num_ingested_docs:
          type: integer
          description: Number of documents successfully ingested
        num_rejected_docs:
          type: integer
          description: Number of documents rejected due to parse errors
        parse_failures:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
              document:
                type: string
          description: Details of parse failures (only if detailed_response=true)