Skip to main content

Reference - 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. To contribute to these clients, contact the maintainers directly.

Don't see your preferred language?

If you want to contribute a client, or to request a particular client, let us know in 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()

print(result)

Yields the same result as:

import weaviate

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

query = """
{
Get {
Article {
title
url
wordCount
}
}
}
"""

result = client.query.raw(query)

print(result)

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, let us know in the user forum.