# Фильтры в API запросах
# Симптомы

*   Как использовать фильтры в API запросах?
*   Как использовать фильтры в XML-RPC запросах?
*   Как фильтровать ответы в API?
*   Как использовать фильтр QueryFilterInfo filter в API?

# Решение

В XML-RPC запросах можно указать фильтр QueryFilterInfo filter для того, чтобы сервер отфильтровал данные по нужным нам условиям. Фильтр имеет структуру:

```txt
{'query': 'поле оператор значение' }
```

Если фильтрация не нужна, то просто указываем пустой фильтр {}, например:

```txt
result = server.v1.firewall.rules.list(auth_token,0,10000,{})
```

Операторы в фильтре используются точно такие же, как и при поисковых запросах в веб-консоли.

| Оператор | Описание                                                                                                                                                      | Пример                                                                                               |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| \=       | Равно. Требует полного совпадения значения поля указанному значению                                                                                           | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'action \= drop' })                      |
| !\=      | Не равно. Значение указанного поля не должно совпадать с указанным значением                                                                                  | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'action !\= drop' })                     |
| and      | Логическое И, требует выполнение всех условий, заданных в запросе                                                                                             | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'name !\~ vpn and name !\~ untrusted' }) |
| or       | Логическое ИЛИ, требует выполнение одного из условий запроса                                                                                                  | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'name !\~ vpn or name !\~ untrusted' })  |
| >        | Больше. Значение поля должно быть больше указанного в запросе значения. Может быть применимо только для полей, поддерживающих сравнения                       | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'pos > 3'})                               |
| >\=      | Больше либо равно. Значение поля должно быть больше либо равны указанному в запросе значению. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'pos >\= 3'})                             |
| \<       | Меньше. Значение поля должно быть меньше указанного в запросе значения. Может быть применимо только для полей, поддерживающих сравнения                       | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'pos \< 3'})                              |
| \<\=     | Меньше либо равно. Значение поля должно быть меньше либо равны указанному в запросе значению. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'pos \<\= 3'})                            |
| in       | Позволяет указать несколько значений поля в запросе                                                                                                           | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'zoneSource in (trusted, dmz)'})          |
| not in   | Позволяет указать несколько значений поля в запросе; будут отображены записи, не содержащие указанные значения                                                | server.v1.firewall.rules.list(auth\_token,0,10000,{'query':'zoneSource not in (trusted, dmz)'})      |
| \~       | Содержит. Позволяет указать подстроку, которая должна находиться в указанном поле                                                                             | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'name \~ vpn' })                         |
| !\~      | Не содержит. Позволяет указать подстроку, которая не должна присутствовать в указанном поле                                                                   | server.v1.firewall.rules.list(auth\_token,0,10000,{'query': 'name !\~ vpn' })                        |

:::danger
**В фильтрах используются те же поля, что и в веб-консоли, а не поля, которые указаны в JSON-файле ответа на API запрос!**
:::

В веб-консоли список доступных полей можно получить нажав на значек вопроса в правой части строки поиска:

![](https://sd.usergate.com/attachments/i/M/iMtF9KZJkRVD2VIA_a/image-2026-1-22_11-18-8.png)