---
title: "Search"
description: "The query fields of each search operation, and the language its query takes."
url: https://docs.fluveo.com/search/
---

> Index of every page: https://docs.fluveo.com/llms.txt. Integrating Fluveo? Read https://docs.fluveo.com/agents/integrate.md first.

# Search

The query fields of each search operation, and the language its query takes.

Each search operation takes a `query` in the search language. A query that names a field the resource does not search is refused, and the message links to that resource's section below.

## Query fields for `charges`

[`GET /v1/charges/search`](https://docs.fluveo.com/api/charges.md#get-v1-charges-search)

A query is one or more clauses, each a field, an operator and a value, such as status:"succeeded" or amount>1000. The charge fields are amount, created, currency, customer, disputed, refunded, status, billing_details.address.postal_code, payment_method_details.card.brand, exp_month, exp_year, fingerprint and last4 (and the same under card_present and interac_present), and metadata["key"]. amount and created take :, =, <, <=, > and >= with a whole number, quoted or not. Every other field takes only :, which matches the whole value in any case; disputed and refunded take true or false, status takes failed, pending or succeeded, and refunded:null finds the charges not fully refunded. A - before a clause negates it. field:null matches a field that is absent or empty, and -field:null one that is set. Join clauses with AND or OR (a space means AND), never both in one query and never with parentheses, up to 10 clauses. Quote text values with single or double quotes. A query Fluveo cannot read answers invalid_request_error with the reason. When has_more is true, send next_page as page with the same query for the next page. Add expand[]=total_count to get total_count, the number of matches. A charge is found as soon as its PaymentIntent's answer returns.

## Query fields for `customers`

[`GET /v1/customers/search`](https://docs.fluveo.com/api/customers.md#get-v1-customers-search)

A query is one or more clauses, each a field, an operator and a quoted value, such as email:"ada@example.com" or name~"ada". The customer fields are email, name, phone, created and metadata["key"]. The operator : matches a run of whole words of email, name or phone, in order and in any case, so email:"ada@example.com" finds that address only. The operator ~ finds a part of email, name or phone of at least three characters; a shorter part matches nothing. created takes a whole number of seconds with =, :, >, >=, < or <=, such as created>1700000000. A - before a clause negates it. field:null matches a field that is absent or empty. Join clauses with AND or OR (a space means AND), never both in one query and never with parentheses, up to 10 clauses. When has_more is true, send next_page as page with the same query for the next page. Add expand[]=total_count to get total_count, the number of matches. A customer is found as soon as its write returns, and a deleted one never.

## Query fields for `payment_intents`

[`GET /v1/payment_intents/search`](https://docs.fluveo.com/api/payment_intents.md#get-v1-payment-intents-search)

A query is one or more clauses, each a field, an operator and a value, such as status:"succeeded" or amount>1000. The PaymentIntent fields are amount, created, currency, customer, status and metadata["key"]. amount and created take :, =, <, <=, > and >= with a whole number, quoted or not. Every other field takes only :, which matches the whole value in any case; status takes canceled, expired, processing, requires_action, requires_capture, requires_confirmation, requires_payment_method, requires_reauthorization or succeeded (no Fluveo PaymentIntent is ever expired or requires_reauthorization). A - before a clause negates it. field:null matches a field that is absent or empty, such as customer:null for the PaymentIntents with no customer. Join clauses with AND or OR (a space means AND), never both in one query and never with parentheses, up to 10 clauses. Quote text values with single or double quotes. A query Fluveo cannot read answers invalid_request_error with the reason. When has_more is true, send next_page as page with the same query for the next page. Add expand[]=total_count to get total_count, the number of matches. A PaymentIntent is found as soon as its write returns.

## Query fields for `prices`

[`GET /v1/prices/search`](https://docs.fluveo.com/api/prices.md#get-v1-prices-search)

A query is one or more clauses, each a field, an operator and a quoted value, such as product:"prod_123" or active:"true". The price fields are active, currency, lookup_key, product, type and metadata["key"]; created is not one. Every price field takes only the operator :. On lookup_key and product it matches a run of whole words in any case; on active (true or false), currency and type it matches the whole value. A - before a clause negates it. field:null matches a field that is absent or empty, and -field:null one that is set. Join clauses with AND or OR (a space means AND), never both in one query and never with parentheses, up to 10 clauses. Quote values with single or double quotes; a backslash keeps the next character as it is. A query Fluveo cannot read answers invalid_request_error with the reason and its column. When has_more is true, send next_page as page with the same query for the next page. Add expand[]=total_count to get total_count, the number of matches. A price is found as soon as its write returns.

## Query fields for `products`

[`GET /v1/products/search`](https://docs.fluveo.com/api/products.md#get-v1-products-search)

A query is one or more clauses, each a field, an operator and a quoted value, such as name~"shirt" or active:"true". The product fields are active, description, name, shippable, url and metadata["key"]; created is not one. The operator : matches a run of whole words of name, description or url, in order and in any case, and the whole value of active or shippable (true or false). The operator ~ finds a part of name, description or url of at least three characters; a shorter part matches nothing. A - before a clause negates it. field:null matches a field that is absent or empty, and -field:null one that is set. Join clauses with AND or OR (a space means AND), never both in one query and never with parentheses, up to 10 clauses. Quote values with single or double quotes; a backslash keeps the next character as it is. A query Fluveo cannot read answers invalid_request_error with the reason and its column. When has_more is true, send next_page as page with the same query for the next page. Add expand[]=total_count to get total_count, the number of matches. A product is found as soon as its write returns.
