Skip to main content
Weaviate Docs (migrated from docs.weaviate.io) Docs

Search documentation

Type to search this documentation.

On this pageOverview

APIs

Weaviate provides multiple Application Programming Interfaces (APIs) to interact with the database, manage instances, and perform searches. Weaviate exposes three main APIs:

  • RESTful API: Enables almost complete management of a Weaviate instance.

    • Includes operations for managing collections (creating, reading, updating, deleting collections and their definitions), performing basic CRUD (Create, Read, Update, Delete) operations on individual data objects, checking node status, backups, and managing cluster health.
    • The machine-readable specification behind this reference is published at https://docs.weaviate.io/openapi.json. See Machine-readable API specification below.
    • The reference also lists an experimental REST Search API (the /v1/search/{collection}/... and /v1/aggregate/{collection} endpoints), which is disabled by default and rejects requests with a 422 status until EXPERIMENTAL_REST_SEARCH_ENABLED is set to true.
  • Search API - GraphQL: Designed specifically for data querying and exploration.

    • Enables complex search operations, including semantic (vector) search (nearText, nearVector, etc.), keyword search (bm25), hybrid search, filtering, retrieving specific data properties, aggregations, and exploring connections between data objects (cross-references).
    • Not available on new Weaviate Cloud clusters. They are created with GraphQL disabled. Use a client library or the REST Search endpoints instead.
  • Search API - gRPC: A high-performance alternative for GraphQL when it comes to demanding data operations.

    • gRPC is progressively being implemented for various Weaviate operations, particularly focusing on search/query functionalities and batch data imports. It leverages Protocol Buffers for faster serialization, lower latency, and efficient data streaming compared to traditional REST/JSON communication.

The RESTful API reference is rendered from the same specification file that Weaviate builds its REST server from: the request handlers, models, and generated Go client are all produced from it. The specification therefore defines the API rather than describing it after the fact.

For tools, code generators, and agents, that specification is published at the conventional discovery URL https://docs.weaviate.io/openapi.json, which is where most tooling looks for it. The document is written in Swagger 2.0 (OpenAPI 2.0) format, not OpenAPI 3.x, so a consumer that only accepts 3.x needs to convert it first.

Alternative URL, versioning, and scope

/openapi.json serves a rewrite of https://docs.weaviate.io/specs/weaviate-openapi.json. Both URLs return the same document, so request whichever suits your tooling.

The published document is a copy of the specification taken from a Weaviate release branch, and it is updated periodically rather than on every release. Read its info.version field to see which Weaviate version it describes, and compare that with the version you are running.

The specification describes the REST API only. The GraphQL and gRPC search APIs are documented separately, and Weaviate's gRPC service is defined by its protocol buffer files rather than by this document.

Weaviate offers official client libraries for these programming languages:

Have a question or feedback? Here's how to reach us.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu