> For the complete documentation index, see [llms.txt](https://molgenis.gitbook.io/molgenis/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://molgenis.gitbook.io/molgenis/8.2/interoperability/guide-rsql.md).

# RSQL operators

## Background

The MOLGENIS REST query API makes use of RSQL. RSQL is a query language for parametrized filtering of entries in RESTful APIs. It’s based on FIQL (Feed Item Query Language), that was originally specified by Mark Nottingham as a language for querying Atom feeds. However the simplicity of RSQL and its capability to express complex queries in a compact and HTTP URI-friendly way makes it a good candidate for becoming a generic query language for searching REST endpoints.

## Supported RSQL operators

MOLGENIS supports the following operators:

| Operator      | Example                                                                            | Description                                                                                                                                                                  |
| ------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `==`          | `/api/v2/myTable?q=columnA==queryValue`                                            | Performs an **equals** query. Returns all rows from *myTable* where values in *columnA* exactly equal *queryValue*                                                           |
| `=q=`         | `/api/v2/myTable?q=columnA=q=queryValue`                                           | Performs a **search** query. Returns all rows from *myTable* where values in *columnA* contain *queryValue*                                                                  |
| `=like=`      | `/api/v2/myTable?q=columnA=like=queryValue`                                        | Performs a **like** query. Returns all rows from *myTable* where values in *columnA* are like *queryValue*                                                                   |
| `=in=`        | `/api/v2/myTable?q=columnA=in=(valueA, valueB)`                                    | Performs an **in** query. Returns all rows from *myTable* where *columnA* contains *valueA* OR *valueB*                                                                      |
| `!=`          | `/api/v2/myTable?q=columnA!=queryValue`                                            | Performs a **not equals** query. Returns all rows from *myTable* where values in *columnA* do not equal *queryValue*                                                         |
| `=notlike=`   | `/api/v2/myTable?q=columnA=notlike=queryValue`                                     | Performs a **not like** query. Returns all rows from  *myTable* where values in *columnA* are not like *queryValue*                                                          |
| `<` & `=lt=`  | `/api/v2/myTable?q=columnA<queryValue`, `/api/v2/myTable?q=columnA=lt=queryValue`  | Performs a **lesser than** query. Returns all rows from *myTable* where values in *columnA* are lesser than *queryValue*                                                     |
| `=le=` & `<=` | `/api/v2/myTable?q=columnA<=queryValue`, `/api/v2/myTable?q=columnA=le=queryValue` | Performs a **lesser than or equal to** query. Returns all rows from *myTable* where values in *columnA* are lesser than or equal to *queryValue*                             |
| `<` & `=gt=`  | `/api/v2/myTable?q=columnA>queryValue`, `/api/v2/myTable?q=columnA=gt=queryValue`  | Performs a **greater than** query. Returns all rows from *myTable* where values in *columnA* are greater than *queryValue*                                                   |
| `>=` & `=ge=` | `/api/v2/myTable?q=columnA>=queryValue`, `/api/v2/myTable?q=columnA=ge=queryValue` | Performs a **equal to or greater than** query. Returns all rows from *myTable* where values in *columnA* are equal to or greater than *queryValue*                           |
| `=rng=`       | `/api/v2/myTable?q=columnA=rng=(fromValue,toValue)`                                | Performs a **from to** query. Returns all rows from *myTable* where values in *columnA* are equal or greater than the *fromValue*, and lesser than or equal to the *toValue* |
| `=should=`    | N/A                                                                                | Not supported                                                                                                                                                                |
| `=dismax=`    | N/A                                                                                | Not supported                                                                                                                                                                |
| `=fuzzy=`     | N/A                                                                                | Not supported                                                                                                                                                                |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://molgenis.gitbook.io/molgenis/8.2/interoperability/guide-rsql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
