Skip to main content

References - Client Libraries


You can interact with Weaviate by using the GraphQL or RESTful API directly, or with one of the available client libraries.

Currently, Weaviate supports:

You can perform all Weaviate requests with any of these clients. For the most seamless and language-native experience, we recommend using the client for your preferred programming language.

Community clients

There also exist community clients that were prepared by our wonderful community members. These clients are not maintained by the core Weaviate team, but by the community members themselves. If you want to contribute to these clients, please contact the maintainers of the client.

Don't see your preferred language?

If you want to contribute one or request for us to work on a particular client, please let us know on the forum

Native vs GraphQL queries

When querying Weaviate you can choose to write your queries in GraphQL and send the raw GraphQL query to Weaviate, or you can write the query natively to the client language you are using.

For example, if you were using the Weaviate Python client:

import weaviate

client = weaviate.Client("http://localhost:8080")

result = client.query.get("Article", ["title", "url", "wordCount"]).do()


Yields the same result as:

import weaviate

client = weaviate.Client("http://localhost:8080")

query = """
Get {
Article {

result = client.query.raw(query)


Client-specific functions

Additional to complete reflection of the RESTful and GraphQL API, the clients have some client-specific functions. These functions are documented on the client pages.

Questions and feedback

If you have any questions or feedback, please let us know on our forum. For example, you can: