---
title: "GraphQL API (deprecated)"
description: "Reference for Weaviate's deprecated GraphQL query API, and where to find its replacements."
url: https://docs.weaviate.io/weaviate/api/graphql
---

# GraphQL API (deprecated)

> [!WARNING]
>
> **The GraphQL API is deprecated**
>
> Weaviate Cloud switches off the GraphQL API on **May 1, 2027**. Clusters that have not used GraphQL in the last 30 days have it switched off from December 1, 2026. New Weaviate Cloud clusters are already created with GraphQL disabled. Self-hosted Weaviate keeps GraphQL until at least May 1, 2027. The first minor release after that date disables it by default, and you can switch it back on. It is removed in a later release.
>
> Use a [client library](https://docs.weaviate.io/weaviate/client-libraries), the [web client](https://docs.weaviate.io/weaviate/client-libraries/typescript/web-client) or the REST Search API instead. See [Migrating from the GraphQL API](https://docs.weaviate.io/weaviate/api/graphql/migration).

## API

This section is the reference for Weaviate's [GraphQL](https://graphql.org/) query API. To search your data, use a Weaviate [client library](https://docs.weaviate.io/weaviate/client-libraries). The current Python, TypeScript, Go, Java, and C# clients query over the [gRPC API](https://docs.weaviate.io/weaviate/api/grpc).

To move existing GraphQL queries to a client library, the web client or the REST Search API, see [Migrating from the GraphQL API](https://docs.weaviate.io/weaviate/api/graphql/migration).

## All references

All references have their individual subpages. Click on one of the references below for more information.

- [Object-level queries](https://docs.weaviate.io/weaviate/api/graphql/get)
- [Aggregate](https://docs.weaviate.io/weaviate/api/graphql/aggregate)
- [Search operators](https://docs.weaviate.io/weaviate/api/graphql/search-operators)
- [Conditional filters](https://docs.weaviate.io/weaviate/api/graphql/filters)
- [Additional operators](https://docs.weaviate.io/weaviate/api/graphql/additional-operators)
- [Additional properties](https://docs.weaviate.io/weaviate/api/graphql/additional-properties)
- [Explore](https://docs.weaviate.io/weaviate/api/graphql/explore)

## GraphQL API

> [!TIP]
>
> **GraphQL is case-sensitive**
>
> GraphQL is case-sensitive ([reference](https://spec.graphql.org/June2018/#sec-Names)), so make sure to use the correct casing when writing your queries.

### Query structure

You can POST a GraphQL query to Weaviate as follows:

```bash
curl http://localhost/v1/graphql -X POST -H 'Content-type: application/json' -d '{GraphQL query}'
```

A GraphQL JSON object is defined as:

```json
{
    "query": "{ # GRAPHQL QUERY }"
}
```

GraphQL queries follow a defined structure. Queries are structured as follows:

```graphql
{
  <Function> {
      <Collection> {
        <property>
        _<underscore-property>
      }
  }
}
```

### Limitations

GraphQL *integer* data currently only supports `int32`, and does not support `int64`. This means that currently *integer* data fields in Weaviate with integer values larger than `int32`, will not be returned using GraphQL queries. We are working on solving this [issue](https://github.com/weaviate/weaviate/issues/1563). As current workaround is to use a `string` instead.

### Consistency level

GraphQL (`Get`) queries are run with a tunable [consistency level](https://docs.weaviate.io/weaviate/concepts/replication-architecture/consistency#tunable-read-consistency).

## gRPC API

Starting with Weaviate v1.19.0, a gRPC interface is being progressively added to Weaviate.

gRPC is a high-performance, open-source universal RPC framework that is contract-based and can be used in any environment. It is based on HTTP/2 and Protocol Buffers, and is therefore very fast and efficient.

Read more about the gRPC API [here](https://docs.weaviate.io/weaviate/api/grpc).
